- ESP8285'e Giriş
- ESP Geliştirme Kartı Devre Şeması
- ESP8285 Geliştirme Panomuzu üretme
- PCBWay'den PCB siparişi
- ESP8285 Kartını Birleştirme ve Programlama
- Basit LED Yanıp Sönme Taslağı ile Test
- ESP8285'te Web Sunucusu Taslağını Test Etme
Espressif'in ESP Denetleyicileri, IoT tabanlı tasarımlar için oldukça popüler bir seçim haline geliyor. Piyasada halihazırda mevcut olan birçok çeşit ESP modülü ve geliştirme kartı vardır, bunlardan en popüler olanı NodeMCU'dur. Bunun dışında ESP-12E, ESP01 de popüler seçeneklerdir. Ancak tasarımınızı daha esnek ve kompakt hale getirmek istiyorsanız, doğrudan hazır bir modül kullanmak yerine kendi ESP modülümüzü çip seviyesinde tasarlamamız gerekir. Bu yazıda, ESP denetleyicilerini (ESP8285) bir modül kullanmadan doğrudan kullanmak için bir devre ve PCB tasarlamayı öğreneceğiz.
Bu projede ESP8285 kullandık çünkü çok ilginç bir küçük çip. IoT (Nesnelerin İnterneti) ve derin uyku özelliklerine sahip küçük bir SoC (Çip Üzerinde Sistem). Ağabeyi ESP8266 ile aynı güce sahip ve bir bonus olarak, birçok GPIO'nun bulunduğu dahili 1MB flash bellek ile birlikte geliyor. ESP8266'yı alternatif olarak da kullanabilirsiniz ve bu makalede tartışılan şeylerin çoğu hala aynı olacaktır.
Önceki bir makalede, örnek olarak aynı ESP8285 yongasını kullanarak kendi PCB anteninizi 2.4GHz için nasıl tasarlayabileceğinizi göstermiştim. ESP8266 / ESP8285 için anten tasarımı hakkında bilgi edinmek için bu makaleyi okuyabilirsiniz.
Bu yüzden bu makalede, tüm devrelerin nasıl çalıştığını ele alacağım ve sonunda hepsini açıklayan bir video olacak. Ayrıca, ESP modül tasarımımız için PCBWay'den PCB kartlarını tasarlamak ve sipariş etmek için tüm prosedürü ayrıntılı olarak ele aldım.
ESP8285'e Giriş
Bu çok yönlü ESP8285 yongası hakkında bilgi sahibi değilseniz, burada bir özellik listesi ile hızlı bir açıklama var. ESP8285, dahili 1M flash ve ram içeren küçük bir çiptir, ESP8286, ESP-01 modülüne oldukça benzer, ancak dahili flash bellek onu çok daha kompakt ve daha ucuz hale getirir.
Bu yonga Tensilica'nın L106 Diamond 32-bit çekirdek işlemcisini barındırır ve aynısı ESP8266 için de geçerlidir, bu yüzden ESP8266'nın tüm kodu herhangi bir değişiklik yapılmadan doğrudan bu çipe aktarılabilir ve ESp8266 dozu ile aynı ağ yığınına sahiptir..
ESP8285, anten anahtarları, RF balun, güç amplifikatörü, düşük gürültülü alıcı amplifikatör, filtreler ve güç yönetimi modüllerini bir araya getirir. Kompakt tasarım, PCB boyutunu en aza indirir ve minimum harici devre gerektirir. Bu IC hakkında daha fazla bilgi edinmek istiyorsanız, Espressif Systems'da her zaman cihazın ESP8285 veri sayfasını kontrol edebilirsiniz.
ESP Geliştirme Kartı Devre Şeması
Devre çok basit ve daha iyi anlamak için onu parçaladım. Aşağıdaki ESP şeması tüm devreyi göstermektedir, görebileceğiniz gibi sekiz fonksiyonel blok var, her birini inceleyeceğim ve her bloğu açıklayacağım.
ESP8285 SOC:
Projenin merkezinde ESP8285 SoC var, tüm GPIO'lar ve diğer gerekli bağlantılar burada tanımlanıyor.
Güç Filtresi: Bu IC üzerinde 7 güç pini vardır, ilki ADC ve IO'lar için güç pini. Onları kısa devre yaptım ve 3,3V DC girişini filtrelemek için 47 uF güç filtresi kondansatörü ve 0,1 uF dekuplaj kondansatörü kullandım.
PI Filtresi: PI filtresi, bu tasarımın en önemli bloklarından biridir çünkü RF amplifikatörüne ve LNA'ya güç sağlamaktan sorumludur, herhangi bir dahili veya harici gürültü bu bölüm için açıklayıcı olabilir, bu nedenle RF bölümü çalışmayacaktır.. Bu nedenle LNA bölümü için alçak geçiren filtre çok önemlidir. Bağlantıyı takip ederek PI filtreleri hakkında daha fazla bilgi edinebilirsiniz.
Kristal Osilatör: 40MHz kristal osilatör, ESP8285 SoC için saat kaynağı görevi görür ve 10pF dekuplaj kapasitörleri, veri sayfasında önerildiği şekilde eklenmiştir.
LNA Bölümü: Bu devrenin bir diğer en önemli bölümü LNA bölümüdür; PCB anteninin ESP'nin fiziksel pinine bağlandığı yer burasıdır. Veri sayfası tarafından önerildiği gibi, bir 5.6pF kapasitör kullanılır ve eşleşen devre kadar iyi çalışmalıdır. Ancak, iki indüktör için iki yer tutucu ekledim, sanki eşleşen devre uyuşmazlığı çalışıyorsa, değerleri anten empedansına uyacak şekilde ayarlamak için her zaman bazı indüktörler koyabilirim.
LNA bölümünde ayrıca UFL konektörlü iki PCB atlama kablosu bulunur. PCB anteni varsayılan olarak ayarlanmıştır, ancak uygulamanız biraz daha fazla menzil gerektiriyorsa, PCB atlama telini sökebilir ve UFL konektörü için kısa devre yapabilir ve bunun gibi harici bir anten bağlayabilirsiniz.
Pil Giriş Konnektörü:
Yukarıda görebileceğiniz gibi, paralel olarak üç tip pil konektörü koydum çünkü birini bulamazsanız, her zaman başka bir tane koyabilirsiniz.
GPIO Başlıkları ve Programlama Başlıkları:
GPIO başlıkları GPIO pinlerine erişmek için oradadır ve programlama başlığı ana Soc'u flaş etmek için oradadır.
Otomatik Sıfırlama Devresi:
Bu blokta iki NPN transistörü, MMBT2222A, Arduino IDE'deki yükleme düğmesine bastığınızda otomatik sıfırlama devresini oluşturur, python aracı bir çağrı alır, bu python aracı ESP cihazları için flaş aracıdır, bu pi aracı GPIO pinini toprağa tutarken kartı sıfırlamak için UART dönüştürücüye sinyal. Bundan sonra yükleme ve doğrulama süreci başlar.
Güç LED'i, Yerleşik LED ve Gerilim Bölücü:
Güç LED'i: Güç LED'inin bir PCB atlama teli vardır Bu kartı pille çalışan uygulama için kullanıyorsanız, biraz güç tasarrufu yapmak için bu atlama telini DE lehimleyebilirsiniz.
Yerleşik LED: Piyasadaki birçok geliştirme kartında yerleşik bir LED bulunur ve bu kart bir istisna değildir; IC'nin GPIO16'sı yerleşik bir led'e bağlıdır. Bunun yanı sıra, 0 Ohm direncini doldurarak 0 OHM direnci için bir yer tutucu var, GPIO16'yı sıfırlamaya bağlıyorsunuz ve bildiğiniz gibi bu, derin uyku moduna bir ESP koymak için çok önemli bir adım .
Voltaj Bölücü: Bildiğiniz gibi ADC'nin maksimum giriş voltajı 1V'tur. Bu nedenle, giriş aralığını 3,3V olarak değiştirmek için voltaj bölücü kullanılır. Konfigürasyon, Aralığı 5V olarak değiştirmek için her zaman pin ile seri olarak bir direnç ekleyebileceğiniz şekilde yapılmıştır.
HT7333 LDO:
Bir aküden ESP8285'e voltajı minimum güç kaybıyla düzenlemek için LDO veya Düşük Bırakma Voltaj Regülatörü kullanılır.
HT7333 LDO'nun maksimum giriş voltajı 12V'tur ve pil voltajını 3.3V'ye dönüştürmek için kullanılır, bu HT7333 LDO'yu seçtim çünkü çok düşük hareketsiz akıma sahip bir cihaz. 4.7uF dekuplaj kapasitörleri LDO'yu stabilize etmek için kullanılır.
Programlama Modu için basmalı düğme:
Basmalı düğme GPIO0'a bağlanır, UART dönüştürücünüzün bir RTS veya DTR pini yoksa, GPIO0'ı manuel olarak yere çekmek için bu düğmeyi kullanabilirsiniz.
Pullup ve Pulldown Dirençleri:
Pullup ve pulldown dirençleri, veri sayfasının önerdiği şekilde oradadır.
Bunun dışında PCB tasarlanırken birçok tasarım normu ve yönergesi takip edildi. Bununla ilgili daha fazla bilgi edinmek istiyorsanız, bunu ESP8266'nın donanım tasarım kılavuzunda bulabilirsiniz.
ESP8285 Geliştirme Panomuzu üretme
Şematik tamamlandı ve PCB'yi yerleştirmeye devam edebiliriz. PCB'yi yapmak için Eagle PCB tasarım yazılımını kullandık, ancak PCB'yi tercih ettiğiniz yazılımla tasarlayabilirsiniz. PCB tasarımımız tamamlandığında böyle görünüyor.
BOM ve Gerber dosyaları aşağıdaki Bağlantılardan indirilebilir:
- ESP8282 Dev-Board Gerber Dosyaları
- ESP8282 Dev-Board BOM
Artık Tasarımımız hazır olduğuna göre, PCB'leri kullanarak imal etme zamanı. Bunu yapmak için aşağıdaki adımları uygulamanız yeterlidir:
PCBWay'den PCB siparişi
Adım 1: https://www.pcbway.com/ adresine girin, ilk seferinizse kaydolun. Ardından, PCB Prototype sekmesinde PCB'nizin boyutlarını, katman sayısını ve ihtiyacınız olan PCB sayısını girin.
Adım 2: 'Şimdi Alıntı Yap' düğmesine tıklayarak devam edin. Pano tipi, Katmanlar, PCB için Malzeme, Kalınlık ve Daha Fazlası gibi birkaç ek parametrenin ayarlanacağı bir sayfaya yönlendirileceksiniz, bunların çoğu varsayılan olarak seçilir, herhangi bir özel parametreyi seçerseniz, seçebilirsiniz. duymak.
Gördüğünüz gibi, PCB'lerimize siyah ihtiyacımız vardı! bu yüzden lehim maskesi rengi bölümünde siyahı seçtim.
3. Adım: Son adım, Gerber dosyasını yüklemek ve ödemeye devam etmektir. İşlemin sorunsuz olduğundan emin olmak için PCBWAY, ödemeye devam etmeden önce Gerber dosyanızın geçerli olup olmadığını doğrular. Bu şekilde, PCB'nizin imalat dostu olduğundan ve kararlı bir şekilde size ulaşacağından emin olabilirsiniz.
ESP8285 Kartını Birleştirme ve Programlama
Birkaç gün sonra PCB'mizi düzgün bir ambalaj kutusunda aldık ve PCB kalitesi her zamanki gibi iyiydi. Kartın üst katmanı ve alt katmanı aşağıda gösterilmiştir:
Kartı aldıktan sonra hemen kartı lehimlemeye başladım. Ana CPU'yu lehimlemek için bir sıcak hava lehimleme istasyonu ve çok sayıda lehim akısı kullandım ve PCB üzerindeki diğer bileşenler bir havya ile lehimlendi. Birleştirilmiş modül aşağıda gösterilmiştir.
Bu yapıldıktan sonra, güvenilir FTDI modülümü bir taslak, bağlı pinler ve aşağıda gösterilen kartın bir görüntüsünü yükleyerek kartı test etmek için bağladım:
ESP8285 Dev Board FTDI Modülü
3,3V -> 3,3V
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND
Gerekli tüm bağlantılar tamamlandıktan sonra, Tools > Board > Generic ESP8285 Module'den Generic ESP8285 Board'u seçerek Arduino IDE'yi kurdum .
Basit LED Yanıp Sönme Taslağı ile Test
Ardından, bir LED'i yanıp sönerek kartı test etme zamanı, bunun için aşağıdaki kodu kullandım:
/ * ESP8285 Yanıp Sönme ESP828285 modülündeki mavi LED'i yanıp söndürün * / #define LED_PIN 16 // Yanıp sönen LED pin geçersiz kurulumunu tanımlayın () {pinMode (LED_PIN, OUTPUT); // LED pinini bir çıktı olarak başlatın} // döngü işlevi sonsuza kadar tekrar tekrar çalışır void loop () {digitalWrite (LED_PIN, LOW); // LED'i açın (LOW'un voltaj seviyesi olduğunu unutmayın) delay (1000); // İkinci bir digitalWrite (LED_PIN, HIGH) bekleyin; // Voltajı HIGH geciktirerek (1000) LED'i kapatın; // İki saniye bekleyin}
Kod çok basit, önce bu kart için LED pinini tanımladım ve GPIO 16'da. Sonra kurulum bölümünde o pin'i çıkış olarak ayarladım. Ve son olarak, döngü bölümünde, aralarında bir saniye gecikmeyle pimi açıp kapattım.
ESP8285'te Web Sunucusu Taslağını Test Etme
Bu iyi çalıştıktan sonra, HelloServer taslağını ESP8266WebServer Örneğinden test etme zamanı. Bir ESP8266 örneği kullanıyorum çünkü kodun çoğu esp8285 yongasıyla uyumlu. Örnek kod da bu sayfanın alt kısmında bulunabilir.
Bu kod da çok basit, Öncelikle gerekli tüm kütüphaneleri tanımlamamız gerekiyor, #Dahil etmek
daha sonra, sıcak noktanın adını ve şifresini girmemiz gerekiyor.
#ifndef STASSID #define STASSID "ssidiniz" #define STAPSK "şifreniz" #endif const char * ssid = STASSID; const char * şifre = STAPSK;
Ardından, ESP8266WebServer nesnesini tanımlamamız gerekiyor. Buradaki örnek, onu bir sunucu (80) olarak tanımlar, (80) bağlantı noktası numarasıdır.
Sonra, benim durumumda 16 numaralı pin olan bir LED için bir pin tanımlamamız gerekiyor.
const int led = 16;
Ardından, handleRoot () Fonksiyonu tanımlanır. Bu fonksiyon, tarayıcımızdan IP adresinden çağrı yapıldığında çağrılacaktır.
void handleRoot () {digitalWrite (led, 1); server.send (200, "metin / düz", "esp8266'dan merhaba!"); digitalWrite (led, 0); }
Sırada kurulum işlevi var, gerekli tüm parametreleri tanımlamamız gerektiğini duydum.
pinMode (led, OUTPUT); // led pinini Serial.begin (115200) çıkışı olarak tanımladık; // 115200 baud WiFi.mode (WIFI_STA) ile seri bağlantı başlattık; // wifi modunu istasyon WiFi olarak ayarladık.begin (ssid, password); sonra Serial.println ("") wifi bağlantısına başlarız; // bu satır ek bir boşluk verir while (WiFi.status ()! = WL_CONNECTED) {delay (500); Seri.baskı ("."); } / * while döngüsünde ESP'nin sıcak noktaya bağlanabildiğinde bağlantı durumunu test ettiğimizde döngü frenleyecektir * / Serial.println (""); Serial.print ("Bağlı"); Serial.println (ssid); Seri.print ("IP adresi:"); Serial.println (WiFi.localIP ());
Ardından, bağlı SSID'nin adını ve IP adresini seri monitör penceresine yazdırıyoruz.
server.on ("/", handleRoot); // sunucu nesnesinin on yöntemi çağrılır kök işlevi server.on ("/ inline", () {server.send (200, "text / plain", "bu da çalışır");}); // yine / inline örneği için on metodunu çağırdık server.begin (); // daha sonra sunucuyu Serial.println ("HTTP sunucusu başladı") yöntemiyle başlatıyoruz; // ve son olarak seri monitörde bir ifade yazdırıyoruz. } // kurulum işlevinin sonunu işaretleyen void döngüsü (void) {server.handleClient (); }
Döngü işlevinde, esp'yi düzgün şekilde çalıştırmak için handleClient () yöntemlerini çağırdık .
Bu yapıldıktan sonra, ESP8285 kartının web sunucusuna bağlanması biraz zaman aldı ve beklendiği gibi başarılı bir şekilde çalıştı ve bu projenin sonunu işaret etti.
Kurulun tam çalışması ayrıca aşağıda bağlantısı verilen videoda da bulunabilir. Umarım bu makaleyi beğenmişsinizdir ve ondan yeni bir şeyler öğrenmişsinizdir. Herhangi bir şüpheniz varsa, aşağıdaki yorumlarda sorabilir veya detaylı tartışma için forumlarımızı kullanabilirsiniz.