mini|ESP8266-IC mini|Handelsübliches ESP8266-Modul mit Prozessor-Chip (links) und externem Flash-Speicher (rechts) für die Firmware. Im oberen Bildbereich die gedruckte WLAN-Antenne mini|Bild des ESP8266-Die Der ESP8266 ist ein kostengünstiger und mit geringem Leistungsbedarf ausgeführter 32-Bit-Mikrocontroller der chinesischen Firma espressif. Er ermöglicht durch seine offene Bauweise den Aufbau von WLAN-gesteuerten Aktoren und Sensoren. Als freie Entwicklungswerkzeuge stehen unter anderem die GNU Compiler Collection inkl. Toolchain zur Verfügung.
Architektur Der 32-Bit-Prozessorkern vom Typ Xtensa LX106 von Tensilica arbeitet mit einem Systemtakt von 80 MHz – 160 MHz, hat 64 kB RAM als Befehlsspeicher und 96 kB RAM als Datenspeicher und einen internen Festwertspeicher (ROM), welcher einen unveränderlichen Bootloader beinhaltet. Als Besonderheit und aus Kostengründen weist der ESP8266 keinen internen nicht-flüchtigen und programmierbaren Flash-Speicher für die anwendungsspezifische Firmware auf. Die komplette Firmware ist in einem externen, seriellen Flash-Speicher abgelegt und wird zur Ausführung blockweise in den internen RAM-Speicher geladen und dort ausgeführt.Paul Sokolovsky: Getting the most out of ESP8266 (englisch) Als Peripherie stehen unter anderem eine SPI-Schnittstelle und ein integriertes Wireless Local Area Network (WLAN nach IEEE 802.11 b/g/n) zur Verfügung. Der ESP8285 ist eine kostengünstige Variante mit einem MiB integriertem Flashspeicher.
Der Mikrocontroller ist auch zusammen mit einer Minimalbeschaltung aus Schwingquarz und Flash-Speicher, in Form verschiedener Module zum direkten Einsatz, erhältlich. Je nach Modul sind bis zu zwölf I/O-Ports, eine I²C-Schnittstelle, eine I²S-Schnittstelle, eine SPI-Schnittstelle, eine asynchrone serielle Schnittstelle (UART) und ein 10-Bit-Analog-Digital-Umsetzer herausgeführt. Alle I/Os werden mit 3,3 V betrieben. Die maximale Betriebsspannung ist 3,6 V (Operating Voltage 2,5 V ~ 3,6 V laut Datenblatt).
Programmierung Momentan werden neben GCC und der direkten Programmierung in der Programmiersprache C unterschiedliche Firmware-Varianten unterstützt : Lua-basierte interaktive Programmierung unter der Bezeichnung NodeMCU. Micropython (Python-basierte interaktive Programmierung) Circuitpython (Python-basierte interaktive Programmierung) Arduino-/C++-basierte Programmierung. AT-Command für die Nutzung als Seriell-zu-WLAN-Schnittstelle ESP Easy zur Ansteuerung von Sensoren/Aktoren über WLAN ESP Basic
Die NodeMCU- und Micropython-Firmware-Varianten unterstützen das interaktive Programmieren auf dem ESP8266. Dabei werden Programme im externen Flash-Speicher abgelegt und das komplizierte Speichermanagement wie das nötige blockweise Nachladen von externen Programmdaten in den internen RAM-Speicher durch entsprechende Softwarefunktionen vom Entwickler abstrahiert, was das Schreiben von Programmen für den ESP8266 erheblich erleichtert.
Als Nachfolger des ESP8266 entwickelte espressif den Mikrocontroller ESP32 mit einigen Verbesserungen wie beispielsweise Bluetooth und einem Hallsensor.
Eigenschaften mini|ESP-01 3D-Modell Prozessor: L106 32-bit RISC-Mikroprozessorkern, basierend auf dem Tensilica Xtensa Diamond Standard 106Micro mit 80 MHz Memory: 32 KiB Befehlsspeicher 32 KiB Befehlsspeichercache 80 KiB Benutzerdaten-RAM 16 KiB ETS Systemdaten-RAM Externer Quad-SPI Flashspeicher: bis zu 16 MiB werden unterstützt (512 KiB bis 4 MiB sind bereits angeschlossen) IEEE 802.11 b/g/n Wi-Fi 802.11n bis 72,2 Mb/s Integrierte(r) T/R switch, balun, LNA, power amplifier und Leistungsanpassung WEP oder WPA/WPA2-Verschlüsselung, ebenso offene Netzwerke 16 GPIO-PINs SPI I²S-Schnittstellen mit DMA (PINs mit GPIO geteilt) UART auf einem dedizierten PIN, zusätzlich ein reiner Nur-Sende-UART, aktivierbar auf GPIO2 10-bit-ADC mit sukzessiver Approximation RTC auf GPIO16, hiermit kann per Brücke zu RST der Chip aus dem Deep Sleep aufgeweckt werden
Der Mikrocontroller verfügt über keine hardwarebasierte I²C-Schnittstelle, es kann die I²C-Schnittstelle mittels Bit-Banging per Software implementiert werden.
Boot Einschränkungen Nicht alle I/O Pins sind frei verwendbar. Der ESP8266 benötigt folgende Pegel beim Booten: Enable und Reset High Booten: GPIO2 und TX High, GPIO0 und GPIO15 Low Flash: GPIO0, GPIO2 und TX High, GPIO15 Low Dies kann durch leichte (5k) Pullup und Pulldown Widerstände geschehen. TX kann ein Ausgang sein oder offen. Beim Starten kommen über TX bereits serielle Daten.
Pinbelegung des ESP-01 mini|ESP-01 Modul Pinbelegung Die Pins, die beim normalen ESP-01-Modul nach außen geführt wurden, sind sehr eingeschränkt: VCC, Spannung (+3,3 V bis 3,6 V) GND, Masse (0 V) RX, Datenpin Empfang X TX, Datenpin Senden X CH_PD, Chip power-down, Chip enable, active high (+3.3V) RST, Reset GPIO 0 GPIO 2
Da beim ESP-01 der GPIO16 nicht nach außen geführt wurde, unterstützt dieser zunächst kein Deep Sleep. Dieser kann durch selbst anbringen (löten) eines Pinout direkt am Chip realisiert werden.
Espressif-Module Espressif selbst hat u. a. folgende ESP8266-basierte Module veröffentlicht:
NamePinsRasterFormfaktorLEDsAntenneGeschirmtAbmessungen (mm)Kommentar 18 (davon 9 GPIO)1,5 mm2×9 gezahnt PCB 18 × 20FCC ID 2AC7Z-ESPWROOM02. 181,5 mm2×9 gezahnt PCB 18 × 20FCC ID 2AC7Z-ESPWROOM02D. Überarbeiteter ESP-WROOM-02, kompatibel mit 150-mil und 208-mil Flashspeichern. 181,5 mm2×9 gezahnt U.FL-Sockel 18 × 20 Unterscheidet sich vom ESP-WROOM-02D darin, dass ein U.FL-Sockel vorhanden ist. 201,5 mm2×10 gezahnt PCB 16 × 23FCC ID 2AC7Z-ESPWROOMS2.
Ai-Thinker-Module alt=ESP-01 module|mini|Ai-Thinker ESP8266-Module (ESP-12F, schwarz), welche auf Leiterplatten (weiß) aufgelötet sind. Die untenstehende Tabelle zeigt die erste ESP8266-Modul-Serie des Drittherstellers Ai-Thinker, welches auch die am weitesten verbreitete ist.
Die Angaben zu den Speichergrößen in der Spalte „Bemerkungen“ gelten für alle darunter folgenden Module. Die Bezeichnung ist immer „ESP-xx“. Um die Module zu betreiben, werden weitere Komponenten benötigt, insbesondere eine Spannungsquelle (3,3V – 3,6V) und einen seriellen TTL-zu-USB-Adapter (auch USB-zu-UART-Brücke genannt), welcher zum Programmieren (Flashen) benötigt wird. Projektentwickler und Anfänger können zum Testen und Probieren auch ein NodeMCU-Board verwenden, welches bereits eine USB-zu-UART-Brücke und einen 5V zu 3,3V Pegelwandler beinhaltet und somit schneller und einfacher verwendet werden kann.
Name Pins Raster Formfaktor LEDs Antenne Geschirmt Abmessungen (mm) Bemerkungen Deep Sleep möglich (RST & IO-16) ESP-01 6 0,1 in 2,54 mm 2×4 DIL PCB 14,3 × 24,8 512 KiB-Version und blaues PCB markenlos. 1 MiB Flash, AI-Cloud und schwarzes PCB von AI-Thinker. Nein ESP-01S 6 0,1 in 2×4 DIL PCB 14,4 × 24,7 1 MiB Flash teilweise 4 MiB Nein 16 1,6 mm 2×9 Platinenstecker PCB 18,0 × 18,0 Nutzt den ESP8285 (1 MiB Speicher). Ja 18 1,1 mm 2×9 gezahnt Lötkontakt 10,0 × 11,0 Nutzt den ESP8285 (1 MiB Speicher). Ja ESP-02 6 0,1 in 2×4 gezahnt U.FL-Sockel 14,2 × 14,2 Nein ESP-03 10 2 mm 2×7 gezahnt Keramik 17,3 × 12,1 1 MiB Flash Brücke auf PCB ESP-04 10 2 mm 2×7 gezahnt Lötkontakt 14,7 × 12,1 Das Pinout von -03 und -04 sind gleich. Dem -04 fehlt jedoch die Antenne. Brücke auf PCB ESP-05 3 0,1 in 1×5 SIL U.FL-Sockel 14,2 × 14,2 Nein ESP-06 11 various 4×3 dice keine 14,2 × 14,7 Nicht von der FCC zugelassen. Nein ESP-07 14 2 mm 2×8 Lötpunkte Keramik + U.FL-Sockel 20,0 × 16,0 Nicht von der FCC zugelassen. Ja ESP-07S 14 2 mm 2×8 Lötpunkte U.FL-Sockel 17,0 × 16,0 Von der FCC zugelassen. Pinout gleich ESP-12 Modulen Ja ESP-08 10 2 mm 2×7 gezahnt keine 17,0 × 16,0 Nicht von der FCC zugelassen. Ja ESP-09 10 various 4×3 dice keine 10,0 × 10,0 ESP-10 3 2 mm 1×5 gezahnt keine 14,2 × 10,0 Nein ESP-11 6 1,27 mm 1×8 Lötpunkte Keramik 17,3 × 12,1 Nein ESP-12 14 2 mm 2×8 gezahnt + 6 PCB 24,0 × 16,0 Von der FCC zugelassen. Ja ESP-12E 20 2 mm 2×8 gezahnt + 6 PCB 24,0 × 16,0 4 MiB flash. Ja ESP-12F 20 2 mm 2×8 gezahnt + 6 PCB 24,0 × 16,0 Von der FCC zugelassen. Verbesserte Antennenleistung. Ja ESP-12S 14 2 mm 2×8 gezahnt PCB 24,0 × 16,0 Von der FCC zugelassen. Ja ESP-13 16 1,5 mm 2×9 gezahnt + 6 PCB 18,0 × 20,0 Ja ESP-14 22 2 mm 2×8 gezahnt + 6 PCB 24,3 × 16,2
Literatur Erik Bartmann: Das ESP8266-Praxisbuch: Mit NodeMCU und ESPlorer. Elektor-Verlag, 2016, ISBN 978-3-89576-321-2. Neil Kolban: Kolban's Book on the ESP32 & ESP8266. Leanpub (englisch)
Weblinks
(englisch) Datenblätter, SDKs und Beispiele (englisch) NodeMCU & ESP-Tutorial mit Arduino IDE (deutsch) ESP8266- und ESP8285-Module – Anleitung
Einzelnachweise
Kategorie:Mikrocontroller