Microcontrollers Lab

Table of Contents

This tutorial is about pinout reference of ESP8266 and different types of ESP8266 boards like Nodemcu, ESP01 , ESP12. Zuerst werde ich einen Überblick über den ESP8266 IC und seine Pinbelegung geben und danach werde ich eine Pinbelegungsreferenz der beliebtesten ESP8266 Boards zur Verfügung stellen.

Esp8266 ist ein Mikrochip im QFN-Gehäuse, der sowohl die Fähigkeiten einer TCP/IP-Suite als auch eines Mikrocontrollers besitzt. Esp8266 bietet eine hochintegrierte WiFi-Lösung, die die Anforderungen der Internet-of-Things-Branche erfüllt, wie z. B. niedrige Kosten, effiziente Energienutzung, zuverlässige Leistung und kompaktes Design. Es wird von Espressif Systems in Shanghai, China, hergestellt.

Das Gerät verfügt über vollständige WiFi-Netzwerkfähigkeiten und kann als Slave für einen Host-Mikrocontroller oder als eigenständige Anwendung eingesetzt werden. Wenn wir von einem Slave für einen Host-Mikrocontroller sprechen, bedeutet dies, dass er als WiFi-Adapter für jeden Mikrocontroller mit SPI- oder UART-Schnittstellen verwendet werden kann. Als Standalone-Anwendung kann er die Fähigkeiten eines Mikrocontrollers und eines WiFi-Netzwerks nutzen.

Esp8266 basiert auf Tensilicas L106 Diamond Serie, die einen 32-Bit-Prozessor und On-Chip-SRAM hat. Außerdem sind Leistungsmodule, RF-Balun, RF-Empfänger und -Sender, analoger Empfänger und Sender, digitales Basisband, Verstärker, Filter und einige andere minimale Komponenten integriert.

Spezifikationen des ESP8266

Die Spezifikation des ESP8266 teilt sich in drei Teile: Hardware, Software und Wi-Fi. In der Hardware-Spezifikation ist die Gehäusegröße QFN 32pins mit einer Abmessung von 5mm x 5mm. Der Betriebsspannungsbereich reicht von 2,5V bis 3,6V. Der Chip verbraucht durchschnittlich 80 mA Strom. Die CPU ist ein Tensilica L106, ein 32bit Prozessor mit on-chip SRAM. Die Peripherieschnittstelle enthält UART, SDIO, SPI, I2C, I2S, IR-Fernbedienung, GIPOs, ADC, PWM, LED-Licht und Taster.

Seine Firmware kann über OTA und UART aktualisiert werden. Es verwendet IPv4, TCP, UDP und HTTP als Netzwerkprotokolle. Der Benutzer kann über AT-Befehle, Cloud Server und eine mobile Anwendung konfigurieren.

ESP8266 Chip Pinout und Beschreibungen

