- Introduktion till ESP8285
- ESP Development Board Circuit Diagram
- Tillverkar vår ESP8285 Dev Board
- Beställa PCB från PCBWay
- Montering och programmering av ESP8285-kortet
- Testning med en enkel LED Blink Sketch
- Testar webbserverskiss på ESP8285
ESP-kontrollerna från Espressif blir ett mycket populärt val för IoT-baserade mönster. Det finns många typer av ESP-moduler och utvecklingskort som redan finns på marknaden, bland vilka NodeMCU är den mest populära. Bortsett från det är ESP-12E, ESP01 också populära val. Men om du vill göra din design mer flexibel och kompakt, är chansen att vi måste designa vår egen ESP-modul från chipnivån istället för att direkt använda en lättillgänglig modul. I den här artikeln lär vi oss hur man utformar en krets och kretskort för att använda ESP-styrenheterna (ESP8285) direkt utan att använda en modul.
I det här projektet har vi använt ESP8285 eftersom det är ett mycket intressant litet chip. Det är en liten SoC (System on Chip), med IoT (Internet of Things) och funktioner för djup sömn. Den har samma kraft som hans storebror ESP8266 och som en bonus kommer den med ett inbyggt 1 MB flashminne med många GPIO. Du kan också använda ESP8266 som ett alternativ och de flesta saker som diskuteras i den här artikeln kommer fortfarande att vara desamma.
I en tidigare artikel har jag visat dig hur du kan designa din egen PCB-antenn för 2,4 GHz med samma ESP8285-chip som ett exempel. Du kan läsa den här artikeln för att lära dig mer om antenndesign för ESP8266 / ESP8285.
Så i den här artikeln kommer jag att täcka hur alla kretsar fungerar och slutligen kommer det att finnas en video som förklarar allt. Jag har också täckt i detalj hela proceduren för att designa och beställa PCB-kort från PCBWay för vår ESP-moduldesign.
Introduktion till ESP8285
Om du inte känner till detta mångsidiga ESP8285-chip, här är en snabb förklaring med en funktionslista. ESP8285 är ett litet chip med inbyggd 1M flash och ram, det liknar ESP8286, ESP-01-modulen men det interna flashminnet gör det mycket mer kompakt och billigare.
Detta chip innehåller Tensilicas L106 Diamond 32-bitars kärnprocessor och detsamma gäller för ESP8266 också, det är därför som all kod för ESP8266 kan blinkas direkt till detta chip utan några ändringar, och det har samma nätverksstack som ESp8266-dosen.
ESP8285 integrerar antennomkopplare, RF-balun, effektförstärkare, lågt mottagningsförstärkare, filter och strömhanteringsmoduler. Den kompakta designen minimerar PCB-storleken och kräver minimala externa kretsar. Om du vill lära dig mer om denna IC kan du alltid kolla databladet för ESP8285 för enheten på Espressif Systems.
ESP Development Board Circuit Diagram
Kretsen är väldigt enkel och jag har brutit ner den för bättre förståelse. Nedanstående ESP-schema visar hela kretsen, eftersom du kan se att det finns åtta funktionsblock, kommer jag att gå igenom var och en och förklara varje block.
ESP8285 SOC:
Kärnan i projektet är ESP8285 SoC, alla GPIO: er och andra nödvändiga anslutningar definieras här.
Effektfilter: Det finns 7 strömstifter på denna IC, först är strömstiften för ADC och IO. Jag har kortslutit dem och använder en 47uF effektfilterkondensator och en 0,1uF frikopplingskondensator för att filtrera 3,3V DC-ingången.
PI-filter: PI-filtret är ett av de viktigaste blocken i denna design eftersom det är ansvarigt för att driva RF-förstärkaren och LNA, eventuellt internt eller externt brus kan vara beskrivande för detta avsnitt, så för det fungerar RF-sektionen inte. Därför är lågpassfiltret för LNA-avsnittet mycket viktigt. Du kan lära dig mer om PI-filter genom att följa länken.
Crystal Oscillator: 40MHz crystal oscillator fungerar som klockkälla för ESP8285 SoC, och 10pF-frikopplingskondensatorerna lades till som rekommenderas av databladet.
LNA-sektion: En annan viktigaste sektion i denna krets är LNA-sektionen; det är här PCB-antennen ansluts till ESP: s fysiska stift. Som rekommenderat av databladet används en 5,6 pF kondensator, och den ska fungera bra som matchande krets. Men jag har lagt till två platshållare för två induktorer som om den matchande kretsdifferensen fungerar, kan jag alltid sätta in några induktorer för att justera värdena för att matcha antennimpedansen.
LNA-sektionen har också två PCB-byglar med UFL-kontakt. PCB-antennen är inställd som standard, men om din applikation kräver lite mer räckvidd kan du avlasta PCB-bygeln och kortsluta bygeln till UFL-kontakten, och du kan ansluta en extern antenn precis så.
Kontakt för ingång för batteri:
Du kan se ovan, jag har satt tre typer av batterikontakter parallellt för om du inte kunde hitta en, kan du alltid sätta en annan.
GPIO-rubriker och programmeringshuvuden:
GPIO-rubrikerna är där för att komma åt GPIO-stiften och programmeringshuvudet är där för att blinka huvud Soc.
Automatisk återställningskrets:
I detta block bildar två NPN-transistorer, MMBT2222A den automatiska återställningskretsen när du trycker på uppladdningsknappen i Arduino IDE, pythonverktyget får ett samtal, det här pythonverktyget är flashverktyget för ESP-enheterna, detta pi-verktyg ger signal till UART-omvandlaren för att återställa kortet medan du håller GPIO-stiftet i mark. Därefter börjar uppladdnings- och verifieringsprocessen.
Power LED, On-Board LED och Spänningsdelaren:
Strömlampa: Strömlampan har en PCB-bygel. Om du använder detta kort som för batteridriven applikation, kan du DE löda den här bygeln för att spara en hel del ström.
Onboard LED: Många dev-boards på marknaden har en LED ombord, och detta board är inget undantag; IC: ns GPIO16 är ansluten till en inbyggd ledning. Vid sidan av det finns en platshållare för ett 0 OHM-motstånd genom att fylla i 0 Ohms-motståndet, du ansluter GPIO16 till återställningen, och som du kanske vet är detta ett mycket viktigt steg för att sätta en ESP i djupt viloläge.
Spänningsdelare: Som du kanske vet är den maximala ingångsspänningen för ADC 1V. Så, för att ändra ingångsintervallet till 3,3 V används spänningsdelaren. Konfigurationen är så gjord att du alltid kan lägga till ett motstånd i serie med stiftet för att ändra räckvidden till 5V.
HT7333 LDO:
En LDO eller lågavbrottsspänningsregulator används för att reglera spänningen till ESP8285 från ett batteri med minimalt strömförlust.
Den maximala ingångsspänningen för HT7333 LDO är 12V och den används för att konvertera batterispänningen till 3,3V, jag valde den här HT7333 LDO eftersom den är en enhet med mycket låg viloström. 4.7uF frikopplingskondensatorer används för att stabilisera LDO.
Tryckknapp för programmeringsläge:
Tryckknappen är ansluten till GPIO0. Om din UART-omvandlare inte har en RTS- eller DTR-stift kan du använda denna tryckknapp för att manuellt dra GPIO0 till marken.
Motstånd mot pullup och pulldown:
Upp- och nedrullningsmotstånden finns där enligt databladet.
Bortsett från det följdes många designnormer och riktlinjer vid design av PCB. Om du vill veta mer om det kan du hitta det i hårdvarudesignguiden för ESP8266.
Tillverkar vår ESP8285 Dev Board
Schemat är klar och vi kan fortsätta med att lägga ut kretskortet. Vi har använt Eagle PCB-designprogramvara för att göra PCB, men du kan designa PCB med den programvara du föredrar. Vår PCB-design ser ut så här när den är klar.
BOM- och Gerber-filerna kan laddas ner från följande länkar:
- ESP8282 Dev-Board Gerber Files
- ESP8282 Dev-Board BOM
Nu, när vår design är klar, är det dags att få PCB: erna tillverkade med. För att göra det, följ bara stegen nedan:
Beställa PCB från PCBWay
Steg 1: Gå in på https://www.pcbway.com/, registrera dig om det är första gången. Ange sedan måtten på din PCB, antalet lager och antalet PCB du behöver på fliken PCB Prototype.
Steg 2: Fortsätt genom att klicka på knappen "Citera nu". Du kommer till en sida där du kan ställa in några ytterligare parametrar som korttyp, lager, material för kretskort, tjocklek och mer, de flesta är valda som standard. Om du väljer några specifika parametrar kan du välja det i hör.
Som du kan se behövde vi våra kretskort svarta! så jag har valt svart i lödmaskens färgavsnitt.
Steg 3: Det sista steget är att ladda upp Gerber-filen och fortsätta med betalningen. För att säkerställa att processen är smidig verifierar PCBWAY om din Gerber-fil är giltig innan du fortsätter med betalningen. På så sätt kan du vara säker på att din PCB är tillverkningsvänlig och når dig som engagerad.
Montering och programmering av ESP8285-kortet
Efter några dagar fick vi vår PCB i en snygg förpackningslåda, och PCB-kvaliteten var som alltid bra. Brädans översta och undre lager visas nedan:
Efter att ha fått styrelsen började jag omedelbart lödda brädet. Jag har använt en varmluftslödstation och mycket lödflöde för att löda huvudprocessorn och andra komponenter på kretskortet löds via ett lödkolv. Den monterade modulen visas nedan.
När det är klart har jag anslutit min pålitliga FTDI-modul för att testa kortet genom att ladda upp en skiss, De anslutna stiften och en bild av kortet som visas nedan:
ESP8285 Dev Board FTDI-modul
3,3V -> 3,3V
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND
När alla nödvändiga anslutningar är slutförda har jag ställt in Arduino IDE genom att välja Generic ESP8285 Board från Tools > Board > Generic ESP8285 Module .
Testning med en enkel LED Blink Sketch
Därefter är det dags att testa kortet genom att blinka en LED, för det har jag använt följande kod:
/ * ESP8285 Blink Blinka den blå lysdioden på ESP828285-modulen * / #define LED_PIN 16 // Definiera blinkande LED-stift ogiltig inställning () {pinMode (LED_PIN, OUTPUT); // Initiera LED-stiftet som en utgång} // loopfunktionen körs om och om igen för alltid ogiltig loop () {digitalWrite (LED_PIN, LOW); // Slå på lysdioden (Observera att LOW är spänningsnivån) fördröjning (1000); // Vänta på en andra digitalWrite (LED_PIN, HIGH); // Stäng av lysdioden genom att göra spänningen HÖG fördröjning (1000); // Vänta i två sekunder}
Koden är väldigt enkel, först har jag definierat LED-stiftet för det här kortet, och det är på GPIO 16. Därefter har jag ställt in stiftet som en utgång i installationssektionen. Och slutligen, i slingavsnittet, har jag slagit på och av stiftet med en sekunders fördröjning däremellan.
Testar webbserverskiss på ESP8285
När det väl fungerade bra är det dags att testa HelloServer-skissen från ESP8266WebServer-exemplet. Jag använder ett exempel på ESP8266 eftersom det mesta av koden är kompatibel med esp8285-chipet. Exempelkoden finns också längst ner på denna sida.
Den här koden är också mycket enkel. Först måste vi definiera alla nödvändiga bibliotek, #omfatta
därefter måste vi ange hotspots namn och lösenord.
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * lösenord = STAPSK;
Därefter måste vi definiera ESP8266WebServer-objektet. Exemplet här definierar det som en server (80) (80) är portnumret.
Därefter måste vi definiera en stift för en LED i mitt fall var det stift nr 16.
const int led = 16;
Därefter definieras funktionen handleRoot () . Denna funktion kommer att anropas när samtalet på IP-adressen från vår webbläsare.
ogiltig handleRoot () {digitalWrite (led, 1); server.send (200, "text / plain", "hej från esp8266!"); digitalWrite (led, 0); }
Nästa är installationsfunktionen, hör att vi måste definiera alla nödvändiga parametrar som-
pinMode (led, OUTPUT); // vi har definierat den ledda stift som produktion Serial.begin (115200); // vi har startat en seriell anslutning med 115200 baud WiFi.mode (WIFI_STA); // vi har ställt in wifi-läget som station WiFi.begin (ssid, lösenord); sedan börjar vi wifi-anslutningen Serial.println (""); // den här raden ger ett extra utrymme medan (WiFi.status ()! = WL_CONNECTED) {fördröjning (500); Serial.print ("."); } / * i medan loop vi testar anslutningsstatus en ESP kan ansluta till hotspot slingan bromsar * / Serial.println (""); Serial.print ("Ansluten till"); Serial.println (ssid); Serial.print ("IP-adress:"); Serial.println (WiFi.localIP ());
Därefter skriver vi ut namnet och IP-adressen för det anslutna SSID till det seriella bildskärmsfönstret.
server.on ("/", handleRoot); // on-metoden för serverobjektet kallas för att handla rotfunktionsservern.on ("/ inline", () {server.send (200, "text / plain", "detta fungerar också");}); // igen har vi anropat metoden för / inline-exemplet server.begin (); // nästa startar vi servern med startmetoden Serial.println ("HTTP-server startad"); // och slutligen skriver vi ut ett uttalande i den seriella bildskärmen. } // som markerar slutet på installationsfunktionen void loop (void) {server.handleClient (); }
I slingfunktionen har vi kallat metoder för handleClient () för att driva esp korrekt.
När detta var klart tog ESP8285-kortet lite tid att ansluta sig till webbservern och fungerade framgångsrikt som förväntat vilket markerade slutet på detta projekt.
Brädans fullständiga arbete finns också i videon som länkas nedan. Jag hoppas att du gillade den här artikeln och lärde dig något nytt ur den. Om du är osäker kan du fråga i kommentarerna nedan eller använda våra forum för detaljerad diskussion.