GPIO-Pins eines ESP32 DevKitC

ESP32 Pin-Belegung

Die Tabelle unten zeigt, welche GPIO-Pins auf welchen ESP32-Boards vorhanden sind, und welche Funktionen sie wahrnehmen können. Einige Pins können nur als Eingabe (lesend) genutzt werden, manche stehen bei Nutzung der WiFi-Funktionalität nicht für Ein- oder Ausgaben zur Verfügung. In den Diagrammen sind die jeweiligen Pin-Gruppen entsprechend markiert.

PDF-Download: Pinbelegung des ESP32 (38 Pins, 30 Pins und ESP32 Pico-Kit)

Die entsprechenden Informationen zum ESP8266 (NodeMCU und D1 mini) gibt es hier: ESP8266 Pin-Belegung.

Pin-Namen: je nach Hersteller der Boards sind die GPIO-Pins unterschiedlich benannt: nur mit einer Zahl beim Pico Kit; auf den DevKitC-Boards mit Pxx (P für Pin xx), Gxx (GPIO) oder auch Dxx (Digital[1]Bei den Arduinos wird zwischen Analog-Input-Pins – A0-A5 oder A0-A7 – und Digital-Pins – D2-D13 – unterschieden.) – siehe unten die Bilder der verschiedenen Boards.
<FLASH>: Damit sind in der Tabelle die GPIO-Pins gekennzeichnet, die zur Ansteuerung des internen SPI-Flash-Speichers verwendet werden und nicht für eigene Projekte zur Verfügung stehen. Beim DevKitC: Pins 6-11 (CLK, SD0, SD1, SD2, SD3, CMD; beim Pico Kit Pins 6-8, 11, 16 und 17 (CLK, D3, D1, D2, CS und D0). Beim Pico Kit sind für diese Anschlüsse zwar Lötaugen (Pads) vorhanden, aber nicht mit Pins bestückt; bei den DevKitC-Boards mit 30 Pins sind sie gar nicht nach außen geführt.
GPIO 12: darf während des Bootens nicht durch ein verbundenes Gerät auf „HIGH” gesetzt sein.
EN: Eine kurze Verbindung mit Masse, z.B. über einen Taster, löst einen Neustart (Reset) des ESP32 aus. [2]Siehe „ESP32 Pinout Reference” (Absatz „Enable (EN)”) bei Random Nerd Tutorials und den Make-Artikel „Großer Bruder: Espressif ESP32” (ziemlich weit unten im Absatz „’Hello … Continue reading Das enstpricht der Funktion des Enable-Tasters (meist mit „EN” beschriftet, auch mit „RST”) links vom USB-Anschluss der DevKitC-Boards.
V5, 5V, VIN: Kann zur Spannungsversorgung des ESP32 als 5 Volt-Eingang verwendet werden, wenn das Board nicht per USB-Anschluss versorgt wird. Wird es per USB versorgt, darf an diesem Pin keine Eingangsspannung anliegen – dann stehen hier die 5 Volt des USB-Anschlusses bereit, um angeschlossene Geräte, die das benötigen, entsprechend zu versorgen. Meist können Sensoren etc. aber mit der Standardspannung des ESP32 von 3,3 Volt betrieben werden. Aufschluss gibt das jeweilige Datenblatt.

Die wichtigsten Bezeichnungen sind:

  • ADC: Analog-Digital-Konverter mit 12 Bit Auflösung (0…4095); ADC1: 8 Kanäle (channels; ADC1_CH0 – ADC1_CH7), ADC2: 10 Kanäle (ADC2_CH0 – ADC2_CH9; diese stehen im WiFi-Betrieb nicht zur Verfügung)
  • DAC: Digital-Analog-Konverter
  • I2C: Kommunikation per I2C-Bus über die Leitungen SCL (Takt; serial clock) und SDA (Daten; serial data); da sich die angeschlossenen Geräte (wie Sensoren) je nach Typ über eine eigene Adresse identifizieren, kann man über einen Bus mehrere Geräte ansprechen; die ESP32-DevKits haben (anders als das ESP32 Pico Kit, ESP8266 und Arduino) zwei getrennte Busse, sodass man zwei Sensoren mit gleicher Adresse an einem Controller nutzen kann (Namen: I2C_SDA und I2C_SCL, ggf. I2C_SDA_2 und I2C_SCL_2)
  • RTC: mit diesen Pins kann der ESP32 aus dem Tiefschlaf aufgeweckt werden – der Präfix RTC_ bezeichnet alles, was mit der Echtzeituhr (engl. real time clock) und den Stromsparmodi des ESP32 zu tun hat
  • SPI (HSPI, VSPI): zur Verbindung mit Modulen, die das SPI (engl.: Serial Peripheral Interface) zur Kommunikation nutzen, z.B. Displays oder SD-Kartenleser
  • TOUCH: Touch-Sensoren

Eine ausführlichere Erläuterung der Funktionen gibt der Artikel »ESP32 Pinout Reference: Which GPIO pins should you use?« bei Random Nerd Tutorials.

NameGPIODevKitC
(30 Pins)
DevKitC
(38 Pins)
Pico KitFunktion
(P)00xxADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1, EMAC_TX_CLK
TX0, TX1xxxGPIO1, U0TXD, CLK_OUT3, EMAC_RXD2 (mit der USB-Bridge verbunden)
(P)22xxxADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP, HS2_DATA0, SD_DATA0
RX0, RX3xxxGPIO3, U0RXD, CLK_OUT2 (mit der USB-Bridge verbunden)
(P)44xxxADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD, HS2_DATA1, SD_DATA1, EMAC_TX_ER
(P)55xxxGPIO5, VSPICS0, HS1_DATA6, EMAC_RX_CLK
CLK6x(x)<FLASH> Flash-Takt; GPIO6, SD_CLK, SPICLK, HS1_CLK, U1CTS
SD0,
D3 (Pico)
7x(x)<FLASH> GPIO7, SD_DATA0, SPIQ, HS1_DATA0, U2RTS
D1, SD18x(x)<FLASH> GPIO8, SD_DATA1, SPID, HS1_DATA1, U2CTS
SD29x<FLASH>
99xGPIO9, SD_DATA2, SPIHD, HS1_DATA2, U1RXD
SD310x<FLASH>
1010xGPIO10, SD_DATA3, SPIWP, HS1_DATA3, U1TXD
CMD,
D2 (Pico)
11x(x)<FLASH> GPIO11, SD_CMD, SPICS0, HS1_CMD, U1RTS
(P)1212xxxADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ, HS2_DATA2, SD_DATA2, EMAC_TXD3
(P)1313xxxADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID, HS2_DATA3, SD_DATA3, EMAC_RX_ER
(P)1414xxxADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK, HS2_CLK, SD_CLK, EMAC_TXD2
(P)1515xxxADC2_CH3, TOUCH3, RTC_GPIO13, MTDO, HSPICS0, HS2_CMD, SD_CMD, EMAC_RXD3
(P)16, RX216xxGPIO16, U2RXD, I2C_SCL_2
CS16(x)<FLASH> GPIO16, HS1_DATA4, U2RXD, EMAC_CLK_OUT
(P)17, TX217xxGPIO17, U2TXD, I2C_SDA_2
D017(x)<FLASH> GPIO17, HS1_DATA5, U2TXD, EMAC_CLK_OUT_180
(P)1818xxxGPIO18, VSPICLK, HS1_DATA7
(P)1919xxxGPIO19, VSPIQ, U0CTS, EMAC_TXD
(P)2121xxxGPIO21, VSPIHD, EMAC_TX_EN, I2C_SDA
(P)2222xxxGPIO22, VSPIWP, U0RTS, EMAC_TXD1, I2C_SCL
(P)2323xxxGPIO23, VSPID, HS1_STROBE
(P)2525xxxGPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0
(P)2626xxxGPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1
(P)2727xxxGPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV
(P)3232xxx32K_XP, ADC1_CH4, TOUCH9, RTC_GPIO9
(P)3333xxx32K_XP, ADC1_CH4, TOUCH9, RTC_GPIO9
(P)3434xxxADC1_CH6, RTC_GPIO4
(P)3535xxxADC1_CH7, RTC_GPIO5
SVP, VP36xxxSENSOR_VP, GPIO36, ADC1_CH0, RTC_GPIO0
3737xGPIO37, ADC1_CH1, RTC_GPIO1
3838xGPIO38, ADC1_CH2, RTC_GPIO2
SVN, VN39xxxSENSOR_VN, GPIO39, ADC1_CH3, RTC_GPIO3
ENxxxwie ENABLE-Taster: Neustart (Reset) des ESP32
GND2 x3 x2 xMasse
3V31 x1 x2 x3,3 V zur Spannungsversorgung angeschlossener Komponenten
V5, 5V, VIN1 x1 x1 xals Eingang: 5 V Versorgungsspannung; 5V-Ausgang bei Versorgung per USB
NameGPIODevKitC
(30 Pins)
DevKitC
(38 Pins)
Pico KitFunktion

Letzte Änderung: 10.06.2021

Fußnoten

Fußnoten
1 Bei den Arduinos wird zwischen Analog-Input-Pins – A0-A5 oder A0-A7 – und Digital-Pins – D2-D13 – unterschieden.
2 Siehe „ESP32 Pinout Reference” (Absatz „Enable (EN)”) bei Random Nerd Tutorials und den Make-Artikel „Großer Bruder: Espressif ESP32” (ziemlich weit unten im Absatz „’Hello World’ und System-Info”)

Ein Kommentar

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.