- Uvod v ESP8285
- Shema vezja razvojne plošče ESP
- Izdelava naše plošče za razvijalce ESP8285
- Naročanje PCB pri PCBWay
- Sestavljanje in programiranje plošče ESP8285
- Testiranje s preprosto LED utripajočo skico
- Testiranje skice spletnega strežnika na ESP8285
Krmilniki ESP iz Espressifa postajajo zelo priljubljena izbira za modele, ki temeljijo na IoT. Na trgu je že na voljo veliko vrst modulov ESP in razvojnih plošč, med katerimi je NodeMCU najbolj priljubljen. Poleg tega sta ESP-12E in ESP01 priljubljena izbira. Če pa želite svojo zasnovo narediti bolj prilagodljivo in kompaktno, obstaja velika verjetnost, da moramo svoj modul ESP oblikovati na ravni čipa, namesto da uporabimo modul, ki je na voljo neposredno. V tem članku bomo izvedeli, kako načrtovati vezje in tiskano vezje za neposredno uporabo krmilnikov ESP (ESP8285) brez uporabe modula.
V tem projektu smo uporabili ESP8285, ker je zelo zanimiv majhen čip. Je majhen SoC (sistem na čipu) z IoT (Internet stvari) in zmogljivostmi globokega spanja. Ima enako moč kot njegov veliki brat ESP8266, za bonus pa ima vgrajen 1 MB pomnilnika flash z veliko GPIO-ji. Kot alternativo lahko uporabite tudi ESP8266 in večina stvari, obravnavanih v tem članku, bo še vedno enaka.
V prejšnjem članku sem vam pokazal, kako lahko oblikujete lastno anteno PCB za 2,4 GHz, za primer pa uporabite isti čip ESP8285. Ta članek lahko preberete, če želite izvedeti več o zasnovi antene za ESP8266 / ESP8285.
V tem članku bom opisal, kako delujejo vsa vezja, in končno bo video, ki bo vse razložil. Podrobno sem opisal tudi celoten postopek načrtovanja in naročanja plošč PCB pri PCBWay za zasnovo našega modula ESP.
Uvod v ESP8285
Če ne poznate tega vsestranskega čipa ESP8285, je tukaj kratka razlaga s seznamom funkcij. ESP8285 je majhen čip z vgrajeno 1M bliskavico in ram -om, je precej podoben modulu ESP8286, ESP-01, vendar je zaradi notranjega pomnilnika veliko bolj kompakten in cenejši.
V tem čipu je 32-bitni jedrni procesor Tensilica L106 Diamond, enako velja tudi za ESP8266, zato lahko vso kodo za ESP8266 brez sprememb priklopite neposredno na ta čip in ima enak omrežni sklad kot odmerek ESp8266..
ESP8285 vključuje antenska stikala, RF balun, ojačevalnik moči, ojačevalnik z nizko stopnjo hrupa, filtre in module za upravljanje napajanja. Kompaktna zasnova zmanjšuje velikost tiskanega vezja in zahteva minimalne zunanje vezje. Če želite izvedeti več o tem IC, lahko vedno preverite podatkovni list naprave ESP8285 pri Espressif Systems.
Shema vezja razvojne plošče ESP
Vezje je zelo preprosto in sem ga razčlenil za boljše razumevanje. Spodnja shema ESP prikazuje celotno vezje, saj lahko vidite, da obstaja osem funkcionalnih blokov, bom pregledal vsakega in razložil vsak blok.
ESP8285 SOC:
V središču projekta je ESP8285 SoC, tukaj so opredeljeni vsi GPIO-ji in druge potrebne povezave.
Napajalni filter: Na tej IC je 7 napajalnih zatičev, najprej je napajalni zatič za ADC in IO. Skratil sem jih skupaj in za filtriranje vhodnega enosmernega toka 3,3 V uporabljam kondenzator moči 47uF in ločilni kondenzator 0,1uF.
PI filter: PI filter je eden najpomembnejših blokov te zasnove, ker je odgovoren za napajanje RF ojačevalnika in LNA, za to poglavje je lahko opisen vsak notranji ali zunanji šum, zato odsek RF ne bo deloval. Zato je nizkoprepustni filter za odsek LNA zelo pomemben. Več o filtrih PI lahko izveste na povezavi.
Kristalni oscilator: 40MHz kristalni oscilator služi kot vir ure za ESP8285 SoC, kondenzatorji za ločitev 10pF pa so bili dodani, kot je priporočeno v obrazcu.
LNA odsek: Drug najpomembnejši odsek tega vezja je LNA odsek; tu se antena PCB priključi na fizični zatič ESP. Kot je priporočeno v obrazcu, se uporablja kondenzator 5,6 pF, ki bi moral delovati v redu kot ujemajoče vezje. Ampak dodal sem dve ogradici za dve induktorji, kot da v primeru, da ujemajoče se odklonsko vezje deluje, lahko vedno vstavim nekaj induktorjev, da prilagodim vrednosti, ki ustrezajo impedanci antene.
Odsek LNA ima tudi dva PCB mostička s priključkom UFL. Antena PCB je privzeto nastavljena, če pa vaša aplikacija zahteva malo večji domet, lahko odpajate mostiček PCB in skrajšate mostiček za priključek UFL, zunanjo anteno pa lahko priključite kar tako.
Vhodni priključek za baterijo:
Kot vidite zgoraj, vzporedno sem postavil tri vrste baterijskih konektorjev, ker če jih niste mogli najti, lahko vedno namestite še enega.
Glave GPIO in glave programiranja:
Glave GPIO so tam, da dostopajo do zatičev GPIO, in glava za programiranje je tam, da utripa glavni Soc.
Vezje za samodejno ponastavitev:
V tem bloku dva NPN tranzistorja MMBT2222A tvori vezje za samodejno ponastavitev, ko pritisnete gumb za nalaganje v Arduino IDE, orodje python prejme klic, to orodje python je bliskovno orodje za naprave ESP, to orodje pi daje signal pretvorniku UART za ponastavitev plošče, medtem ko drži GPIO pin na tleh. Po tem se začne postopek nalaganja in preverjanja.
LED za vklop, LED na vozilu in delilnik napetosti:
LED za napajanje: LED za napajanje ima mostiček iz tiskanega vezja. Če to ploščo uporabljate kot za uporabo na baterije, lahko DE ta spajkate, da prihranite precej energije.
Vgrajena LED: Številne razvojne plošče na trgu imajo vgrajeno LED in ta plošča ni nobena izjema; GPIO16 IC je povezan z vgrajeno led. Poleg tega obstaja nadomestno mesto za upor 0 OHM, tako da se napolni upor 0 Ohmov, GPIO16 povežete s ponastavitvijo in kot morda veste, je to zelo pomemben korak za vklop ESP v način globokega spanja.
Napetostni delilnik: Kot morda že veste, je največja vhodna napetost ADC 1V. Torej, če želite spremeniti obseg vhoda na 3,3 V, se uporablja napetostni delilnik. Konfiguracija je narejena tako, da lahko vedno dodate zaporedje upor z zatičem, da spremenite domet na 5V.
HT7333 LDO:
Za uravnavanje napetosti na ESP8285 iz akumulatorja z minimalno izgubo moči se uporablja LDO ali regulator napetosti z nizkim izpadom.
Najvišja vhodna napetost HT7333 LDO je 12V in se uporablja za pretvorbo napetosti akumulatorja na 3,3V. Ta HT7333 LDO sem izbral, ker gre za napravo z zelo nizkim mirujočim tokom. 4.7uF ločilni kondenzatorji se uporabljajo za stabilizacijo LDO.
Tipka za način programiranja:
Gumb je povezan z GPIO0. Če vaš pretvornik UART nima nožice RTS ali DTR, lahko s tem gumbom ročno povlečete GPIO0 na tla.
Upori za vlečenje in vlečenje:
Vlečni in vlečni upori so tam, kot priporoča podatkovni list.
Razen tega so se pri načrtovanju tiskanih plošč upoštevale številne konstrukcijske norme in smernice. Če želite izvedeti več o tem, lahko to najdete v priročniku za zasnovo strojne opreme za ESP8266.
Izdelava naše plošče za razvijalce ESP8285
Shema je narejena in lahko nadaljujemo s postavitvijo tiskanega vezja. Za izdelavo tiskanega vezja smo uporabili programsko opremo za oblikovanje tiskanih vezij Eagle, vendar lahko PCB oblikujete s svojo želeno programsko opremo. Naš dizajn PCB je videti tak, ko je končan.
Datoteke BOM in Gerber je mogoče prenesti s teh povezav:
- ESP8282 gerber datoteke Dev-Board
- ESP8282 BOM za razvojno ploščo
Zdaj, ko je naša zasnova pripravljena, je čas, da PCB izdelamo z uporabo. Če želite to narediti, preprosto sledite spodnjim korakom:
Naročanje PCB pri PCBWay
1. korak: Pojdite na https://www.pcbway.com/, prijavite se, če ste prvič. Nato na zavihku Prototype PCB vnesite dimenzije PCB, število slojev in število PCB, ki ga potrebujete.
2. korak: Nadaljujte s klikom na gumb »Citiraj zdaj«. Preusmerjeni boste na stran, kjer boste nastavili nekaj dodatnih parametrov, kot so vrsta plošče, sloji, material za tiskano vezje, debelina in drugo, večina jih je privzeto izbranih, če se odločite za katere koli posebne parametre, lahko izberete je slišati.
Kot lahko vidite, smo potrebovali naše PCB črne! tako, v rubriki z barvo spajkalne maske sem izbral črno barvo.
3. korak: Zadnji korak je nalaganje datoteke Gerber in nadaljevanje plačila. Da bi zagotovil nemoten postopek, PCBWAY pred nadaljevanjem plačila preveri, ali je vaša datoteka Gerber veljavna. Tako ste lahko prepričani, da je vaš PCB prijazen do izdelave in vas bo sprejel kot predan.
Sestavljanje in programiranje plošče ESP8285
Po nekaj dneh smo PCB dobili v lični škatli in kakovost PCB je bila kot vedno dobra. Zgornja in spodnja plast plošče sta prikazani spodaj:
Po prejemu plošče sem takoj začel s spajkanjem deske. Za spajkanje glavnega procesorja sem uporabil postajo za vroč zrak in veliko spajkalnega toka, druge komponente na tiskani plošči pa so spajkane s spajkalnikom. Sestavljeni modul je prikazan spodaj.
Ko je to končano, sem povezal svoj zanesljiv modul FTDI za testiranje plošče, tako da sem naložil skico, povezane nožice in sliko plošče, prikazano spodaj:
ESP8285 Dev Board FTDI modul
3,3 V -> 3,3 V
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND
Ko so končane vse potrebne povezave, sem Arduino IDE nastavil tako, da sem izbral Generic ESP8285 Board iz Tools > Board > Generic ESP8285 Module .
Testiranje s preprosto LED utripajočo skico
Nato je čas, da ploščo preizkusite z utripanjem LED, zato sem uporabil naslednjo kodo:
/ * ESP8285 utripa Utripa modra LED na modulu ESP828285 * / #define LED_PIN 16 // Določite utripajočo nastavitev praznine LED pin () {pinMode (LED_PIN, OUTPUT); // Inicializiramo zatič LED kot izhod}} // funkcija zanke se vedno znova požene za vedno void loop () {digitalWrite (LED_PIN, LOW); // Vklopite LED (upoštevajte, da je LOW napetostni nivo) zakasnitev (1000); // Počakajte na drugi digitalWrite (LED_PIN, HIGH); // Izklopite LED tako, da napetost VELIKO zakasnite (1000); // Počakajte dve sekundi}
Koda je zelo preprosta, najprej sem določil LED pin za to ploščo in je na GPIO 16. Nato sem ta pin postavil kot izhod v razdelku za nastavitev. In končno, v odseku zanke sem vklopil in izklopil zatič z vmesno sekundo zakasnitve.
Testiranje skice spletnega strežnika na ESP8285
Ko je to dobro delovalo, je čas, da preizkusite skico HelloServer iz primera ESP8266WebServer. Uporabljam primer ESP8266, ker je večina kode združljiva s čipom esp8285. Primer kode najdete tudi na dnu te strani.
Tudi ta koda je zelo preprosta. Najprej moramo določiti vse potrebne knjižnice, #include
Nato moramo vnesti ime in geslo dostopne točke.
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * geslo = STAPSK;
Nato moramo definirati objekt ESP8266WebServer. Primer tukaj definira kot strežnik (80), (80) je številka vrat.
Nato moramo določiti zatič za LED, v mojem primeru je bil to št. 16.
const int led = 16;
Nato je definirana funkcija handleRoot () . Ta funkcija bo poklicana med klicem na naslov IP iz našega brskalnika.
void handleRoot () {digitalWrite (led, 1); server.send (200, "text / plain", "hello from esp8266!"); digitalWrite (led, 0); }
Naslednja je nastavitvena funkcija, slišati moramo, da moramo definirati vse potrebne parametre, kot so
pinMode (led, IZHOD); // vodili zatič smo definirali kot izhodni Serial.begin (115200); // začeli smo serijsko povezavo z 115200 baud WiFi.mode (WIFI_STA); // način wifi smo nastavili kot postajo WiFi.begin (ssid, geslo); nato začnemo z wifi povezavo Serial.println (""); // ta vrstica daje dodaten presledek, medtem ko (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } / * v zanki while preizkušamo stanje povezave, ki jo ESP lahko poveže z dostopno točko, ki jo bo zanka zavirala * / Serial.println (""); Serial.print ("Povezan z"); Serial.println (ssid); Serial.print ("IP naslov:"); Serial.println (WiFi.localIP ());
Nato v okno serijskega monitorja natisnemo ime in naslov IP povezanega SSID.
server.on ("/", handleRoot); // on methode strežniškega objekta je poklican za obdelavo korenske funkcije server.on ("/ inline", () {server.send (200, "text / plain", "to deluje tudi");}); // spet smo poklicali on methode za / inline primer server.begin (); // naslednji strežnik zaženemo z začetkom methode Serial.println ("strežnik HTTP se je začel"); // in na koncu natisnemo izjavo v serijski monitor. } //, ki označuje konec nastavitvene funkcije void loop (void) {server.handleClient (); }
V funkciji zanke smo za pravilno delovanje esp poklicali metode handleClient () .
Ko je bilo to storjeno, je plošča ESP8285 potrebovala nekaj časa, da se je povezala s spletnim strežnikom in uspešno delovala po pričakovanjih, kar je pomenilo konec tega projekta.
Popolno delovanje plošče najdete tudi na spodnjem videoposnetku. Upam, da ste uživali v tem članku in se iz njega naučili kaj novega. Če dvomite, lahko vprašate v spodnjih komentarjih ali pa uporabite naše forume za podrobno razpravo.