Die ESP8266 GPIO Schnittstellen
Um eine Vielzahl von Schnittstellen auf kleinstem Raum bereitzustellen werden beim ESP8266EX die Schnittstellen durch Multiplexen mehrfach belegt. Dabei werden ein und dem selben Pin mehrere Funktionen zugewiesen. Die eigentliche Schnittstellen Funktion wird dann durch Anpassung der Firmware (Betriebssystem) zugewiesen. Das vorgenannte Multiplexen der ESP8266 Schnittstellen spiegelt sich gerade bei den GPIO Schnittstellen wieder. GPIO steht bezeichnend für General Purpose Input / Output zu deutsch, eine allgemeine Schnittstelle eines integrierten Schaltkreis. Dem entsprechend sind die ESP8266 GPIO Schnittstellen frei programmierbar, bzw. verwendbar. Die GPIO Schnittstellen eignen sich dabei sowohl für die Benutzereingabe als auch für das Interpretieren angeschlossener Technik. Im Eigentlichen unterscheidet man hier zwischen High und Low Level, wobei High Level als positiv – verbunden mit Plus – und Low Level negativ führend – verbunden mit Minus – bezeichnet.
Richtige Verwendung der GPIO Schnittstellen
Zwar verarbeitet der ESP8266EX Eingangsspannungen im Bereich von 3,0 bis 3,6 Volt dies bezieht sich allerdings lediglich auf die eigentliche Spannungsversorgung des ESP8266EX (Pin 1 VDDA). Nicht zuletzt durch das Multiplexen, die Mehrfachbelegung liegen spannungssensible Schaltkreise hinter dem jeweiligen GPIO. Insofern der jeweilige Pin als GPIO als universeller Input Output verwendet wird sollte folgender Grundsatz stets beachtet werden:
Um etwaige Schäden durch Spannungsspitzen oder Kriechstrom angeschlossener Geräte oder Sensoren zu vermeiden, sollte stets ein Vorwiderstand mit beispielsweise 10 KΩ vorgeschaltet werden.
Nachfolgend die GPIO Übersicht zum ESP8266EX (nicht zu verwechseln mit der Pinbelegung eines ESP8266 WLan Modul).
PINBELEGUNG DES ESP8266EX
PIN | Bezeichnung | Standard | Multplexing | |
8 | GPIO17 | Low / High Level | Ruhezustand / Wake Up | |
9 | GPIO14 | Low / High Level | HSPI_CLK | |
10 | GPIO12 | Low / High Level | HSPI_MISO | |
12 | GPIO13 | Low / High Level | HSPI_MOSI | UART0_CTS |
13 | GPIO15 | Low / High Level | HSPI_CS | UART0_RTS |
14 | GPIO2 | Low / High Level | High Flash Modus | |
15 | GPIO0 | Low / High Level | Low Flash Modus | SPI_CS |
16 | GPIO4 | Low / High Level | ||
18 | GPIO9 | Low / High Level | SPIHD | HSPIHD |
19 | GPIO10 | Low / High Level | SPIWP | HSPIWP |
20 | GPIO11 | Low / High Level | SPI_CS0 | |
21 | GPIO6 | Low / High Level | SPI_CLK | |
22 | GPIO7 | Low / High Level | SPI_MISO | |
23 | GPIO8 | Low / High Level | SPI_MOSI | |
24 | GPIO5 | Low / High Level | ||
25 | GPIO3 | Low / High Level | Flash Modus UART TX | |
26 | GPIO1 | Low / High Level | Flash Modus UART RX | SPI_CS1 |
Für eine bessere Übersichtlichkeit erfolgt das in obiger Tabelle dargestellten Multiplexing in stark verkürzter Form. Die Tabelle gibt lediglich einen kleinen Auszug der tatsächlich verfügbaren Schnittstellen wieder.
Vorgenannte Tabelle macht offensichtlich das hinter jedem ESP8266 Modul stets die gleiche Funktionalität des ESP8266EX steckt, lediglich die Anzahl der auf das ESP82666 WLan Modul ausgeführten Pins unterscheidet sich. Ganz gleich ob ein ESP-01 mit seinen 8 Pins oder ein ESP-12E mit seinen 22 Pins, bei beiden steckt stets der gleiche ESP8266EX Mikrocontroller dahinter.