Pin-Layout des 32-Pin-QFN-Gehäuses.

  • Pin1: VDDA ist ein Power-Pin für analoge Spannungsbereiche von 2,5V bis 3,6V.
  • Pin2: LNA ist ein Eingangs-/Ausgangs-Pin, der speziell für die RF-Antennenschnittstelle verwendet wird. Der Chip erzeugt eine Impedanz von 39+j6 Ω.
  • Pin3: VDD3P3 ist ein Power-Pin, um Verstärkerleistungen im Bereich von 2,5V bis 3,6V bereitzustellen.
  • Pin4: VDD3P3 ist ein Power-Pin, der Verstärkerleistung im Bereich von 2,5V bis 3,6V bereitstellt, ähnlich wie Pin3.
  • Pin5: VDD_RTC ist als Power-Pin kategorisiert und liefern 1,1V, aber dieser Pin ist nicht angeschlossen.
  • Pin6: TOUT ist ein Eingangs-Pin Funktionen als ADC-Pin, um die Versorgungsspannungen von Pin3 und Pin4 und die Eingangsspannungen von TOUT Pin6 zu testen. Diese beiden Funktionen können nicht gleichzeitig ausgeführt werden.
  • Pin7: CHIP_EN I ein Eingangspin. Wenn der CHIP_EN-Pin HIGH ist, arbeitet der Chip ordnungsgemäß, wenn er LOW ist, verbraucht der Chip nur wenig Strom.
  • Pin8: XPD_DCDC ist ein Eingangs-/Ausgangs-Pin, der verwendet wird, um den Chip aus dem Tiefschlafmodus aufzuwecken. Üblicherweise ist er mit GPIO16 verbunden.
  • Pin9: MTMS ist ein Eingangs-/Ausgangs-Pin mit der Bezeichnung GPIO14 und wird in SPI als Takt-Pin (SPI_CLK) verwendet.
  • Pin10: MTDI ist ein Eingangs-/Ausgangs-Pin mit der Bezeichnung GPIO12 und wird in SPI als Master-In-Slave-Out-Pin (SPI_MISO) verwendet.
  • Pin11: VDDPST ist ein Power-Pin. Es ist eine digitale Eingangs-/Ausgangsstromversorgung, deren Spannungen von 1,8V bis 3,6V reichen. Ähnlich wie Pin17.
  • Pin12: MTCK ist ein Eingangs-/Ausgangs-Pin mit der Bezeichnung GPIO13 und wird in SPI als Master-Out Slave-In-Pin (SPI_MOSI) sowie in UART als Clear To Send-Pin (UART_CTS) verwendet.
  • Pin13: MTDO ist ein Eingangs-/Ausgangs-Pin mit der Bezeichnung GPIO15 und wird in SPI als Chip Select Pin (SPI_CS) sowie in UART als Request To Send Pin (UART_RTS) verwendet.
  • Pin14: GPIO2 ist ein Eingangs-/Ausgangs-Pin, der als UART TX während der Flash-Programmierung verwendet wird.
  • Pin15: GPIO0 ist ein Eingangs-/Ausgangs-Pin, der als Chip Select Pin2 in SPI (SPI_CS2) verwendet wird.
  • Pin16: GPIO4 ist ein Eingangs-/Ausgangs-Pin, der ausschließlich für Eingangs- und Ausgangszwecke verwendet wird.
  • Pin17: VDDPST ist ein Power-Pin. Es ist eine digitale Ein-/Ausgangsstromversorgung, deren Spannungen von 1,8V bis 3,6V reichen. Ähnlich wie Pin11.
  • Pin18: SDIO_DATA_2 ist ein Eingangs-/Ausgangs-Pin, der als GPIO9 bezeichnet wird und zum Anschluss an den Daten-Pin 2 der SD-Karte dient.
  • Pin19: SDIO_DATA_3 ist ein Eingangs-/Ausgangs-Pin, der als GPIO10 bezeichnet wird und zum Anschluss an den Daten-Pin 3 der SD-Karte dient.
  • Pin20: SDIO_CMD ist ein Eingangs-/Ausgangs-Pin mit der Bezeichnung GPIO11 und wird zum Anschluss an den Befehls-Pin der SD-Karte verwendet
  • Pin21: SDIO_CLK ist ein Eingangs-/Ausgangs-Pin mit der Bezeichnung GPIO6 und wird zum Anschluss an den Takt-Pin der SD-Karte verwendet.
  • Pin22: SDIO_DATA_0 ist ein Eingangs-/Ausgangs-Pin mit der Bezeichnung GPIO7 und wird zum Anschluss an den Daten-Pin 0 der SD-Karte verwendet.
  • Pin23: SDIO_DATA_1 ist ein Eingangs-/Ausgangs-Pin mit der Bezeichnung GPIO8 und wird zum Anschluss an den Daten-Pin 1 der SD-Karte verwendet.
  • Pin24: GPIO5 ist ein Eingangs-/Ausgangs-Pin, der ausschließlich für Eingangs- und Ausgangszwecke verwendet wird.
  • Pin25: U0RXD ist ein Eingangs-/Ausgangs-Pin, der als GPIO3 bezeichnet wird und während der Flash-Programmierung als UART RX verwendet wird.
  • Pin26: U0TXD ist ein Eingangs-/Ausgangs-Pin, der als GPIO1 bezeichnet wird und während der Flash-Programmierung als UART TX verwendet wird. Wird auch als SPI Chip Select Pin 1 (SPI_CS1) verwendet.
  • Pin27: XTAL_OUT ist als Eingangs-/Ausgangs-Pin klassifiziert und mit dem Ausgang des Quarzoszillators verbunden.
  • Pin28: XTAL_IN ist als Eingangs-/Ausgangs-Pin klassifiziert und mit dem Eingang des Quarzoszillators verbunden.
  • Pin29: VDDD ist ein Power-Pin, der einen analogen Spannungsbereich von 2,5V bis 3,6V bereitstellt.
  • Pin30: VDDA ist ein Power-Pin, der einen analogen Spannungsbereich von 2,5V bis 3,6V bereitstellt. Ähnlich wie Pin29.
  • Pin31: RES12K ist ein Eingangs-Pin, der mit 12 kΩ-Widerständen in Reihe geschaltet und mit der Masse verbunden ist.
  • Pin32: EXT_RSBT ist ein Eingangs-Pin, der verwendet wird, um den Chip durch Bereitstellung eines externen Reset-Signals, das bei einem niedrigen Spannungspegel aktiv ist, zurückzusetzen.
  • Pin33: GND ist ein Power-Pin, der als Masse für den Chip dient.

