ESP32 reservierte GPIO’s

Nachdem ich immer wieder darüber stolpere, muss ich mir jetzt mal die ganzen GPIO’s aufschreiben, welche man nicht nutzen kann bei einem ESP32 weil sie bereits der Modulperipherie zugeordnet sind oder beim Booten spezielle Funktionen haben:

ESP32 Allgemein

GPIO 0

Pin wird als Bootstrapping-Pin verwendet und sollte niedrig sein, um in den UART-Download-Modus zu gelangen. Stellen Sie sicher, dass es während des Bootens nicht von einem Peripheriegerät nach unten gezogen wird, sonst startet die Firmware nicht!

GPIO 2

Pin wird als Bootstrapping-Pin verwendet und sollte niedrig sein, um in den UART-Download-Modus zu gelangen. Stellen Sie sicher, dass es während des Bootens nicht von einem Peripheriegerät hochgezogen wird, da Sie sonst keine Firmware auf das Modul flashen können!

GPIO 6-11

Diese Pins sind reserviert für den Flash. Diese können nicht genutzt werden.

GPIO 12

wird als Bootstrapping-Pin verwendet, um die Ausgangsspannung eines internen Reglers auszuwählen, der den Flash-Chip (VDD_SDIO) versorgt. Dieser Pin hat einen internen Pulldown, so dass er, wenn er nicht verbunden ist, beim Zurücksetzen niedrig ist (bei Auswahl des standardmäßigen 3,3V Betriebs). Stellen Sie sicher, dass es während des Bootens nicht von einem Peripheriegerät hochgezogen wird, da das Modul sonst möglicherweiße nicht starten kann.

GPIO 15

kann verwendet werden, um die Debug-Ausgabe auf Serial während des Bootens zu stoppen. Wenn er auf Low gezogen wird, erfolgt während des Bootvorgangs keine Ausgabe am seriellen Port. Dies kann bei batteriebetriebenen Anwendungen hilfreich sein, bei denen Sie den seriellen Anschluss überhaupt nicht verwenden möchten, um den Stromverbrauch zu reduzieren.

GPIO 34-39

können nur als Eingabemodus eingestellt werden und haben keine Software-Pullup- oder Pulldown-Funktionen.

GPIO 37-38

bei den meisten Modulen nicht verfügbar

ESP32 Pico D4

GPIO 16-17

werden für internen Flash verwendet (Reader-Eingang)

ESP32 Wrover

GPIO 16-17

werden für den PSRAM verwendet