- Introducció a ESP8285
- Diagrama del circuit de la placa de desenvolupament ESP
- Fabricació del nostre tauler de desenvolupament ESP8285
- Comanda de PCB a PCBWay
- Muntatge i programació de la placa ESP8285
- Proves amb un esbós de parpelleig LED senzill
- S'està provant l'esbós de servidor web a ESP8285
Els controladors ESP d’Espressif s’estan convertint en una opció àmpliament popular per als dissenys basats en IoT. Hi ha molts tipus de mòduls ESP i taulers de desenvolupament ja disponibles al mercat, entre els quals NodeMCU és el més popular. A part d’això, ESP-12E, ESP01 també són opcions populars. Però si voleu que el vostre disseny sigui més flexible i compacte, és probable que hàgim de dissenyar el nostre propi mòdul ESP des del nivell de xip, en lloc d’utilitzar directament un mòdul fàcilment disponible. En aquest article, aprendrem a dissenyar un circuit i una PCB per utilitzar directament els controladors ESP (ESP8285) sense fer servir cap mòdul.
En aquest projecte hem utilitzat ESP8285 perquè és un xip molt interessant. És un petit SoC (System on Chip), amb IoT (Internet of Things) i funcions de son profund. Té la mateixa potència que el seu germà gran ESP8266 i, a més, inclou una memòria flash incorporada d’1 MB amb molts GPIO. També podeu utilitzar l’ESP8266 com a alternativa i la majoria de coses que es comenten en aquest article continuaran sent les mateixes.
En un article anterior, us he mostrat com podeu dissenyar la vostra pròpia antena de PCB per a 2,4 GHz, fent servir el mateix xip ESP8285 com a exemple. Podeu llegir aquest article per obtenir més informació sobre el disseny d'antenes per a ESP8266 / ESP8285.
Així doncs, en aquest article tractaré com funcionen tots els circuits i, finalment, hi haurà un vídeo que ho explicarà tot. També he tractat amb detall el procediment complet per dissenyar i ordenar les plaques de PCB de PCBWay per al disseny del nostre mòdul ESP.
Introducció a ESP8285
Si no coneixeu aquest versàtil xip ESP8285, aquí teniu una explicació ràpida amb una llista de funcions. L'ESP8285 és un petit xip amb un flaix i un ram incorporats de 1 M, és bastant similar al mòdul ESP8286, ESP-01, però la memòria flash interna el fa molt més compacte i econòmic.

Aquest xip alberga el processador de 32 bits L106 Diamond de Tensilica i el mateix passa amb l’ESP8266, és per això que tot el codi de l’ESP8266 es pot emetre directament a aquest xip sense cap modificació i té la mateixa pila de xarxa que la dosi d’ESp8266..
L'ESP8285 integra interruptors d'antena, balun RF, amplificador de potència, amplificador de recepció de baix soroll, filtres i mòduls de gestió d'energia. El disseny compacte minimitza la mida del PCB i requereix uns circuits externs mínims. Si voleu obtenir més informació sobre aquest CI, sempre podeu consultar el full de dades de l’ESP8285 del dispositiu a Espressif Systems.
Diagrama del circuit de la placa de desenvolupament ESP
El circuit és molt senzill i l’he desglossat per a una millor comprensió. El següent esquema ESP mostra tot el circuit, com podeu veure, hi ha vuit blocs funcionals; passaré per cadascun i explicaré cada bloc.

ESP8285 SOC:
Al centre del projecte hi ha el SoC ESP8285, aquí es defineixen tots els GPIO i altres connexions necessàries.