Alle GPIO’s können als Eingangs- und Ausgangs-Pin verwendet werden, aber sie haben auch ihre spezifische Funktion.

Schaltplan

ESP8266 Schaltpläne enthalten die folgenden Komponenten:

  • Stromversorgung
  • Einschaltsequenz und Reset
  • Flash
  • Kristalloszillator
  • RF
  • Externer Widerstand
  • UART

Bis jetzt haben wir die Präambel des Esp8266, das Funktionsblockdiagramm, die Anordnung der Pins, die Beschreibung und den Schaltplan behandelt.

Im August 2014 brachte Espressif Systems sein erstes Rohmodul auf den Markt, das von dem Drittanbieter AI-Thinker hergestellt wird und als ESP-01-Modul bezeichnet wird. Seitdem hat Ai-Thinker eine Reihe von Modulen entwickelt, die auf dem ESP8266 basieren. Diese Serie wird als ESP-xx Module bezeichnet und reicht von 01 bis 14.

Pinout verschiedener Typen von ESP8266 Modulen

In diesem Abschnitt des Artikels werden wir über das Pinout verschiedener Versionen des ESP8266 Moduls sprechen, beginnend mit ESP-01 bis ESP-12.

Espressif Systems hat sein erstes offizielles Software Development Kit veröffentlicht, um den Chip direkt zu programmieren, ohne eine Schnittstelle mit einem externen Mikrocontroller zu haben. Seitdem gibt es viele offizielle SDKs, aber Espressif unterhält nur zwei SDKs, von denen eines auf FreeRTOS und das andere auf Callbacks basiert. Es gibt auch eine Vielzahl von Open-Source-SDKs für ESP8266.

Arduino: ist das am häufigsten verwendete SDK aufgrund seiner Popularität. Es ist ein C++ basiertes SDK. ESP6266 ist einfach zu programmieren wie Arduino-Boards. Die Kerndateien sind auf GitHub verfügbar.

NodeMCU: ist ein Lua-basiertes Softwareentwicklungskit.

MicroPython: ist die Verwendung der Python-Sprache für eingebettete Geräte.

Espruino, Mongoose OS, uLisp, Sming, Platform IO, ESP Easy, Smick, ESP Open RTOS sind einige andere Open-Source-SDKs.Die Notwendigkeit dieser Entwicklungsboards ergibt sich daraus, dass die ESP-xx-Module nicht über einen integrierten Spannungsregler, eine USB-zu-UART-Brücke wie CH340G und Silicon Labs CP2102 sowie einen Micro-USB-Anschluss verfügen. Früher mussten wir Spannungsregler und USB-zu-UART-Brücke separat kaufen und sie dann mit ESP-xx-Modulen verkabeln, um sie zu flashen.

Hier werden wir hauptsächlich Entwicklungsboards besprechen, die auf dem ESP-12E-Modul basieren.

ESP8266 12E Modul Pinout

Esp8266 12E Modul hat insgesamt 22 Pins, die umfassen

Anzahl. of Pins Pin Label Description
17 GPIO GPIO Pins reichen von GPIO0 bis GPIO16 und beinhalten SPI, I2C, SDIO, UART Interface Pins.
1 ADC 10 Bit Analog-Digital-Wandler.
1 VCC Versorgungsspannung 3.3V
1 GND Masse-Pin
1 RST Rest Pin
1 Enable Chip Enable Pin

ESP8266 12E Wemos D1 Mini pinout

Wemos D1 Mini Entwicklungsboard hat insgesamt 16 Pins, von denen 12 Pins aktiv sind, verwendet ESP-12 Modul, Onboard-Reset-Taste, 3.3 Spannungsregler, Micro USB, USB zu UART Brücke und einige andere Komponenten.

No. von

Pin

