- Einführung in ESP8285
- Schaltplan der ESP-Entwicklungsplatine
- Herstellung unseres ESP8285 Dev Board
- PCB bei PCBWay bestellen
- Zusammenbau und Programmierung der ESP8285-Karte
- Testen mit einer einfachen LED-Blinkskizze
- Testen der Webserver-Skizze auf ESP8285
Die ESP-Controller von Espressif werden zu einer weit verbreiteten Wahl für IoT-basierte Designs. Es gibt bereits viele Arten von ESP-Modulen und Entwicklungsplatinen auf dem Markt, darunter NodeMCU. Abgesehen davon sind ESP-12E und ESP01 ebenfalls beliebte Optionen. Wenn Sie Ihr Design jedoch flexibler und kompakter gestalten möchten, müssen wir wahrscheinlich unser eigenes ESP-Modul auf Chipebene entwerfen, anstatt direkt ein sofort verfügbares Modul zu verwenden. In diesem Artikel erfahren Sie, wie Sie eine Schaltung und eine Leiterplatte für die direkte Verwendung der ESP-Steuerungen (ESP8285) ohne Verwendung eines Moduls entwerfen.
In diesem Projekt haben wir ESP8285 verwendet, da es sich um einen sehr interessanten kleinen Chip handelt. Es ist ein winziger SoC (System on Chip) mit IoT (Internet of Things) und Tiefschlaffunktionen. Es hat die gleiche Leistung wie sein großer Bruder ESP8266 und als Bonus verfügt es über einen eingebauten 1-MB-Flash-Speicher mit vielen GPIOs. Sie können auch ESP8266 als Alternative verwenden, und die meisten in diesem Artikel beschriebenen Dinge bleiben unverändert.
In einem früheren Artikel habe ich Ihnen gezeigt, wie Sie Ihre eigene PCB-Antenne für 2,4 GHz am Beispiel des gleichen ESP8285-Chips entwerfen können. In diesem Artikel erfahren Sie mehr über das Antennendesign für ESP8266 / ESP8285.
In diesem Artikel werde ich beschreiben, wie alle Schaltkreise funktionieren, und schließlich wird es ein Video geben, das alles erklärt. Ich habe auch ausführlich das gesamte Verfahren zum Entwerfen und Bestellen der Leiterplatten bei PCBWay für unser ESP-Moduldesign beschrieben.
Einführung in ESP8285
Wenn Sie diesen vielseitigen ESP8285-Chip nicht kennen, finden Sie hier eine kurze Erklärung mit einer Funktionsliste. ESP8285 ist ein kleiner Chip mit integriertem 1M-Flash und RAM. Er ist dem ESP8286, ESP-01-Modul ziemlich ähnlich, aber der interne Flash-Speicher macht ihn viel kompakter und billiger.
Dieser Chip enthält den 32-Bit-Core-Prozessor L106 Diamond von Tensilica und das Gleiche gilt auch für den ESP8266. Deshalb kann der gesamte Code für den ESP8266 ohne Änderungen direkt auf diesen Chip geflasht werden und hat den gleichen Netzwerkstapel wie die ESp8266-Dosis.
Der ESP8285 integriert Antennenschalter, HF-Balun, Leistungsverstärker, rauscharmen Empfangsverstärker, Filter und Energieverwaltungsmodule. Das kompakte Design minimiert die Leiterplattengröße und erfordert nur minimale externe Schaltkreise. Wenn Sie mehr über diesen IC erfahren möchten, können Sie jederzeit das Datenblatt von ESP8285 des Geräts bei Espressif Systems überprüfen.
Schaltplan der ESP-Entwicklungsplatine
Die Schaltung ist sehr einfach und ich habe sie zum besseren Verständnis aufgeschlüsselt. Das folgende ESP-Schema zeigt die gesamte Schaltung. Wie Sie sehen können, gibt es acht Funktionsblöcke. Ich werde jeden einzelnen durchgehen und jeden Block erklären.
ESP8285 SOC:
Das Herzstück des Projekts ist der ESP8285 SoC. Hier werden alle GPIOs und andere notwendige Verbindungen definiert.
Power Filter: Dieser IC verfügt über 7 Power Pins. Der erste ist der Power Pin für ADC und IOs. Ich habe sie kurzgeschlossen und verwende einen 47-uF-Leistungsfilterkondensator und einen 0,1-uF-Entkopplungskondensator, um den 3,3-V-Gleichstromeingang zu filtern.
PI-Filter: Der PI-Filter ist einer der wichtigsten Blöcke dieses Entwurfs, da er für die Stromversorgung des HF-Verstärkers und des LNA verantwortlich ist. Internes oder externes Rauschen kann für diesen Abschnitt beschreibend sein. Daher funktioniert der HF-Abschnitt nicht. Deshalb ist der Tiefpassfilter für den LNA-Bereich sehr wichtig. Sie können mehr über PI-Filter erfahren, indem Sie dem Link folgen.
Kristalloszillator: Der 40-MHz-Kristalloszillator dient als Taktquelle für den ESP8285-SoC, und die 10pF-Entkopplungskondensatoren wurden wie im Datenblatt empfohlen hinzugefügt.
LNA-Abschnitt: Ein weiterer wichtiger Abschnitt dieser Schaltung ist der LNA-Abschnitt. Hier wird die PCB-Antenne mit dem physischen Pin des ESP verbunden. Wie im Datenblatt empfohlen, wird ein Kondensator mit 5,6 pF verwendet, der als Anpassungsschaltung einwandfrei funktionieren sollte. Aber ich habe zwei Platzhalter für zwei Induktivitäten hinzugefügt, als ob ich für den Fall, dass der Dissens der Anpassungsschaltung funktioniert, immer einige Induktivitäten einsetzen kann, um die Werte an die Antennenimpedanz anzupassen.
Der LNA-Bereich verfügt außerdem über zwei PCB-Jumper mit einem UFL-Anschluss. Die PCB-Antenne ist standardmäßig eingestellt. Wenn Ihre Anwendung jedoch etwas mehr Reichweite benötigt, können Sie den PCB-Jumper entlöten und den Jumper für den UFL-Anschluss kurzschließen und einfach so eine externe Antenne anschließen.
Batterieeingangsanschluss:
Sie können oben sehen, ich habe drei Arten von Batterieanschlüssen parallel geschaltet, denn wenn Sie keinen finden konnten, können Sie immer einen anderen einsetzen.
GPIO-Header und die Programmier-Header:
Die GPIO-Header dienen zum Zugriff auf die GPIO-Pins und der Programmier-Header zum Flashen des Haupt-Soc.
Auto-Reset-Schaltung:
In diesem Block bilden zwei NPN-Transistoren, MMBT2222A, die Auto-Reset-Schaltung, wenn Sie die Upload-Taste in der Arduino-IDE drücken. Das Python-Tool erhält einen Anruf. Dieses Python-Tool ist das Flash-Tool für die ESP-Geräte Signal an den UART-Wandler, die Karte zurückzusetzen, während der GPIO-Pin auf Masse gehalten wird. Danach beginnt der Upload- und Überprüfungsprozess.
Power-LED, On-Board-LED und Spannungsteiler:
Power-LED: Die Power-LED verfügt über einen PCB-Jumper. Wenn Sie diese Platine für batteriebetriebene Anwendungen verwenden, können Sie diesen Jumper DE löten, um viel Strom zu sparen.
Onboard-LED: Viele Entwickler-Boards auf dem Markt haben eine Onboard-LED, und dieses Board ist keine Ausnahme. Der GPIO16 des IC ist mit einer integrierten LED verbunden. Daneben gibt es einen Platzhalter für einen 0-OHM-Widerstand, indem Sie den 0-Ohm-Widerstand füllen. Sie verbinden GPIO16 mit dem Reset. Wie Sie vielleicht wissen, ist dies ein sehr wichtiger Schritt, um ein ESP in den Tiefschlafmodus zu versetzen.
Spannungsteiler: Wie Sie vielleicht wissen, beträgt die maximale Eingangsspannung des ADC 1V. Um den Bereich des Eingangs auf 3,3 V zu ändern, wird der Spannungsteiler verwendet. Die Konfiguration ist so vorgenommen, dass Sie immer einen Widerstand in Reihe mit dem Pin hinzufügen können, um den Bereich auf 5 V zu ändern.
HT7333 LDO:
Ein LDO- oder Low-Dropout-Spannungsregler wird verwendet, um die Spannung an ESP8285 von einer Batterie mit minimalem Leistungsverlust zu regeln.
Die maximale Eingangsspannung des HT7333 LDO beträgt 12 V und wird verwendet, um die Batteriespannung in 3,3 V umzuwandeln. Ich habe dieses HT7333 LDO gewählt, weil es ein Gerät mit einem sehr geringen Ruhestrom ist. Die 4,7 uF-Entkopplungskondensatoren dienen zur Stabilisierung des LDO.
Drucktaste für den Programmiermodus:
Der Druckknopf ist mit GPIO0 verbunden. Wenn Ihr UART-Konverter keinen RTS- oder DTR-Pin hat, können Sie den GPIO0 mit diesem Druckknopf manuell auf Masse ziehen.
Pullup- und Pulldown-Widerstände:
Die Pullup- und Pulldown-Widerstände sind dort vorhanden, wie im Datenblatt empfohlen.
Abgesehen davon wurden beim Entwurf der Leiterplatte viele Konstruktionsnormen und -richtlinien befolgt. Wenn Sie mehr darüber erfahren möchten, finden Sie dies im Hardware-Design-Handbuch für den ESP8266.
Herstellung unseres ESP8285 Dev Board
Der Schaltplan ist fertig und wir können mit dem Auslegen der Leiterplatte fortfahren. Wir haben Eagle PCB Design Software verwendet, um die Leiterplatte herzustellen, aber Sie können die Leiterplatte mit Ihrer bevorzugten Software entwerfen. Unser PCB-Design sieht so aus, wenn es fertig ist.
Die Stücklisten- und die Gerber-Dateien können unter den folgenden Links heruntergeladen werden:
- ESP8282 Dev-Board Gerber-Dateien
- ESP8282 Dev-Board-Stückliste
Jetzt, da unser Design fertig ist, ist es Zeit, die Leiterplatten mit zu fertigen. Führen Sie dazu einfach die folgenden Schritte aus:
PCB bei PCBWay bestellen
Schritt 1: Rufen Sie https://www.pcbway.com/ auf und melden Sie sich an, wenn Sie zum ersten Mal hier sind. Geben Sie dann auf der Registerkarte PCB Prototype die Abmessungen Ihrer Leiterplatte, die Anzahl der Schichten und die Anzahl der benötigten Leiterplatten ein.
Schritt 2: Klicken Sie auf die Schaltfläche "Jetzt zitieren". Sie werden zu einer Seite weitergeleitet, auf der Sie einige zusätzliche Parameter wie Platinentyp, Schichten, Material für Leiterplatte, Dicke und mehr festlegen können. Die meisten davon sind standardmäßig ausgewählt. Wenn Sie sich für bestimmte Parameter entscheiden, können Sie diese auswählen es in hören.
Wie Sie sehen, brauchten wir unsere Leiterplatten schwarz! Daher habe ich im Farbbereich Lötmaske Schwarz ausgewählt.
Schritt 3: Der letzte Schritt besteht darin, die Gerber-Datei hochzuladen und mit der Zahlung fortzufahren. Um sicherzustellen, dass der Prozess reibungslos verläuft, überprüft PCBWAY, ob Ihre Gerber-Datei gültig ist, bevor Sie mit der Zahlung fortfahren. Auf diese Weise können Sie sicher sein, dass Ihre Leiterplatte herstellungsfreundlich ist und Sie als engagiert erreicht.
Zusammenbau und Programmierung der ESP8285-Karte
Nach ein paar Tagen erhielten wir unsere Leiterplatte in einer ordentlichen Verpackung, und die Leiterplattenqualität war wie immer gut. Die obere und die untere Schicht der Platine sind unten dargestellt:
Nachdem ich die Platine erhalten hatte, begann ich sofort mit dem Löten der Platine. Ich habe eine Heißluftlötstation und viel Lötflussmittel verwendet, um die Haupt-CPU zu löten, und andere Komponenten auf der Leiterplatte werden über einen Lötkolben gelötet. Das zusammengebaute Modul ist unten dargestellt.
Sobald dies erledigt ist, habe ich mein vertrauenswürdiges FTDI-Modul angeschlossen, um die Karte zu testen, indem ich eine Skizze, die verbundenen Stifte und ein Bild der Karte hochgeladen habe (siehe unten):
ESP8285 Dev Board FTDI-Modul
3,3 V -> 3,3 V.
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND
Nachdem alle notwendigen Verbindungen hergestellt sind, ich habe den Arduino IDE eingesetzt durch den Generic ESP8285 Vorstand von der Auswahl - Tool > Vorstand > Allgemein ESP8285 Modul .
Testen mit einer einfachen LED-Blinkskizze
Als nächstes ist es Zeit, die Karte durch Blinken einer LED zu testen. Dafür habe ich den folgenden Code verwendet:
/ * ESP8285 Blinken Blinkt die blaue LED am ESP828285-Modul * / #define LED_PIN 16 // Blinkende LED definieren Pin void void setup () {pinMode (LED_PIN, OUTPUT); // Initialisiere den LED-Pin als Ausgang} // die Schleifenfunktion läuft immer wieder für immer void loop () {digitalWrite (LED_PIN, LOW); // LED einschalten (Beachten Sie, dass LOW der Spannungspegel ist) delay (1000); // Warte auf ein zweites digitalWrite (LED_PIN, HIGH); // Schalten Sie die LED aus, indem Sie die Spannung auf HIGH verzögern (1000); // Warte zwei Sekunden}
Der Code ist sehr einfach. Zuerst habe ich den LED-Pin für diese Karte definiert und er befindet sich auf GPIO 16. Als nächstes habe ich diesen Pin als Ausgang im Setup-Abschnitt festgelegt. Und schließlich habe ich im Loop-Bereich den Pin mit einer Verzögerung von einer Sekunde dazwischen ein- und ausgeschaltet.
Testen der Webserver-Skizze auf ESP8285
Sobald dies einwandfrei funktioniert hat, ist es Zeit, die HelloServer-Skizze aus dem ESP8266WebServer-Beispiel zu testen. Ich verwende ein ESP8266-Beispiel, da der größte Teil des Codes mit dem esp8285-Chip kompatibel ist. Den Beispielcode finden Sie auch unten auf dieser Seite.
Dieser Code ist auch sehr einfach. Zuerst müssen wir alle notwendigen Bibliotheken definieren.
#einschließen
Als nächstes müssen wir den Namen und das Passwort des Hotspots eingeben.
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * password = STAPSK;
Als nächstes müssen wir das ESP8266WebServer-Objekt definieren. Das Beispiel hier definiert es als Server (80), wobei (80) die Portnummer ist.
Als nächstes müssen wir einen Pin für eine LED definieren, in meinem Fall war es Pin Nr. 16.
const int led = 16;
Als nächstes wird die Funktion handleRoot () definiert. Diese Funktion wird aufgerufen, wenn die IP-Adresse von unserem Browser aufgerufen wird.
void handleRoot () {digitalWrite (led, 1); server.send (200, "text / plain", "hallo von esp8266!"); digitalWrite (LED, 0); }}
Als nächstes kommt die Setup-Funktion. Hören Sie, wir müssen alle notwendigen Parameter definieren, wie z.
PinMode (LED, OUTPUT); // Wir haben den definierten geführt Pin als Ausgang Serial.begin (115200); // Wir haben eine serielle Verbindung mit 115200 Baud WiFi.mode (WIFI_STA) gestartet. // Wir haben den WLAN-Modus als Station WiFi.begin (ssid, password) eingestellt. dann beginnen wir die WLAN-Verbindung Serial.println (""); // Diese Zeile bietet zusätzlichen Platz, während (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } / * In der while-Schleife testen wir den Verbindungsstatus, den der ESP mit dem Hotspot verbinden kann. Die Schleife bremst * / Serial.println (""); Serial.print ("Verbunden mit"); Serial.println (ssid); Serial.print ("IP-Adresse:"); Serial.println (WiFi.localIP ());
Als Nächstes drucken wir den Namen und die IP-Adresse der verbundenen SSID in das Fenster des seriellen Monitors.
server.on ("/", handleRoot); // Die Ein-Methode des Server-Objekts wird aufgerufen, um die Root-Funktion server.on ("/ inline", () {server.send (200, "text / plain", "das funktioniert auch");}) zu handhaben.;; // wieder haben wir die on-Methode für das / inline-Beispiel aufgerufen server.begin (); // Als nächstes starten wir den Server mit der Startmethode Serial.println ("HTTP-Server gestartet"); // und schließlich drucken wir eine Anweisung im seriellen Monitor. } // markiert das Ende der Setup-Funktion void loop (void) {server.handleClient (); }}
In der Schleifenfunktion haben wir die handleClient () -Methoden aufgerufen, um die esp ordnungsgemäß zu betreiben.
Sobald dies erledigt war, brauchte das ESP8285-Board einige Zeit, um eine Verbindung zum Webserver herzustellen, und arbeitete wie erwartet erfolgreich, was das Ende dieses Projekts markierte.
Die vollständige Funktionsweise des Boards finden Sie auch in dem unten verlinkten Video. Ich hoffe, Ihnen hat dieser Artikel gefallen und Sie haben etwas Neues daraus gelernt. Wenn Sie Zweifel haben, können Sie in den Kommentaren unten nachfragen oder unsere Foren für detaillierte Diskussionen nutzen.