- ESP8285: n esittely
- ESP-kehityskortin piirikaavio
- ESP8285 Dev -levyn valmistaminen
- Piirilevyn tilaaminen PCBWay: lta
- ESP8285-kortin kokoaminen ja ohjelmointi
- Testaus yksinkertaisella LED-merkkivalolla
- Testataan verkkopalvelimen luonnosta ESP8285: ssä
Espressifin ESP-ohjaimista on tulossa laajalti suosittu valinta IoT-pohjaisiin malleihin. Markkinoilla on jo monenlaisia ESP-moduuleja ja kehityskortteja, joista NodeMCU on suosituin. Sen lisäksi ESP-12E, ESP01 ovat myös suosittuja valintoja. Mutta jos haluat tehdä suunnittelustasi joustavamman ja pienikokoisemman, on todennäköistä, että meidän on suunniteltava oma ESP-moduulisi sirutasolta sen sijaan, että käytämme suoraan helposti saatavana olevaa moduulia. Tässä artikkelissa opitaan, kuinka suunnitella piiri ja piirilevy ESP-ohjainten (ESP8285) käyttämistä varten suoraan ilman moduulia.
Tässä projektissa olemme käyttäneet ESP8285: tä, koska se on erittäin mielenkiintoinen pieni siru. Se on pieni SoC (System on Chip), jossa on esineiden internet (esineiden internet) ja syvän unen ominaisuudet. Sillä on sama teho kuin hänen isovelällään ESP8266, ja bonuksena siinä on sisäänrakennettu 1 Mt: n flash-muisti, jossa on paljon GPIO-muistia. Voit myös käyttää ESP8266: ta vaihtoehtona, ja suurin osa tässä artikkelissa käsitellyistä asioista on edelleen samat.
Edellisessä artikkelissa olen osoittanut, kuinka voit suunnitella oman piirilevyn antennin 2,4 GHz: n taajuudelle käyttämällä samaa ESP8285-sirua esimerkkinä. Voit lukea kyseisen artikkelin oppiaksesi antennien suunnittelusta malleille ESP8266 / ESP8285.
Joten tässä artikkelissa käsittelen, kuinka kaikki piirit toimivat, ja lopuksi on video, joka selittää kaiken. Olen myös käsitellyt yksityiskohtaisesti täydellisen menettelyn piirilevyjen suunnittelulle ja tilaamiselle PCBWay: lta ESP-moduulisuunnittelulle.
ESP8285: n esittely
Jos et tiedä tästä monipuolisesta ESP8285-sirusta, tässä on nopea selitys ominaisuusluettelolla. ESP8285 on pieni siru, jossa on sisäänrakennettu 1M-salama ja ram, se on melko samanlainen kuin ESP8286, ESP-01 -moduuli, mutta sisäinen flash-muisti tekee siitä paljon pienikokoisemman ja halvemman.
Tässä sirussa on Tensilican 32-bittinen L106 Diamond -ydinprosessori, ja sama pätee myös ESP8266: een, minkä vuoksi kaikki ESP8266: n koodi voidaan välittää suoraan tälle sirulle ilman muutoksia, ja sillä on sama verkkopino kuin ESp8266-annoksella.
ESP8285: ssä on antennikytkimet, RF-balun, tehovahvistin, hiljainen vastaanottovahvistin, suodattimet ja virranhallintamoduulit. Pienikokoinen rakenne minimoi piirilevykoon ja vaatii vain vähän ulkoisia piirejä. Jos haluat lisätietoja tästä mikropiiristä, voit aina tarkistaa laitteen ESP8285 taulukkolomakkeen Espressif Systemsistä.
ESP-kehityskortin piirikaavio
Piiri on hyvin yksinkertainen ja olen hajottanut sen paremmin ymmärtämistä varten. Alla oleva ESP-kaavio näyttää koko piirin, kuten näet kahdeksan toiminnallista lohkoa, käyn läpi jokaisen ja selitän jokaisen lohkon.
ESP8285 SOC:
Projektin ytimessä on ESP8285 SoC, kaikki GPIO: t ja muut tarvittavat yhteydet on määritelty tässä.
Virtasuodatin: Tässä piirissä on 7 virtaliitintä, ensin ADC: n ja IO: n virtaliitin. Olen oikosuljin ne yhteen ja käytän 3,3 V: n DC-tulon suodattamiseen 47uF-tehosuodatinkondensaattoria ja 0,1uF-erotuskondensaattoria.
PI-suodatin: PI-suodatin on yksi tämän suunnittelun tärkeimmistä lohkoista, koska se on vastuussa radiotaajuusvahvistimen ja LNA: n virrasta, mikä tahansa sisäinen tai ulkoinen kohina voi olla kuvaava tälle osalle, joten RF-osa ei toimi. Siksi LNA-osan alipäästösuodatin on erittäin tärkeä. Voit oppia lisää PI-suodattimista seuraamalla linkkiä.
Kideoskillaattori: 40 MHz : n kideoskillaattori toimii ESP8285 SoC: n kellolähteenä, ja 10pF: n erotuskondensaattorit lisättiin datalehden suositusten mukaisesti.
LNA-osa: Toinen tämän piirin tärkein osa on LNA-osa; tässä PCB-antenni kytketään ESP: n fyysiseen nastaan. Datalehden suositusten mukaan käytetään 5.6pF-kondensaattoria, ja sen pitäisi toimia hienosti sovituspiirinä. Mutta olen lisännyt kaksi paikkamerkkiä kahdelle induktorille ikään kuin jos sovituspiirin toisinajattelu toimii, voin aina laittaa joitain induktoreita säätämään arvoja vastaamaan antennin impedanssia.
LNA-osassa on myös kaksi PCB-hyppääjää UFL-liittimellä. Piirilevyn antenni on asetettu oletusarvoisesti, mutta jos sovelluksesi vaatii hieman enemmän kantamaa, voit tyhjentää piirilevyn hyppyjohdon ja lyhentää hyppääjän UFL-liittimelle, ja voit liittää ulkoisen antennin samalla tavalla.
Akun tuloliitin:
Yllä voit nähdä, että olen asettanut kolmen tyyppisiä akkuliittimiä rinnakkain, koska jos et löytänyt sitä, voit aina laittaa toisen.
GPIO-otsikot ja ohjelmointiotsikot:
GPIO-otsikot ovat siellä pääsemään GPIO-nastoihin ja ohjelmointiotsikko vilkkuu pää-Soc.
Piirin automaattinen nollaus:
Tässä lohkossa kaksi NPN-transistoria, MMBT2222A, muodostaa automaattisen nollauspiirin, kun painat latauspainiketta Arduino IDE: ssä, python-työkalu saa puhelun, tämä python-työkalu on ESP-laitteiden flash-työkalu, tämä pi-työkalu antaa signaali UART-muuntimeen nollataksesi kortin pitäen samalla GPIO-nasta maadoitettuna. Sen jälkeen lataus- ja vahvistusprosessi alkaa.
Virran LED, sisäinen LED ja jännitteenjakaja:
Virran merkkivalo: Virran merkkivalossa on piirilevyn hyppyjohdin Jos käytät tätä korttia kuten akkukäyttöisessä sovelluksessa, voit DE juottaa tämän hyppyjohdon säästääkseen melko vähän virtaa.
Onboard LED: Monilla markkinoilla olevilla kehyslevyillä on sisäinen LED, eikä tämä levy ole poikkeus; IC: n GPIO16 on kytketty laivalla olevaan lediin. Tämän lisäksi 0 OHM: n vastukselle on paikkamerkki täyttämällä 0 ohmin vastus, yhdistät GPIO16: n palautukseen, ja kuten ehkä tiedät, tämä on erittäin tärkeä askel ESP: n asettamiseksi syvään lepotilaan.
Jännitteenjakaja: Kuten ehkä tiedät, ADC: n suurin tulojännite on 1 V. Joten tulon alueen muuttamiseksi 3,3 V: ksi käytetään jännitteenjakajaa. Kokoonpano on tehty niin, että voit aina lisätä vastuksen sarjassa tapin kanssa muuttaaksesi alueen 5V: ksi.
HT7333 LDO:
LDO: ta tai matalan pudotusjännitteen säätintä käytetään säätämään ESP8285: n jännitettä akusta pienimmällä tehohäviöllä.
HT7333 LDO: n suurin syöttöjännite on 12 V ja sitä käytetään akun jännitteen muuntamiseen 3,3 V: ksi. Valitsin tämän HT7333 LDO: n, koska se on laite, jolla on erittäin pieni lepovirta. 4.7uF: n irrotuskondensaattoreita käytetään LDO: n stabilointiin.
Painike ohjelmointitilassa:
Painike on kytketty GPIO0: een, jos UART-muuntimessasi ei ole RTS- tai DTR-nastaa, voit käyttää tätä painiketta vetääksesi GPIO0: n manuaalisesti maahan.
Vetovastukset ja taitettavat vastukset:
Vetovastukset ja avattavat vastukset ovat siellä tietolomakkeen suositusten mukaisesti.
Sen lisäksi piirilevyä suunniteltaessa noudatettiin monia suunnittelunormeja ja ohjeita. Jos haluat tietää enemmän siitä, löydät sen ESP8266: n laitteiston suunnitteluoppaasta.
ESP8285 Dev -levyn valmistaminen
Kaavio on valmis, ja voimme jatkaa piirilevyn asettamista. Olemme käyttäneet Eagle PCB-suunnitteluohjelmistoa piirilevyn valmistamiseen, mutta voit suunnitella piirilevyn haluamallasi ohjelmistolla. Piirilevymme näyttää tältä kun se on valmis.
BOM- ja Gerber-tiedostot ovat ladattavissa seuraavista linkeistä:
- ESP8282 Dev-Board Gerber -tiedostot
- ESP8282 Dev-Board BOM
Nyt kun suunnittelumme on valmis, on aika saada piirilevyt valmistettua käyttämällä. Voit tehdä sen seuraavasti:
Piirilevyn tilaaminen PCBWay: lta
Vaihe 1: Mene osoitteeseen https://www.pcbway.com/, rekisteröidy, jos olet ensimmäinen kerta. Syötä sitten piirilevyn prototyyppi -välilehdelle piirilevyn mitat, kerrosten määrä ja tarvitsemasi piirilevyn määrä.
Vaihe 2: Jatka napsauttamalla 'Lainaa nyt' -painiketta. Sinut siirretään sivulle, jossa voit asettaa muutamia lisäparametreja, kuten levytyyppi, kerrokset, piirilevyn materiaali, paksuus ja muut, suurin osa niistä on valittu oletusarvoisesti, jos valitset tiettyjä parametreja, voit valita se kuulla.
Kuten näette, tarvitsimme piirilevyt mustiksi! joten olen valinnut mustan juotosmaskin väriosasta.
Vaihe 3: Viimeinen vaihe on lähettää Gerber-tiedosto ja jatkaa maksua. Varmistaaksesi prosessin sujuvuuden, PCBWAY tarkistaa ennen maksun suorittamista, onko Gerber-tiedostosi kelvollinen. Näin voit olla varma, että piirilevysi on valmistusystävällinen ja tavoittaa sinut sitoutuneena.
ESP8285-kortin kokoaminen ja ohjelmointi
Muutaman päivän kuluttua saimme piirilevyn siistiin pakkauslaatikkoon, ja piirilevyn laatu oli hyvä kuin aina. Levyn ylempi ja alin kerros on esitetty alla:
Saatuani taulun aloin heti juottaa levyä. Olen käyttänyt kuumailmajuotosasemaa ja paljon juotevuotoa pääprosessorin juottamiseen, ja muut piirilevyn komponentit juotetaan juotosraudan kautta. Kokoonpantu moduuli on esitetty alla.
Kun se on tehty, olen liittänyt luotettavan FTDI-moduulini testata korttia lataamalla luonnoksen, liitetyt nastat ja kuvan alla olevasta taulusta:
ESP8285 Dev Board FTDI -moduuli
3,3 V -> 3,3 V
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND
Kun kaikki tarvittavat yhteydet on suoritettu, olen asettanut Arduino IDE: n valitsemalla Generic ESP8285 -levyn kohdasta Tools > Board > Generic ESP8285 Module .
Testaus yksinkertaisella LED-merkkivalolla
Seuraavaksi on aika testata alusta vilkkumalla LEDiä, sillä varten olen käyttänyt seuraavaa koodia:
/ * ESP8285 Vilkkuu Vilkkuu ESP828285-moduulin sinistä LEDiä * / #define LED_PIN 16 // Määritä vilkkuvan LED-nastan mitätöinti () {pinMode (LED_PIN, OUTPUT); // Alusta LED-tappi lähdöksi} // silmukka-toiminto juoksee uudestaan ja uudestaan ikuisesti void loop () {digitalWrite (LED_PIN, LOW); // Kytke LED päälle (Huomaa, että LOW on jännitetaso) viive (1000); // Odota toinen digitalWrite (LED_PIN, HIGH); // Sammuta LED sammuttamalla jännite HIGH delay (1000); // Odota kaksi sekuntia}
Koodi on hyvin yksinkertainen, ensin olen määritellyt tälle kortille LED-nastan, ja se on GPIO 16: ssa. Seuraavaksi olen asettanut tuon nastan lähtöön asennusosassa. Ja lopuksi silmukan osassa olen kytkenyt virran päälle ja pois päältä sekunnin viiveellä.
Testataan verkkopalvelimen luonnosta ESP8285: ssä
Kun se toimi hyvin, on aika testata HelloServer-luonnos ESP8266WebServer-esimerkistä. Käytän ESP8266-esimerkkiä, koska suurin osa koodista on yhteensopiva esp8285-sirun kanssa. Esimerkkikoodi löytyy myös tämän sivun alaosasta.
Tämä koodi on myös hyvin yksinkertainen. Ensinnäkin meidän on määritettävä kaikki tarvittavat kirjastot, #sisältää
seuraavaksi meidän on annettava hotspotin nimi ja salasana.
#ifndef STASSID #define STASSID "sinun-ssid" #define STAPSK "salasanasi" #endif const char * ssid = STASSID; const char * salasana = STAPSK;
Seuraavaksi meidän on määritettävä ESP8266WebServer-objekti. Tässä esimerkissä määritellään se palvelimeksi (80), (80) on portin numero.
Seuraavaksi meidän on määriteltävä tappi LEDille, tapauksessani se oli nasta nro 16.
const int led = 16;
Seuraavaksi määritetään toiminto handleRoot () . Tätä toimintoa kutsutaan, kun selaimestamme soitetaan IP-osoitteeseen.
void handleRoot () {digitalWrite (led, 1); server.send (200, "text / plain", "hei esp8266: sta!"); digitalWrite (led, 0); }
Seuraava on asetustoiminto. Kuule, että meidän on määritettävä kaikki tarvittavat parametrit, kuten
pinMode (led, OUTPUT); // olemme määrittäneet led- nastan lähdöksi Serial.begin (115200); // olemme aloittaneet sarjaliitännän 115200 baudin WiFi.mode: lla (WIFI_STA); // olemme asettaneet wifi-tilaksi aseman WiFi.begin (ssid, salasana); sitten aloitamme wifi-yhteyden Serial.println (""); // tämä rivi antaa lisätilan, kun (WiFi.status ()! = WL_CONNECTED) {delay (500); Sarjaprintti ("."); } / * kun silmukassa testataan yhteyden tilaa, jonka ESP pystyy muodostamaan yhteyden hotspotiin, silmukka jarruttaa * / Serial.println (""); Serial.print ("Yhdistetty kohteeseen"); Serial.println (ssid); Serial.print ("IP-osoite:"); Serial.println (WiFi.localIP ());
Seuraavaksi tulostamme yhdistetyn SSID: n nimen ja IP-osoitteen sarjavalvontaikkunaan.
server.on ("/", handleRoot); // palvelinobjektin on methode kutsutaan käsittelemään päätoimintoa server.on ("/ inline", () {server.send (200, "text / plain", "tämä toimii myös");}); // taas olemme kutsuneet on-methode for / inline example server.begin (); // seuraavaksi aloitamme palvelimen aloitusmetodilla Serial.println ("HTTP-palvelin aloitettu"); // ja lopuksi tulostamme lausunnon sarjavalvontaan. } //, joka merkitsee asennustoiminnon loppua void loop (void) {server.handleClient (); }
Loop-toiminnossa olemme kutsuneet handClient () -menetelmiä esp: n käyttämiseksi oikein.
Kun tämä oli tehty, ESP8285-kortti otti jonkin aikaa yhteyden verkkopalvelimeen ja toimi onnistuneesti odotetusti, mikä merkitsi tämän projektin loppua.
Taulun täydellinen toiminta löytyy myös alla olevasta videosta. Toivottavasti pidit tästä artikkelista ja opit siitä jotain uutta. Jos sinulla on epäilyksiä, voit kysyä alla olevista kommenteista tai käyttää foorumeitamme yksityiskohtaiseen keskusteluun.