Bezeichnung Beschreibung
1 3.3V 3.3 Volt Pin
1 5.0 Eingang 5V Spannung Pin
1 GND Masse Pin
1 ADC 10 Bit Analog-Digital-Wandler
1 RST Reset Pin
9 D0 bis D8, Eingangs-/Ausgangs-Pins auch für SPI und I2C, Flash verwendet.
2 RX,TX UART Schnittstelle.

ESP8266 01 Modul Pinout

ESP8266 01 Modul ist anders, aber allgemein so verwendet wie die oben genannten Entwicklungsboards. Dieses Board ist nicht Breadboard-freundlich, oft wird ein separates Programmiermodul für die Programmierung verwendet. Es hat insgesamt 8 Pins, von denen 6 aktiv sind.

Nr. von

Pin

Label Beschreibung
1 3.3V Versorgung 3.3 Volt Pin
1 GND Masse Pin
1 RST Reset Pin
1 CH_PD/EN Chip Power und Enable Pin
4 GPIO 0 bis 3 UART Schnittstelle und Input/Output Pins

ESP8266 12E NodeMCU Entwicklungsboard Pinout

NodeMCU Entwicklungsboard hat insgesamt 30 Pins von denen 14 Pins aktiv sind, verwendet ESP-12 Modul, Onboard-Reset und Flash-Taste, 3.3 Spannungsregler, Micro USB, USB zu UART Bridge und einige andere Komponenten.

Nr. von

Pin

Label Beschreibung
3 3.3V 3.3 Volt Pins
1 Vin Eingang 5V Spannung Pin
4 GND Masse Pins
1 ADC 10 Bit Analog-Digital-Wandler
1 RST Reset Pin
1 EN Chip Enable Pin
1 CLK CLK Pin für SPI und SDIO Schnittstelle
1 SD0 Datenpin 0 für SDIO und MISO Pin für SPI Schnittstelle.
1 CMD Command-Pin für SDIO-Schnittstelle und Chip-Select-Pin für SPI-Schnittstelle.
1 SD1 Datenpin 1 für die SDIO-Schnittstelle und MOSI-Pin für die SPI-Schnittstelle.
1 SD2 Datenpin 0 für die SDIO-Schnittstelle und auch als GPIO9 verwendet.
1 SD3 Datenpin3 für SDIO Schnittstelle und wird auch als GPIO10 verwendet.
2 RSV Reservierte Pins.
11 D0 bis D8, RX, TX Eingangs-/Ausgangs-Pins, die auch für UART, SPI, I2C, Flash und Wake-Pin verwendet werden.

ESP8266 Peripheriegeräte

Der ESP8266 hat die folgenden Peripheriegeräte:

  • 17 General Purpose Input Output Pins
  • Serial Peripheral Interface (SPI)
  • Inter-Integrated Circuit (12C)
  • Inter-IC Sound Schnittstellen (12S) mit Direct Memory Access
  • Universal Asynchronous Receiver Transmitter Interface.
  • 10-Bit-Analog-Digital-Wandler

Analogeingang

ESP8266 hat nur einen 10-Bit-Analog-Digital-Wandler, der als ADC0 bezeichnet und als A0 bezeichnet wird. Aber das ist auch einer der größten Nachteile, denn meistens müssen zwei Sensoren angeschlossen werden, so dass wir separate ADC-Module, ICs und Multiplexing-Schaltungen kaufen müssen, um zwei oder mehr Sensoren anzuschließen, aber das ist ein Thema für einen anderen Artikel.

Die analoge Eingangsspannung des ESP-01-Moduls reicht von 0 bis 1V. Entwicklungsplatinen, die auf dem ESP-12E-Modul basieren, haben analoge Eingangsspannungen von 0 bis 3,3 V. Wir müssen also beim Schreiben eines Sketches darauf achten, den A0-Pin zu verwenden.

PWM-Pins

Der ESP8266 erlaubt PWM in allen Eingangs-/Ausgangs-Pins von GPIO0 bis GPIO16. PWM-Signale haben eine Auflösung von 10 Bit.

SPI Pins

Eine serielle Programmierschnittstelle (SPI) hat folgende Pins im ESP8266

I2C Pins

ESP8266 bietet nur eine Software I2C Schnittstelle, d.h. wir können zwei beliebige Pins für I2C verwenden, aber die folgenden Pins werden am häufigsten verwendet.

GPIO5 für die serielle Taktleitung (SCL)

