- Ievads ESP8285
- ESP Attīstības padomes shēmas shēma
- Mūsu ESP8285 Dev Board izgatavošana
- PCB pasūtīšana no PCBWay
- ESP8285 valdes montāža un programmēšana
- Testēšana ar vienkāršu LED mirgojošu skici
- Tīmekļa servera skices pārbaude vietnē ESP8285
ESP kontrolieri no Espressif kļūst par plaši populāru IoT balstītu dizainu izvēli. Tirgū jau ir pieejami daudz dažādu veidu ESP moduļi un attīstības dēļi, starp kuriem vispopulārākais ir NodeMCU. Bez tam ESP-12E un ESP01 ir arī populāras izvēles iespējas. Bet, ja vēlaties padarīt savu dizainu elastīgāku un kompaktāku, iespējams, ka mums pašiem jāveido savs ESP modulis no mikroshēmas līmeņa, nevis tieši jāizmanto viegli pieejams modulis. Šajā rakstā mēs uzzināsim, kā izveidot shēmu un PCB tieši ESP kontrolieru (ESP8285) lietošanai, neizmantojot moduli.
Šajā projektā mēs izmantojām ESP8285, jo tā ir ļoti interesanta mazā mikroshēma. Tas ir niecīgs SoC (System on Chip) ar IoT (lietu internets) un dziļa miega iespējām. Tam ir tāda pati jauda kā viņa lielajam brālim ESP8266, un kā bonuss tam ir iebūvēta 1 MB zibatmiņa ar daudzām GPIO. Varat arī izmantot ESP8266 kā alternatīvu, un lielākā daļa šajā rakstā aplūkoto lietu joprojām būs vienādas.
Iepriekšējā rakstā es jums parādīju, kā jūs varat noformēt savu PCB antenu 2,4 GHz frekvencei, kā piemēru izmantojot to pašu ESP8285 mikroshēmu. Jūs varat izlasīt šo rakstu, lai uzzinātu par antenas dizainu ierīcēm ESP8266 / ESP8285.
Tāpēc šajā rakstā es apskatīšu, kā darbojas visas shēmas, un visbeidzot būs video, kas to visu izskaidros. Esmu arī detalizēti aprakstījis visu PCB plākšņu projektēšanas un pasūtīšanas procedūru no PCBWay mūsu ESP moduļa projektēšanai.
Ievads ESP8285
Ja jūs nezināt par šo daudzpusīgo mikroshēmu ESP8285, šeit ir īss paskaidrojums ar funkciju sarakstu. ESP8285 ir maza mikroshēma ar iebūvētu 1M zibspuldzi un RAM, tā ir diezgan līdzīga ESP8286, ESP-01 modulim, taču iekšējā zibatmiņa padara to daudz kompaktāku un lētāku.
Šajā mikroshēmā ir Tensilica L106 Diamond 32 bitu kodols procesors, un tas pats attiecas arī uz ESP8266, tāpēc visu ESP8266 kodu var bez izmaiņām uzlaist tieši šai mikroshēmai, un tam ir tāda pati tīkla kaudze kā ESp8266 devai.
ESP8285 ir integrēti antenas slēdži, RF balun, jaudas pastiprinātājs, zema trokšņa uztveršanas pastiprinātājs, filtri un enerģijas pārvaldības moduļi. Kompaktais dizains samazina PCB izmēru, un tam nepieciešamas minimālas ārējās shēmas. Ja vēlaties uzzināt vairāk par šo IC, vienmēr varat pārbaudīt ierīces ESP8285 datu lapu vietnē Espressif Systems.
ESP Attīstības padomes shēmas shēma
Ķēde ir ļoti vienkārša, un es to sadalīju, lai labāk izprastu. Zemāk esošajā ESP shēmā ir parādīta visa shēma, kā redzat, ka ir astoņi funkcionālie bloki, es izietu katru no tiem un paskaidrošu katru bloku.
ESP8285 SOC:
Projekta centrā ir ESP8285 SoC, šeit ir definēti visi GPIO un citi nepieciešamie savienojumi.
Strāvas filtrs: Šajā IC ir 7 strāvas tapas, vispirms ir ADC un IO strāvas spraudnis. Es tos saīsināju kopā un izmantoju 47uF jaudas filtra kondensatoru un 0,1uF atvienošanas kondensatoru, lai filtrētu 3.3V DC ieeju.
PI filtrs: PI filtrs ir viens no svarīgākajiem šī dizaina blokiem, jo tas ir atbildīgs par RF pastiprinātāja un LNA barošanu, jebkurš iekšējs vai ārējs troksnis var būt aprakstošs šai sadaļai, tāpēc RF sadaļa nedarbosies. Tāpēc zemas caurlaidības filtrs LNA sadaļai ir ļoti izšķirošs. Jūs varat uzzināt vairāk par PI filtriem, noklikšķinot uz saites.
Kristāla oscilators: 40MHz kristāla oscilators kalpo kā pulksteņa avots ESP8285 SoC, un 10pF atdalīšanas kondensatori tika pievienoti, kā ieteikts datu lapā.
LNA sadaļa: Vēl viena vissvarīgākā šīs ķēdes sadaļa ir LNA sadaļa; šeit PCB antena tiek savienota ar ESP fizisko tapu. Kā ieteicams datu lapā, tiek izmantots 5.6pF kondensators, un tam vajadzētu darboties tikpat labi kā saskaņošanas ķēdei. Bet es diviem induktoriem esmu pievienojis divus vietturus, it kā gadījumā, ja atbilstošās ķēdes domstarpības darbojas, es vienmēr varu ievietot dažus induktorus, lai pielāgotu vērtības, lai tās atbilstu antenas pretestībai.
LNA sadaļā ir arī divi PCB džemperi ar UFL savienotāju. PCB antena ir iestatīta pēc noklusējuma, bet, ja jūsu lietojumprogrammai ir nepieciešams nedaudz lielāks darbības rādiuss, varat atkaļķot PCB džemperi un saīsināt džemperi UFL savienotājam, un jūs varat tāpat savienot ārējo antenu.
Akumulatora ievades savienotājs:
Jūs varat redzēt iepriekš, es esmu ievietojis trīs veidu akumulatoru savienotājus paralēli, jo, ja jūs to nevarējāt atrast, jūs vienmēr varat ievietot citu.
GPIO galvenes un programmēšanas galvenes:
GPIO galvenes ir pieejamas, lai piekļūtu GPIO tapām, un programmēšanas galvene ir paredzēta, lai mirgotu galveno Soc.
Automātiskā atiestatīšanas ķēde:
Šajā blokā divi NPN tranzistori MMBT2222A veido automātiskās atiestatīšanas ķēdi, nospiežot augšupielādes pogu Arduino IDE, python rīks saņem zvanu, šis python rīks ir ESP ierīču zibspuldzes rīks, šis pi rīks dod signālu UART pārveidotājam, lai atiestatītu dēli, turot GPIO tapu pie zemes. Pēc tam sākas augšupielādes un verifikācijas process.
Barošanas LED, borta LED un sprieguma dalītājs:
Strāvas gaismas diode: strāvas gaismas diodei ir PCB džemperis. Ja jūs izmantojat šo plāksni tāpat kā lietošanai ar akumulatoru, varat DE pielodēt šo džemperi, lai ietaupītu diezgan daudz enerģijas.
Borta LED: daudziem tirgū esošajiem dev-dēļiem ir iebūvēts LED, un šī plāksne nav izņēmums; IC GPIO16 ir savienots ar borta vadību. Līdztekus tam ir 0 OHM rezistora vietturis, aizpildot 0 Ohm rezistoru, jūs savienojat GPIO16 ar atiestatīšanu, un, kā jūs, iespējams, zināt, tas ir ļoti svarīgs solis, lai ESP iestatītu dziļā miega režīmā.
Sprieguma dalītājs: Kā jūs zināt, ADC maksimālais ieejas spriegums ir 1 V. Tātad, lai mainītu ieejas diapazonu līdz 3,3 V, tiek izmantots sprieguma dalītājs. Konfigurācija ir izveidota tā, ka jūs vienmēr varat pievienot rezistoru virknē ar tapu, lai diapazonu mainītu uz 5V.
HT7333 LDO:
Lai regulētu spriegumu līdz ESP8285 no akumulatora ar minimālu enerģijas zudumu, tiek izmantots LDO vai zema nolaišanās sprieguma regulators.
HT7333 LDO maksimālais ieejas spriegums ir 12 V, un to izmanto, lai pārveidotu akumulatora spriegumu uz 3,3 V, es izvēlējos šo HT7333 LDO, jo tā ir ierīce ar ļoti zemu mierīgu strāvu. LDO stabilizēšanai izmanto 4.7uF atdalīšanas kondensatorus.
Programmēšanas režīma spiedpoga:
Spiedpoga ir savienota ar GPIO0, ja jūsu UART pārveidotājam nav RTS vai DTR tapas, varat izmantot šo spiedpogu, lai manuāli novilktu GPIO0 uz zemes.
Pullup un Pulldown rezistori:
Pavelkamie un nolaižamie rezistori ir tur, kā ieteikts datu lapā.
Izstrādājot PCB, tika ievērotas daudzas projektēšanas normas un vadlīnijas. Ja vēlaties uzzināt vairāk par to, to varat atrast ESP8266 aparatūras projektēšanas rokasgrāmatā.
Mūsu ESP8285 Dev Board izgatavošana
Shēma ir izveidota, un mēs varam turpināt izlikt PCB. PCB izgatavošanai mēs izmantojām Eagle PCB projektēšanas programmatūru, taču jūs varat noformēt PCB ar vēlamo programmatūru. Mūsu PCB dizains izskatās šādi, kad tas ir pabeigts.
BOM un Gerber failus var lejupielādēt no šīm saitēm:
- ESP8282 Dev-Board Gerber faili
- ESP8282 Dev-Board BOM
Tagad, kad mūsu dizains ir gatavs, ir pienācis laiks izgatavot PCB, izmantojot. Lai to izdarītu, vienkārši veiciet tālāk norādītās darbības.
PCB pasūtīšana no PCBWay
1. darbība: iekļūstiet vietnē https://www.pcbway.com/, reģistrējieties, ja tā ir jūsu pirmā reize. Pēc tam cilnē PCB Prototype ievadiet PCB izmērus, slāņu skaitu un nepieciešamo PCB skaitu.
2. solis: turpiniet, noklikšķinot uz pogas “Citēt tūlīt”. Jūs tiksiet novirzīts uz lapu, kurā iestatīsit dažus papildu parametrus, piemēram, plāksnes veidu, slāņus, materiālu PCB, biezumu un citus. Lielākā daļa no tiem ir atlasīti pēc noklusējuma. Ja izvēlaties kādus konkrētus parametrus, varat izvēlēties to dzirdēt.
Kā redzat, mums vajadzēja melnus mūsu PCB! Tātad, lodēšanas maskas krāsu sadaļā esmu izvēlējies melnu.
3. solis: pēdējais solis ir Gerber faila augšupielāde un maksājuma veikšana. Lai pārliecinātos, ka process ir vienmērīgs, pirms maksājuma turpināšanas PCBWAY pārbauda, vai jūsu Gerber fails ir derīgs. Tādā veidā jūs varat būt pārliecināts, ka jūsu PCB ir izgatavošanai draudzīgs un ar jums sazināsies kā apņēmies.
ESP8285 valdes montāža un programmēšana
Pēc dažām dienām mēs saņēmām mūsu PCB glītā iepakojuma kastē, un PCB kvalitāte bija laba kā vienmēr. Dēļa augšējais un apakšējais slānis ir parādīts zemāk:
Pēc dēļa saņemšanas es uzreiz sāku dēlīti lodēt. Galvenā procesora lodēšanai esmu izmantojis karstā gaisa lodēšanas staciju un daudz lodēšanas plūsmas, un citi PCB komponenti tiek pielodēti caur lodāmuru. Samontētais modulis ir parādīts zemāk.
Kad tas ir izdarīts, esmu pievienojis savu uzticamo FTDI moduli, lai pārbaudītu dēli, augšupielādējot skici, pievienotās tapas un tāfeles attēlu, kas parādīts zemāk:
ESP8285 Dev Board FTDI modulis
3.3V -> 3.3V
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND
Kad visi nepieciešamie savienojumi ir pabeigti, esmu izveidojis Arduino IDE, izvēloties Generic ESP8285 Board no Tools > Board > Generic ESP8285 Module .
Testēšana ar vienkāršu LED mirgojošu skici
Pēc tam ir pienācis laiks pārbaudīt dēli, mirgot ar LED, tāpēc es esmu izmantojis šādu kodu:
/ * ESP8285 Mirgo Mirgot ESP828285 moduļa zilā gaismas diode * / #define LED_PIN 16 // Definēt mirgojošo LED pin void setup () {pinMode (LED_PIN, OUTPUT); // Inicializējiet LED tapu kā izvadi} // cilpa funkcija darbojas atkal un atkal uz visiem laikiem void loop () {digitalWrite (LED_PIN, LOW); // Ieslēdziet LED (ņemiet vērā, ka LOW ir sprieguma līmenis) aizkave (1000); // Gaidiet otro digitalWrite (LED_PIN, HIGH); // Izslēdziet LED, veicot sprieguma HIGH aizturi (1000); // pagaidiet divas sekundes}
Kods ir ļoti vienkāršs, vispirms es šim panelim esmu definējis LED tapu, un tas ir GPIO 16. Tālāk iestatīšanas sadaļā šo tapu esmu iestatījis kā izvadi. Un, visbeidzot, cilpas sadaļā es esmu ieslēdzis un izslēdzis tapu ar vienas sekundes kavēšanos starp tām.
Tīmekļa servera skices pārbaude vietnē ESP8285
Kad tas darbojās labi, ir pienācis laiks pārbaudīt HelloServer skici no ESP8266WebServer piemēra. Es izmantoju ESP8266 piemēru, jo lielākā daļa koda ir saderīga ar esp8285 mikroshēmu. Koda piemērs ir atrodams arī šīs lapas apakšdaļā.
Arī šis kods ir ļoti vienkāršs. Pirmkārt, mums ir jādefinē visas nepieciešamās bibliotēkas, # iekļaut
pēc tam mums jāievada tīklāja nosaukums un parole.
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * parole = STAPSK;
Tālāk mums jādefinē objekts ESP8266WebServer. Šeit piemērs to definē kā serveri (80), un (80) ir porta numurs.
Tālāk mums ir jādefinē tapas LED, manā gadījumā tas bija tapas Nr. 16.
const int led = 16;
Pēc tam tiek definēta funkcija handRoot () . Šī funkcija tiks izsaukta, kad no mūsu pārlūkprogrammas zvanīs uz IP adresi.
void handleRoot () {digitalWrite (vadīts, 1); server.send (200, "text / plain", "sveiki no esp8266!"); digitalWrite (vadīts, 0); }
Nākamā ir iestatīšanas funkcija, dzirdiet, ka mums ir jādefinē visi nepieciešamie parametri, piemēram, pinMode (vadīts, OUTPUT); // mēs esam definējuši vadīto tapu kā izvadi Serial.begin (115200); // esam uzsākuši sērijveida savienojumu ar 115200 baud WiFi.mode (WIFI_STA); // mēs esam iestatījuši wifi režīmu kā staciju WiFi.begin (ssid, parole); tad mēs sākam wifi savienojumu Serial.println (""); // šī rinda piešķir papildu vietu, kamēr (WiFi.status ()! = WL_CONNECTED) {delay (500); Sērijas.druka ("."); } / * kamēr ciklā mēs pārbaudām savienojuma statusu, kuru ESP spēj izveidot savienojumu ar tīklāju, cilpa bremzēs * / Serial.println (""); Serial.print ("Savienots ar"); Serial.println (ssid); Serial.print ("IP adrese:"); Serial.println (WiFi.localIP ());
Tālāk mēs sērijveida monitora logā drukājam pievienotā SSID nosaukumu un IP adresi.
server.on ("/", handleRoot); // servera objekta on methode tiek izsaukts, lai apstrādātu saknes funkciju server.on ("/ inline", () {server.send (200, "text / plain", "tas darbojas arī");}); // atkal mēs esam izsaukuši ieslēgto metodu serverim / inline example.begin (); // pēc tam mēs sākam serveri ar sākuma metodu Serial.println ("HTTP serveris sākās"); // un visbeidzot sērijveida monitorā izdrukājam paziņojumu. } // kas iezīmē iestatīšanas funkcijas void loop (void) beigas {server.handleClient (); }
Cilpas funkcijā mēs esam izsaukuši handClient () metodes, lai pareizi darbotos esp.
Kad tas bija izdarīts, ESP8285 valdei bija vajadzīgs zināms laiks, lai izveidotu savienojumu ar tīmekļa serveri, un veiksmīgi strādāja, kā paredzēts, kas iezīmēja šī projekta beigas.
Pilnīga valdes darbība ir atrodama arī zemāk esošajā videoklipā. Es ceru, ka jums patika šis raksts un uzzinājāt no tā kaut ko jaunu. Ja jums ir kādas šaubas, varat jautāt zemāk esošajos komentāros vai arī izmantot mūsu forumus detalizētai diskusijai.