Warum#
Ein Eingang, der mit nichts verbunden ist, floatet: Er fängt Störungen auf und liest zufällige Werte. Ein Pull-up-Widerstand (nach 3V3) sorgt dafür, dass er 1 liest, bis ihn etwas auf Low zieht; ein Pull-down (nach GND) sorgt dafür, dass er 0 liest, bis ihn etwas auf High treibt. Der Widerstand ist absichtlich schwach, damit ein Taster oder ein Ausgang ihn leicht übersteuern kann.
Wo du einen brauchst#
| Signal | Widerstand |
|---|---|
| Taster nach GND | 10 kΩ Pull-up (oder der interne des Chips) |
| I²C SDA und SCL | 4.7 kΩ Pull-ups nach 3V3, einmal pro Bus |
| ESP32 EN / Strapping-Pins für den Boot | 10 kΩ Pull-ups, wie im Datenblatt angegeben |
| MOSFET-Gate an einem GPIO | 10–100 kΩ Pull-down, damit die Last während des Resets aus bleibt |
| USB-C CC (Device) | 5.1 kΩ Pull-downs, siehe USB-C |
Den Wert wählen#
- Zu niedrig verschwendet Strom, solange die Leitung in die andere Richtung gezogen wird (3.3 V / 1 kΩ = 3.3 mA), und kann den Treiber überlasten.
- Zu hoch macht die Flanken langsam und die Leitung störanfällig. I²C mit 400 kHz braucht auf einem typischen Bus ≤ 4.7 kΩ; 10 kΩ reichen für Taster.
- Interne Pull-ups (30–100 kΩ) reichen für Taster an kurzen Leitungen, sind aber zu schwach für I²C über Kabel.
Stolperfallen#
- Zwei I²C-Module mit jeweils eigenen Pull-ups sind in Ordnung; fünf davon parallel (≈1 kΩ) sind zu stark. Entferne die überzähligen.
- Ein Pull-up nach 5 V an einem Pin eines 3.3 V-Chips speist 5 V in ihn ein.