- Introducere în ESP8285
- Diagrama circuitului plăcii de dezvoltare ESP
- Fabricarea plăcii noastre de dezvoltare ESP8285
- Comandarea PCB-ului de la PCBWay
- Asamblarea și programarea plăcii ESP8285
- Testarea cu o schiță simplă LED Blink
- Testarea schiței Webserver pe ESP8285
Controlerele ESP de la Espressif devin o alegere populară pentru design-urile bazate pe IoT. Există multe tipuri de module ESP și plăci de dezvoltare deja disponibile pe piață, printre care NodeMCU este cel mai popular. În afară de asta, ESP-12E, ESP01 sunt și alegeri populare. Dar dacă doriți să vă faceți proiectarea mai flexibilă și mai compactă, este posibil ca noi să proiectăm propriul nostru modul ESP de la nivelul cipului, în loc să folosim direct un modul disponibil imediat. În acest articol, vom învăța cum să proiectăm un circuit și un PCB pentru utilizarea controlerelor ESP (ESP8285) direct fără a utiliza un modul.
În acest proiect am folosit ESP8285 deoarece este un cip foarte interesant. Este un mic SoC (System on Chip), cu IoT (Internet of Things) și capabilități de somn profund. Are aceeași putere ca fratele său mai mare ESP8266 și, ca bonus, vine cu o memorie flash de 1 MB încorporată, cu o mulțime de GPIO-uri. De asemenea, puteți utiliza ESP8266 ca alternativă și majoritatea lucrurilor discutate în acest articol vor fi în continuare aceleași.
Într-un articol anterior, v-am arătat cum puteți proiecta propria antenă PCB pentru 2,4 GHz, folosind ca exemplu același cip ESP8285. Puteți citi acel articol pentru a afla despre proiectarea antenei pentru ESP8266 / ESP8285.
Deci, în acest articol, voi acoperi modul în care funcționează toate circuitele și, în cele din urmă, va exista un videoclip care explică totul. De asemenea, am acoperit în detaliu procedura completă de proiectare și comandă a plăcilor PCB de la PCBWay pentru proiectarea modulului nostru ESP.
Introducere în ESP8285
Dacă nu știți despre acest versat cip ESP8285, iată o explicație rapidă cu o listă de caracteristici. ESP8285 este un cip mic cu bliț și RAM încorporat de 1M, este destul de similar cu modulul ESP8286, ESP-01, dar memoria flash internă îl face mult mai compact și mai ieftin.
Acest cip găzduiește procesorul core Tensilica L106 Diamond pe 32 de biți și același lucru este valabil și pentru ESP8266..
ESP8285 integrează comutatoare de antenă, balun RF, amplificator de putere, amplificator de recepție cu zgomot redus, filtre și module de gestionare a energiei. Designul compact minimizează dimensiunea PCB-ului și necesită circuite externe minime. Dacă doriți să aflați mai multe despre acest IC, puteți verifica oricând fișa tehnică a ESP8285 a dispozitivului la Espressif Systems.
Diagrama circuitului plăcii de dezvoltare ESP
Circuitul este foarte simplu și l-am defalcat pentru o mai bună înțelegere. Schema ESP de mai jos arată întregul circuit, după cum puteți vedea, există opt blocuri funcționale, voi trece prin fiecare și voi explica fiecare bloc.
ESP8285 SOC:
În centrul proiectului se află ESP8285 SoC, toate GPIO-urile și alte conexiuni necesare sunt definite aici.
Filtru de alimentare: Există 7 pini de alimentare pe acest IC, primul este pinul de alimentare pentru ADC și IO-uri. Le-am scurtcircuitat împreună și folosesc un condensator de filtru de putere de 47 uF și un condensator de decuplare de 0,1 uF pentru a filtra intrarea de 3,3 V DC.
Filtru PI: Filtrul PI este unul dintre cele mai importante blocuri ale acestui design, deoarece este responsabil pentru alimentarea amplificatorului RF și a LNA, orice zgomot intern sau extern poate fi descriptiv pentru această secțiune, deci pentru aceasta, secțiunea RF nu va funcționa. De aceea, filtrul trece jos pentru secțiunea LNA este foarte crucial. Puteți afla mai multe despre filtrele PI urmând linkul.
Oscilator de cristal: Oscilatorul de cristal de 40 MHz servește drept sursă de ceas pentru SoC ESP8285, iar condensatorii de decuplare de 10 pF au fost adăugați conform recomandărilor din fișa tehnică.
Secțiunea LNA: O altă secțiune cea mai importantă a acestui circuit este secțiunea LNA; aici se conectează antena PCB la pinul fizic al ESP. Așa cum recomandă fișa tehnică, se folosește un condensator de 5,6 pF și ar trebui să funcționeze la fel de bine ca circuitul de potrivire. Dar am adăugat două substituenți pentru doi inductori ca și cum în cazul în care disensiunea circuitului de potrivire funcționează, pot pune întotdeauna niște inductori, pentru a modifica valorile pentru a se potrivi cu impedanța antenei.
Secțiunea LNA are, de asemenea, două jumperi PCB cu un conector UFL. Antena PCB este setată în mod implicit, dar dacă aplicația dvs. necesită un interval mai mare, puteți desolda jumperul PCB și scurtcircuit jumperul pentru conectorul UFL și puteți conecta o antenă externă exact așa.
Conector de intrare baterie:
Puteți vedea mai sus, am pus trei tipuri de conectori de baterii în paralel, deoarece dacă nu ați putut găsi unul, puteți pune oricând altul.
Anteturile GPIO și anteturile de programare:
Anteturile GPIO sunt acolo pentru a accesa pinii GPIO, iar antetul de programare este acolo pentru a clipi Soc-ul principal.
Circuit de resetare automată:
În acest bloc, doi tranzistori NPN, MMBT2222A formează circuitul de resetare automată atunci când apăsați butonul de încărcare în ID-ul Arduino, instrumentul python primește un apel, acest instrument python este instrumentul flash pentru dispozitivele ESP, acest instrument pi oferă semnalizați convertorului UART pentru a reseta placa în timp ce țineți pinul GPIO la masă. După aceea, începe procesul de încărcare și verificare.
LED de alimentare, LED de la bord și divizorul de tensiune:
LED de alimentare: LED- ul de alimentare are un jumper PCB Dacă utilizați această placă ca pentru aplicații alimentate cu baterie, puteți DEZ lipiți acest jumper pentru a economisi destul de multă energie.
LED la bord: Multe dev-board-uri de pe piață au un LED la bord, iar această placă nu face excepție; GPIO16 al IC-ului este conectat la un led de la bord. În plus, există un substituent pentru un rezistor de 0 OHM prin popularea rezistorului de 0 Ohmi, conectați GPIO16 la resetare și, după cum știți, acesta este un pas foarte important pentru a pune un ESP în modul de repaus profund.
Divizor de tensiune: După cum știți, tensiunea maximă de intrare a ADC este de 1V. Deci, pentru a schimba intervalul de intrare la 3,3V, se folosește divizorul de tensiune. Configurația este făcută astfel încât să puteți adăuga oricând un rezistor în serie cu pinul pentru a schimba gama la 5V.
HT7333 LDO:
Un regulator LDO sau Low Drop Voltage Regulator este utilizat pentru a regla tensiunea la ESP8285 de la o baterie cu pierderi minime de energie.
Tensiunea maximă de intrare a HT7333 LDO este de 12V și este utilizată pentru a converti tensiunea bateriei la 3,3V, am ales acest HT7333 LDO deoarece este un dispozitiv cu un curent de repaus foarte scăzut. Condensatoarele de decuplare 4.7uF sunt utilizate pentru stabilizarea LDO.
Buton pentru modul de programare:
Butonul este conectat la GPIO0, dacă convertorul dvs. UART nu are un pin RTS sau DTR, puteți utiliza acest buton pentru a trage manual GPIO0 la sol.
Rezistențe de tragere și de derulare:
Rezistențele de extragere și derulare sunt acolo conform recomandărilor din fișa tehnică.
În afară de aceasta, au fost respectate multe norme și linii directoare de proiectare în timpul proiectării PCB-ului. Dacă doriți să aflați mai multe despre asta, puteți găsi acest lucru în ghidul de proiectare hardware pentru ESP8266.
Fabricarea plăcii noastre de dezvoltare ESP8285
Schema este gata și putem continua cu așezarea PCB-ului. Am folosit software-ul de proiectare Eagle PCB pentru a realiza PCB-ul, dar puteți proiecta PCB-ul cu software-ul preferat. Designul nostru PCB arată astfel când este finalizat.
Fișierele BOM și Gerber sunt disponibile pentru descărcare din următoarele link-uri:
- ESP8282 Fișiere Gerber Dev-Board
- ESP8282 Dev-Board BOM
Acum, după ce Design-ul nostru este gata, este timpul să fabricăm PCB-urile folosind. Pentru aceasta, pur și simplu urmați pașii de mai jos:
Comandarea PCB-ului de la PCBWay
Pasul 1: intrați pe https://www.pcbway.com/, înscrieți-vă dacă este prima dată. Apoi, în fila Prototip PCB, introduceți dimensiunile PCB-ului, numărul de straturi și numărul de PCB de care aveți nevoie.
Pasul 2: Continuați făcând clic pe butonul „Cotați acum”. Veți fi direcționat către o pagină unde să setați câțiva parametri suplimentari, cum ar fi tipul de placă, straturi, material pentru PCB, grosime și multe altele, majoritatea sunt selectate în mod implicit, dacă alegeți parametrii specifici, puteți selecta în auz.
După cum puteți vedea, aveam nevoie de PCB-urile noastre negre! așa că am selectat negru în secțiunea de culoare a măștii de lipit.
Pasul 3: ultimul pas este să încărcați fișierul Gerber și să continuați plata. Pentru a vă asigura că procesul este ușor, PCBWAY verifică dacă fișierul dvs. Gerber este valid înainte de a continua plata. În acest fel, puteți fi sigur că PCB-ul dvs. este prietenos cu fabricarea și vă va ajunge la fel de angajat.
Asamblarea și programarea plăcii ESP8285
După câteva zile, am primit PCB-ul nostru într-o cutie de pachete îngrijită, iar calitatea PCB a fost bună ca întotdeauna. Stratul superior și cel inferior al plăcii sunt prezentate mai jos:
După ce am primit placa, am început imediat să lipesc placa. Am folosit o stație de lipit cu aer cald și o mulțime de flux de lipit pentru a lipi CPU-ul principal, iar alte componente de pe PCB sunt lipite printr-un fier de lipit. Modulul asamblat este prezentat mai jos.
Odată ce am făcut acest lucru, mi-am conectat modulul de încredere FTDI pentru a testa placa încărcând o schiță, pinii conectați și o imagine a plăcii prezentată mai jos:
ESP8285 Modul FTDI pentru placa de dezvoltare
3,3V -> 3,3V
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND
Odată ce toate conexiunile necesare sunt finalizate, am configurat Arduino IDE selectând placa Generic ESP8285 din Instrumente > Placă > Modul ESP8285 generic .
Testarea cu o schiță simplă LED Blink
Apoi, este timpul să testez placa prin clipirea unui LED, pentru asta am folosit următorul cod:
/ * ESP8285 Blink Blink LED-ul albastru pe modulul ESP828285 * / #define LED_PIN 16 // Definiți LED-ul intermitent pin pin setare () {pinMode (LED_PIN, OUTPUT); // Inițializați pinul LED ca ieșire} // funcția de buclă rulează iar și iar pentru totdeauna void loop () {digitalWrite (LED_PIN, LOW); // Porniți LED-ul (rețineți că LOW este nivelul de tensiune) întârziere (1000); // Așteptați un al doilea digitalWrite (LED_PIN, HIGH); // Opriți LED-ul făcând întârzierea tensiunii HIGH (1000); // Așteptați două secunde}
Codul este foarte simplu, mai întâi am definit pinul LED pentru această placă și este pe GPIO 16. Apoi, am setat acel pin ca ieșire în secțiunea de configurare. Și, în cele din urmă, în secțiunea buclă, am pornit și oprit pinul cu o întârziere de o secundă între ele.
Testarea schiței Webserver pe ESP8285
Odată ce a funcționat bine, este timpul să testați schița HelloServer din exemplul ESP8266WebServer. Folosesc un exemplu ESP8266, deoarece majoritatea codului este compatibil cu cipul esp8285. Exemplul de cod poate fi găsit și în partea de jos a acestei pagini.
Și acest cod este foarte simplu. În primul rând, trebuie să definim toate bibliotecile necesare, #include
în continuare, trebuie să introducem numele și parola hotspotului.
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * parola = STAPSK;
În continuare, trebuie să definim obiectul ESP8266WebServer. Exemplul de aici îl definește ca un server (80), (80) este numărul portului.
Apoi, trebuie să definim un pin pentru un LED, în cazul meu, a fost pinul 16.
const int led = 16;
Apoi, este definită funcția handleRoot () . Această funcție va fi apelată la apelul de pe adresa IP din browserul nostru.
void handleRoot () {digitalWrite (led, 1); server.send (200, "text / simplu", "salut de la esp8266!"); digitalWrite (led, 0); }
Urmează funcția de configurare, auziți că trebuie să definim toți parametrii necesari cum ar fi-
pinMode (led, OUTPUT); // am definit pinul led ca ieșire Serial.begin (115200); // am început o conexiune serială cu 115200 baud WiFi.mode (WIFI_STA); // am setat modul wifi ca stație WiFi.begin (ssid, parolă); apoi începem conexiunea wifi Serial.println (""); // această linie oferă un spațiu suplimentar în timp ce (WiFi.status ()! = WL_CONNECTED) {întârziere (500); Serial.print ("."); } / * în bucla while testăm starea conexiunii pe care ESP este capabil să se conecteze la hotspot bucla va frâna * / Serial.println (""); Serial.print („Conectat la”); Serial.println (ssid); Serial.print („Adresă IP:”); Serial.println (WiFi.localIP ());
Apoi, imprimăm numele și adresa IP a SSID-ului conectat la fereastra monitorului serial.
server.on ("/", handleRoot); // metodul on al obiectului server este apelat pentru a prelua funcția rădăcină server.on ("/ inline", () {server.send (200, "text / simplu", "și asta funcționează");}); // din nou am apelat la metoda on pentru exemplul / inline server.begin (); // apoi pornim serverul cu metodul begin Serial.println („Server HTTP pornit”); // și în cele din urmă imprimăm o declarație pe monitorul serial. } // care marchează sfârșitul funcției de configurare void loop (void) {server.handleClient (); }
În funcția de buclă, am apelat la metodele handleClient () pentru a opera sp- ul corect.
Odată ce acest lucru a fost făcut, placa ESP8285 a luat ceva timp pentru a se conecta la serverul web și a funcționat cu succes așa cum era de așteptat, ceea ce a marcat sfârșitul acestui proiect.
Funcționarea completă a tabloului poate fi găsită și la videoclipul legat mai jos. Sper că ți-a plăcut acest articol și ai învățat ceva nou din el. Dacă aveți vreo îndoială, puteți întreba în comentariile de mai jos sau puteți folosi forumurile noastre pentru discuții detaliate.