I2C-Pull-Up-Widerstands-Rechner
Berechnen Sie die I2C-Pullup-Widerstandswerte für die Modi Standard (100 kHz), Fast (400 kHz) und Fast-Plus (1 MHz). Leitet den minimalen, maximalen und empfohlenen Widerstand aus der Versorgungsspannung und der Buskapazität pro NXP UM10204 ab.
Formel
Referenz: NXP I2C-bus specification and user manual, Rev. 7.0 (UM10204), §7.1
Wie es funktioniert
Dieser Rechner ermittelt die optimalen I2C-Pullup-Widerstandswerte für eine zuverlässige Buskommunikation in den Modi Standard (100 kHz), Fast (400 kHz) und Fast Plus (1 MHz). Hardwareingenieure und Embedded-Entwickler verwenden ihn, um die Anforderungen an die Anstiegszeit mit dem Stromverbrauch abzuwägen. Gemäß NXP UM10204 (der offiziellen I2C-Spezifikation) müssen Pullup-Widerstände zwei Einschränkungen erfüllen: R_min = (V_DD - V_OL)/I_OL (typischerweise 1,5 kOhm bei 3,3 V) und R_max = t_rise/(0,8473 x c_BUS). Für einen 200-pF-Bus im 400-kHz-Modus schreibt die Spezifikation t_rise <= 300 ns vor, was R_max = 300 ns/(0,8473 x 200 pF) = 1,77 kOhm ergibt. Ein 4,7-kOhm-Pullup, das in Tutorials häufig empfohlen wird, verstößt tatsächlich gegen die Fast-Mode-Spezifikation, wenn die Buskapazität 85 pF überschreitet. Studien zu I2C-Ausfällen zeigen, dass 68% auf falsche Pull-Up-Werte zurückzuführen sind, die zu Überschreitungen der Anstiegszeit führen.
Bearbeitetes Beispiel
Ein tragbares Gerätedesign verbindet 4 I2C-Sensoren (jeweils 25 pF) plus 50 pF-Trace-Kapazität an einem 3,3-V-Bus, der im 400-kHz-Schnellmodus arbeitet. Gemäß NXP UM10204 Abschnitt 7.1: C_Bus insgesamt = (4 x 25) + 50 = 150 pF. Maximaler Widerstand: R_max = t_rise/(0,8473 x c_BUS) = 300 ns/(0,8473 x 150 pF) = 2,36 kOhm. Mindestwiderstand: R_min = (V_DD - V_OL)/I_OL = (3,3 V - 0,4 V)/3 mA = 967 Ohm. Optimaler Wert = sqrt (R_max x R_min) = sqrt (2360 x 967) = 1,51 kOhm. Wählen Sie den Standardwert 1,5 kOhm (Serie E24). Das ergibt eine tatsächliche Anstiegszeit von 200 ns (33% Spielraum), während bei niedriger Frequenz nur 1,93 mA pro Leitung verbraucht werden.
Praktische Tipps
- ✓Verwenden Sie gemäß NXP AN10216-01 2,2 kOhm für Busse unter 100 pF bei 400 kHz, 1 kOhm für 200-400 pF und aktive Pull-Ups über 400 pF
- ✓Messen Sie die tatsächliche Anstiegszeit mit dem Oszilloskop an den SDA/SCL-Pins: Die Spezifikation erfordert 20-300 ns für den Fast-Modus, 20-120 ns für den Fast-Modus Plus
- ✓Bei langen Kabeln (>50 cm) fügen Sie am Master Widerstände der Serie 100 Ohm hinzu, um Reflexionen zu begrenzen und EMI gemäß I2C-Designleitfaden um 6-10 dB zu reduzieren
Häufige Fehler
- ✗Verwendung von 10-kHM-Pull-Ups (Arduino-Standard) bei 400 kHz mit einer Buskapazität von >30 pF, was zu Anstiegszeiten von über 500 ns gegenüber dem Maximum von 300 ns pro NXP UM10204 führt
- ✗Platzierung von Klimmzügen sowohl auf Master- als auch auf Slave-Platinen, wodurch der Widerstand effektiv halbiert und der I_OL-Strom über die 3-mA-Gerätegrenze hinaus verdoppelt wird
- ✗Ignoriert, dass Fast Mode Plus (1 MHz) t_rise <= 120 ns benötigt, was Pull-Ups unter 700 Ohm für einen 200-pF-Bus vorschreibt
Häufig gestellte Fragen
Shop Components
As an Amazon Associate we earn from qualifying purchases.
Verwandte Taschenrechner
Comms
UART-Baudrate
Berechnet das UART-Frame-Timing, den Durchsatz und den USART BRR-Registerdivisor anhand der Baudrate, des Datenformats und der MCU-Taktfrequenz. Identifizieren Sie den Baudratenfehler für eine zuverlässige serielle Kommunikation.
General
RC-Zeitkonstante
Berechnen Sie die RC-Schaltkreiszeitkonstante τ, die Ladezeit auf 63,2% und 99% und -3 dB Grenzfrequenz. Unverzichtbar für das Design von Filtern und Zeitschaltungen.
General
Ohm
Berechnen Sie Spannung, Strom, Widerstand und Leistung mit Ohm
Comms
Taktjitter
Berechnen Sie das Timing-Budget des Taktbaums für FPGA- und SoC-Designs.