Filtre d’alimentació: hi ha 7 pins d’alimentació en aquest CI, el primer és el pin d’alimentació per a l’ADC i els IO. Els he reduït en curt i he utilitzat un condensador de filtre de potència de 47 uF i un condensador de desacoblament de 0,1 uF per filtrar l'entrada de 3,3 V CC.
Filtre PI: el filtre PI és un dels blocs més importants d’aquest disseny, ja que és l’encarregat d’alimentar l’amplificador de RF i el LNA; qualsevol soroll intern o extern pot ser descriptiu per a aquesta secció. Per tant, la secció RF no funcionarà. Per això, el filtre de pas baix per a la secció LNA és molt crucial. Podeu obtenir més informació sobre els filtres PI seguint l’enllaç.
Oscil·lador de vidre: l’ oscil·lador de vidre de 40 MHz serveix com a font de rellotge per al SoC ESP8285 i s’hi van afegir els condensadors de desacoblament de 10pF tal com es recomana al full de dades.
Secció LNA: una altra secció més important d’aquest circuit és la secció LNA; aquí és on l'antena del PCB es connecta al pin físic de l'ESP. Tal com recomana el full de dades, s’utilitza un condensador de 5,6 pF i hauria de funcionar bé com el circuit de coincidència. Però he afegit dos espais reservats per a dos inductors com si en cas que funcionés la dissidència del circuit coincident, sempre hi puc posar alguns inductors per ajustar els valors perquè coincideixin amb la impedància de l'antena.
La secció LNA també té dos ponts de PCB amb un connector UFL. L’antena de PCB està configurada de manera predeterminada, però si la vostra aplicació requereix una mica més d’abast, podeu dessoldar el pont de PCB i escurçar el pont del connector UFL i podeu connectar una antena externa de la mateixa manera.
Connector d'entrada de bateria:
Podeu veure més amunt, he posat tres tipus de connectors de bateria en paral·lel perquè si no heu pogut trobar-ne, sempre en podeu posar un altre.
Capçaleres GPIO i les capçaleres de programació:
Les capçaleres GPIO hi són per accedir als pins GPIO i la capçalera de programació està disponible per llampar el Soc. Principal.
Circuit de restabliment automàtic:
En aquest bloc, dos transistors NPN, MMBT2222A, formen el circuit de restabliment automàtic quan es prem el botó de càrrega a l’IDE Arduino, l’eina Python rep una trucada, aquesta eina Python és l’eina flash per als dispositius ESP, aquesta eina pi proporciona senyal al convertidor UART per restablir la placa mentre manteniu el pin GPIO a terra. Després, comença el procés de càrrega i verificació.
LED d'alimentació, LED incorporat i divisor de tensió:
LED d'alimentació: el LED d' alimentació té un pont de PCB. Si utilitzeu aquesta placa com per a aplicacions amb bateria, podeu soldar aquest pont per estalviar una mica d'energia.
LED incorporat : Moltes plaques de desenvolupament del mercat tenen un LED incorporat, i aquesta placa no és una excepció; el GPIO16 de l'IC està connectat a un led integrat. A més d’això, hi ha un marcador de posició per a una resistència de 0 OHM mitjançant l’emplenament de la resistència de 0 Ohms, esteu connectant GPIO16 al restabliment i, com ja sabreu, aquest és un pas molt important per posar un ESP en mode de repòs profund.
Divisor de tensió: Com és possible, el voltatge màxim d'entrada de l'ADC és d'1 V. Per tant, per canviar el rang de l’entrada a 3,3V, s’utilitza el divisor de tensió. La configuració està feta de manera que sempre podeu afegir una resistència en sèrie amb el pin per canviar el rang a 5V.
HT7333 LDO:
S’utilitza un regulador LDO o de baixa tensió per regular el voltatge a l’ESP8285 d’una bateria amb una pèrdua d’alimentació mínima.

La tensió màxima d'entrada de l'HT7333 LDO és de 12 V i s'utilitza per convertir la tensió de la bateria a 3,3 V, he escollit aquest HT7333 LDO perquè és un dispositiu amb un corrent de repòs molt baix. Els condensadors de desacoblament 4.7uF s’utilitzen per estabilitzar el LDO.
Polsador per al mode de programació:
El polsador està connectat a GPIO0, si el convertidor UART no té un pin RTS o DTR, podeu utilitzar aquest polsador per estirar manualment el GPIO0 a terra.
Resistències de desplaçament i desplaçament:
Les resistències de desplegament i desplegable són allà tal com es recomana a la fitxa tècnica.
A part d’això, es van seguir moltes normes i pautes de disseny durant el disseny del PCB. Si en voleu saber més, podeu trobar-ho a la guia de disseny de maquinari de l’ESP8266.
Fabricació del nostre tauler de desenvolupament ESP8285
L'esquema està fet i podem procedir a l'establiment del PCB. Hem fet servir el programari de disseny Eagle PCB per fabricar el PCB, però podeu dissenyar el PCB amb el vostre programari preferit. El nostre disseny de PCB té aquest aspecte quan es completa.

Els fitxers BOM i Gerber es poden descarregar des dels següents enllaços:
- ESP8282 Dev-Board Gerber Files
- ESP8282 BOM de la placa de desenvolupament
Ara, ja que el nostre disseny està llest, és hora que els PCB es fabriquin amb. Per fer-ho, només cal que seguiu els passos següents:
Comanda de PCB a PCBWay
Pas 1: accediu a https://www.pcbway.com/, registreu-vos si és la primera vegada. A continuació, a la pestanya Prototip de PCB, introduïu les dimensions del PCB, el nombre de capes i el nombre de PCB que necessiteu.

Pas 2: continueu fent clic al botó "Cita ara". Se us dirigirà a una pàgina on definiu uns quants paràmetres addicionals, com ara el tipus de tauler, capes, material per a PCB, gruix i més, la majoria d'ells es seleccionen de manera predeterminada; si opteu per algun paràmetre específic, podeu seleccionar en sentir.

Com podeu veure, necessitàvem els nostres PCB negres. per tant, he seleccionat negre a la secció de color de la màscara de soldar.
Pas 3: l'últim pas és carregar el fitxer Gerber i procedir al pagament. Per assegurar-se que el procés és fluix, PCBWAY verifica si el fitxer Gerber és vàlid abans de procedir al pagament. D'aquesta manera, podeu assegurar-vos que el vostre PCB és fabricant i que us arribarà com a compromès.