GPIO4 für die serielle Datenleitung (SDA)

Interrupt Pins

Wir können jeden GPIO Pin für Interrupts verwenden, außer GPIO16.

Wake Up

Um ESP8266 aus dem Tiefschlaf aufzuwecken, wird GPIO16 mit dem RST Pin verbunden. Dies ist ein Thema für einen anderen Artikel.

On board LED

Die meisten Entwicklungsboards haben eine oder mehrere LEDs eingebaut. Die auf dem ESP8266-Modul eingebaute LED ist mit GPIO2 verbunden und die auf dem Entwicklungsboard eingebaute LED ist mit GPIO16 verbunden.

Reset- und Flash-Taster

Das Drücken des Reset-Tasters oder das Ziehen des RST-Pins nach unten setzt den ESP8266-Chip zurück. Das Drücken der Flash-Taste oder das Ziehen des GPIO0-Pins setzt den ESP8266-Chip in den Bootloader-Modus.

Welcher Pin des ESP8266 zu verwenden ist

Denken Sie immer daran, dass die GPIO-Beschriftung nicht mit der Beschriftung auf dem Silkscreen übereinstimmt. Zum Beispiel GPIO0 entspricht D3 und D0 entspricht GPIO16. Die GPIOs mit einem grünen Häkchen sind am besten zu verwenden.

verwendet

Label GPIO Input Output Description
A0 ADC0 Analogeingang Nein Für Analogeingang von 0 bis 3.3V und kein Ausgang.
RX GPIO3 Ja Nur RX-Pin High bei Boot.
TX GPIO1 Nur Tx-Pin Ja High beim Booten.
D0 GPIO16 Kein Interrupt Kein I2C, PWM Wird zum Aufwecken des Chips aus dem Tiefschlaf verwendet, High beim Booten.
D1 GPIO5 Ja Ja Wird oft als SCL verwendet
D2 GPIO4 Ja Ja Oft als SDA
D3 GPIO0 Aufgezogen Ja Verbunden mit Flash-Taste
D4 GPIO2 Aufgezogen Ja Angeschlossen an eingebauteeingebauten LED, Hoch bei Boot.
D5 GPIO14 Ja Ja SCLK Pin für SPI Schnittstelle
D6 GPIO12 Ja Ja MISO-Pin für SPI-Schnittstelle
D7 GPIO13 Ja Ja MOSI-Pin für SPI-Schnittstelle
D8 GPIO15 Auf Masse gezogen Ja CS-Pin für SPI-Schnittstelle

ESP8266-Pin High und Low-Spannungssignal beim Booten

Während des Bootens des ESP8266 liefern die folgenden Pins 3.3v-Signal an bestimmten Pins, so dass der Anschluss von Relais, Transistoren oder anderen Peripheriegeräten fehlschlagen kann. Die folgenden Pins geben beim Booten ein 3,3V-Signal aus:

  • GPIO16
  • GPIO3
  • GPIO1
  • GPIO10
  • GPIO9

Alle anderen GPIOs-Pins geben beim Booten nur eine niedrige Spannung aus, außer GPIO4 und GPIO5. Daher sind GPIO4 und GPIO5 die besten Pins, um Relais, Transistoren und andere Peripheriegeräte anzuschließen, um stabile Ergebnisse zu erzielen.

Pins Configuration during Boot

Um den ESP8266 erfolgreich zu booten, müssen wir den angegebenen Pins verbieten, HIGH oder LOW zu werden.

  • GPIO16: Pin ist high bei BOOT
  • GPIO3: Pin ist high bei BOOT
  • GPIO10: Pin ist high bei BOOT
  • GPIO9: Pin ist high bei BOOT
  • GPIO2: Pin ist high bei BOOT, Boot-Fehler wenn LOW gezogen
  • GPIO1: Pin ist high bei BOOT, Boot-Fehler wenn LOW gezogen
  • GPIO0: Boot-Fehler wenn LOW gezogen
  • GPIO15: boot failure if pulled HIGH

Applications of ESP8266

  • Home automation
  • Smart plugs and switches
  • Home appliances (like AC, Drucker)
  • Wireless industrial control
  • Sensor Devices
  • Wearable Gadgets
  • IP Kameras
  • Security ID Tags
  • Wi-Fi location-aware devices
  • Wi-Fi position system

Sie möchten vielleicht auch einen Blick in andere ESP8266 Tutorials werfen: