Der Chip muss etwas wissen, bevor er etwas lesen kann
Beim Einschalten steht der Chip vor einem Problem. Er mĂŒsste wissen, ob er sein Programm aus dem Flash starten oder auf ein neues Programm warten soll â aber diese Einstellung kann nicht im Flash stehen, denn den liest er ja erst danach.
Die Lösung ist so einfach wie folgenreich: Der Chip schaut sich beim Reset den Pegel an ein paar bestimmten Pins an. Diese Pins heissen Strapping-Pins.
Das Verfahren kostet nichts und braucht kein zusĂ€tzliches Bauteil. Es hat nur eine Nebenwirkung: Diese Pins sind ein paar Millisekunden lang EingĂ€nge mit Bedeutung â und was in dieser Zeit an ihnen hĂ€ngt, entscheidet mit.
Der Ablauf in drei Abschnitten
Vorher. Der Reset-Pin CHIP_PU liegt auf Low, der Chip ist aus. An den Strapping-Pins liegt schon irgendein Pegel an â der interne schwache Pull-Widerstand zieht sie in ihre Vorgabestellung, sofern nichts anderes daran hĂ€ngt.
Das Abtastfenster. CHIP_PU geht auf High. Jetzt liest der Chip die Strapping-Pins. Das Datenblatt des ESP32 nennt dafĂŒr eine Haltezeit tH von mindestens 1 ms: So lange muss der Pegel stabil anliegen, nachdem CHIP_PU high ist.
Danach. Ein Latch hÀlt den gelesenen Wert fest, bis der Chip abgeschaltet wird. Die Pins selbst sind ab jetzt gewöhnliche GPIO und können tun, was dein Programm will.
Der Wert im Latch lĂ€sst sich auf keinem anderen Weg mehr Ă€ndern. Wer nach dem Start den Pegel umschaltet, Ă€ndert am Boot-Verhalten nichts mehr â bis zum nĂ€chsten Reset.
Warum ein Strapping-Pin beim Start âzuckt"
Wenn an einem Strapping-Pin eine Leuchtdiode hĂ€ngt, siehst du sie beim Einschalten kurz aufblitzen â auch wenn dein Programm sie nie einschaltet.
Das ist kein Fehler. In den ersten Millisekunden liegt der Pin auf seinem Vorgabepegel, den der interne Pull-Widerstand erzeugt. Erst danach ĂŒbernimmt dein Programm.
Beim klassischen ESP32 ist die eingebaute Leuchtdiode vieler Boards genau deshalb an GPIO2 â einem Strapping-Pin. Das Blinken beim Start gehört dazu.
Woher der Vorgabepegel kommt
Jeder Strapping-Pin hat im Chip einen schwachen Pull-Widerstand, der ihn in eine Vorgabestellung zieht. âSchwach" heisst hier: hochohmig genug, dass eine Ă€ussere Beschaltung ihn mĂŒhelos ĂŒberstimmt. Beim ESP32 liegen die internen Pull-WiderstĂ€nde typisch bei 45 kΩ.
Das ist genau der Punkt, an dem die Sache kippt. Ein Pull-Widerstand von 10 kΩ in deiner Schaltung, eine Leuchtdiode mit Vorwiderstand, der Eingang eines anderen Bausteins â alles davon zieht krĂ€ftiger als 45 kΩ und bestimmt damit, was der Chip beim Start liest.
Die Vorgabe gilt also nur, solange am Pin nichts oder nur etwas sehr Hochohmiges hĂ€ngt. Sobald du etwas anschliesst, ĂŒbernimmst du die Verantwortung fĂŒr den Pegel im Abtastfenster.
Welche Pins das bei welchem Chip sind und was sie jeweils entscheiden, steht in der nÀchsten Lektion.
Quellen
- ESP32 Series Datasheet v5.2, Abschnitt 3 âBoot Configurations" â Vorgabepegel durch interne schwache Pull-WiderstĂ€nde; Latches, die beim Reset abtasten und bis zum Abschalten halten; Tabelle 3-2 mit
tSU= 0 ms undtH= 1 ms - ESP32 Series Datasheet v5.2, Tabelle 5-3 âDC Characteristics" â interner Pull-up und Pull-down typisch 45 kΩ
- ESP32-S3 Series Datasheet v2.2 und ESP32-C6 Series Datasheet v1.5, jeweils Abschnitt 3 â gleiches Verfahren
Stand geprĂŒft am 3. August 2026.