Muntatge i programació de la placa ESP8285
Al cap d’uns dies, vam rebre el nostre PCB en una caixa d’embalatge ordenada i la qualitat del PCB va ser bona com sempre. La capa superior i la capa inferior del tauler es mostren a continuació:

Després de rebre la junta, de seguida vaig començar a soldar la junta. He utilitzat una estació de soldadura per aire calent i una gran quantitat de flux de soldadura per soldar la CPU principal, i altres components del PCB es solden mitjançant un soldador. El mòdul muntat es mostra a continuació.

Un cop fet això, he connectat el meu mòdul FTDI de confiança per provar el tauler penjant un esbós, els pins connectats i una imatge del tauler que es mostra a continuació:
ESP8285 Mòdul FTDI de la placa de desenvolupament
3,3V -> 3,3V
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND

Un cop s'hagin completat totes les connexions necessàries, he configurat l'IDE Arduino seleccionant la placa ESP8285 genèrica des d' Eines > Taula > Mòdul ESP8285 genèric .
Proves amb un esbós de parpelleig LED senzill
A continuació, és hora de provar la placa parpellejant un LED, per això he fet servir el codi següent:
/ * ESP8285 Parpelleig Parpelleja el LED blau del mòdul ESP828285 * / #define LED_PIN 16 // Defineix el parpelleig de la configuració del pin LED buit () {pinMode (LED_PIN, OUTPUT); // Inicialitzeu el pin LED com a sortida} // la funció de bucle s'executa una i altra vegada per sempre buit bucle () {digitalWrite (LED_PIN, LOW); // Enceneu el LED (tingueu en compte que LOW és el nivell de tensió) retard (1000); // Espereu un segon digitalWrite (LED_PIN, HIGH); // Apagueu el LED fent que el voltatge sigui ALT retard (1000); // Espereu dos segons}
El codi és molt senzill, primer he definit el pin LED per a aquesta placa i està en GPIO 16. A continuació, he definit aquest pin com a sortida a la secció de configuració. I, finalment, a la secció del bucle, he activat i apagat el passador amb un retard d’un segon pel mig.
S'està provant l'esbós de servidor web a ESP8285
Un cop funcionava bé, és hora de provar l'esbós de HelloServer des de l' exemple ESP8266WebServer. Estic fent servir un exemple ESP8266 perquè la majoria del codi és compatible amb el xip esp8285. El codi d'exemple també es pot trobar a la part inferior d'aquesta pàgina.
Aquest codi també és molt senzill. Primer, hem de definir totes les biblioteques necessàries, #incloure
a continuació, hem d'introduir el nom i la contrasenya del punt d'accés.
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * contrasenya = STAPSK;
A continuació, hem de definir l'objecte ESP8266WebServer. L'exemple aquí el defineix com a servidor (80), el (80) és el número de port.
A continuació, hem de definir un pin per a un LED, en el meu cas, era el pin no 16.
const int led = 16;
A continuació, es defineix la funció handleRoot () . Aquesta funció es cridarà quan es faci una trucada a l'adreça IP des del nostre navegador.
void handleRoot () {digitalWrite (led, 1); server.send (200, "text / plain", "hola from esp8266!"); digitalWrite (led, 0); }
A continuació, es mostra la funció de configuració, escolteu que hem de definir tots els paràmetres necessaris com:
pinMode (led, OUTPUT); // hem definit el pin led com a sortida Serial.begin (115200); // hem iniciat una connexió sèrie amb 115200 baud WiFi.mode (WIFI_STA); // hem configurat el mode wifi com a estació WiFi.begin (ssid, contrasenya); llavors comencem la connexió wifi Serial.println (""); // aquesta línia proporciona un espai addicional mentre que (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } / * al bucle while estem provant l'estat de connexió que l'ESP es pot connectar al punt d'accés, el bucle frenarà * / Serial.println (""); Serial.print ("Connectat a"); Serial.println (ssid); Serial.print ("adreça IP:"); Serial.println (WiFi.localIP ());
A continuació, estem imprimint el nom i l'adreça IP del SSID connectat a la finestra del monitor sèrie.
server.on ("/", handleRoot); // es diu el mètode on de l'objecte servidor per gestionar la funció arrel server.on ("/ inline", () {server.send (200, "text / plain", "això també funciona");}); // novament hem cridat el mètode on per a l'exemple / inline server.begin (); // a continuació, iniciem el servidor amb el mètode begin Serial.println ("S'ha iniciat el servidor HTTP"); // i finalment imprimim una declaració al monitor sèrie. } // que marca el final de la funció de configuració bucle buit (buit) {server.handleClient (); }
A la funció de bucle, hem anomenat els mètodes handleClient () per operar correctament l'esp.
Un cop fet això, la placa ESP8285 va trigar una mica a connectar-se al servidor web i va funcionar amb èxit com s’esperava, cosa que va marcar el final d’aquest projecte.

El funcionament complet del tauler també es pot trobar al vídeo enllaçat a continuació. Espero que us hagi agradat aquest article i n’hagueu après alguna cosa nova. Si teniu algun dubte, podeu demanar-los als comentaris següents o fer servir els nostres fòrums per a una discussió detallada.
