Warum es „den UART-Pin" nicht gibt
Bei vielen Mikrocontrollern ist die Pinbelegung im Silizium verdrahtet: Der UART sendet auf Pin 9, und wenn dir das nicht passt, hast du Pech. Der ESP32 macht das anders — und das ist eine seiner nützlichsten Eigenschaften.
Zwischen den Peripherieeinheiten und den Pins sitzt eine Kreuzschiene, die GPIO-Matrix. Sie kann fast jedes Peripheriesignal auf fast jeden Pin legen, und zwar erst zur Laufzeit, durch das Schreiben eines Registers.
Links laufen die Peripherieeinheiten — UART, SPI, I2C, LED-PWM und so weiter. Ihre Signale gehen alle in die Matrix. Von dort führt für jedes Signal ein Weg zu dem Pin, den du im Register eingetragen hast.
Daraus folgt eine andere Denkweise:
Die Frage lautet nicht „welcher Pin ist der UART-Pin", sondern „welcher Pin ist bei mir noch frei".
Du suchst dir einen freien Pin und legst den UART dorthin. Ob das GPIO4, GPIO17 oder GPIO21 ist, entscheidest du beim Aufbau der Schaltung — nicht der Chiphersteller.
Was das für die Praxis heisst
Du kannst die Verdrahtung nach dem Layout richten, nicht umgekehrt. Wenn eine Leiterbahn kürzer wird, weil der Sensor an GPIO18 statt an GPIO17 hängt, dann nimm GPIO18.
Ein Umbau kostet keine Hardware. Wenn sich herausstellt, dass ein Pin doch anders gebraucht wird, verschiebst du die Funktion in einer Zeile Code.
Anleitungen mit festen Pinnummern sind Vorschläge. Wenn irgendwo steht „schliesse das Display an GPIO23 an", ist das die Belegung, die der Autor gewählt hat, keine Vorschrift des Chips.
Zwei Wege zum Pin
Das Datenblatt unterscheidet zwei Arten, wie ein Signal an einen Pin kommt:
| Weg | was er bedeutet | Datenblatt nennt ihn |
|---|---|---|
| IO MUX | direkte, feste Verbindung vom Peripheriesignal zum Pin | Priorität 1 (P1) |
| GPIO-Matrix | über die Kreuzschiene, frei wählbar | Priorität 2 bis 4 |
Der direkte Weg über das IO MUX ist der schnellere: Das Signal läuft nicht durch die Kreuzschiene und verliert dadurch keine Zeit. Für sehr schnelle Schnittstellen — etwa SPI mit hohem Takt — kann das den Unterschied ausmachen. Für einen UART bei 115200 Baud oder einen I2C-Bus spielt es keine Rolle.
Die Kurzfassung: Nimm den bequemsten freien Pin. Wenn es später zu langsam ist, schau nach, ob es für diese Schnittstelle einen IO-MUX-Pin gibt.
„Fast" jeder Pin
Zweimal stand oben „fast". Das war kein Füllwort.
Es gibt Funktionen, welche die Matrix nicht verschieben kann, und Pins, die sie nicht anbieten darf. Genau dort entstehen die Fehler, die einen Abend kosten — und genau darum geht es in der nächsten Lektion.
Quellen
- ESP32-S3 Series Datasheet v2.2, Abschnitt 2.3.5 „Peripheral Pin Assignment" — Prioritätsstufen P1 bis P4, IO MUX gegen GPIO-Matrix
- ESP32-C6 Series Datasheet v1.5, Abschnitt 2.3.5 „Peripheral Pin Assignment" — dieselbe Einteilung
- ESP32 Series Datasheet v5.2, Tabelle 4-6 „Peripheral Pin Configurations"
Die Einzelheiten der Kreuzschiene stehen im jeweiligen Technical Reference Manual, Kapitel „IO MUX and GPIO Matrix".
Stand geprüft am 3. August 2026.