The Pull-Up Window: Sink Current, RC Rise Time, and the Default Resistor
Ada re-derives the chapter’s pull-up window from the sink-current floor and the rise-time ceiling
ADA · CALCULATION AUDIT
The Pull-Up Window: Sink Current, RC Rise Time, and the Default Resistor
I2C pull-ups are one electrical trade-off: the resistor must be large enough that devices can pull the line low, and small enough that bus capacitance charges before the next clock sample.
A 3.3 V I2C bus links a 3-device ESP32, BME280, and SSD1306 lineup over a 15 cm trace, and the chapter must pick one pull-up resistor that satisfies two opposing limits: a 3 mA sink-current floor at 0.4 V, and a rise-time ceiling for 400 kHz Fast mode. Its answer is the standard 4.7 kohm resistor, said to sit comfortably between a 967 Ω floor and a 6.68 kohm ceiling. This audit asks the question that window invites: do the sink-current floor and the Fast-mode rise-time ceiling really place 4.7 kohm inside a safe range for this bus?
Companion to the chapter I2C Protocol — every number here comes from that chapter.
Check the low-level current limit
1. Check the low-level current limit. The chapter uses a 3.3 V bus, a 0.4 V valid-low limit, and a 3 mA sink-current limit. The smallest safe pull-up is therefore:
Rebuild the example capacitance
2. Rebuild the example capacitance. The listed example bus is an ESP32, a BME280, an SSD1306, and a 15 cm trace at 2 pF/cm:
Apply the Fast-mode rise-time budget
3. Apply the Fast-mode rise-time budget. For 400 kHz I2C, the chapter's maximum rise time is 300 ns:
| Pull-up choice | Arithmetic shown | Audit result |
| 1 kohm | (3.3 - 0.4) / 1000 = 0.0029 A; 0.8473 x 1000 x 53 pF = 44.9 ns | Fast enough, but close to the 3 mA sink-current limit. |
| 2.2 kohm | (3.3 - 0.4) / 2200 = 1.32 mA; 0.8473 x 2200 x 53 pF = 98.8 ns | Safely inside the current and rise-time window. |
| 4.7 kohm | (3.3 - 0.4) / 4700 = 0.617 mA; 0.8473 x 4700 x 53 pF = 210.9 ns | Inside the 0.967-6.68 kohm window, which supports the chapter's default. |
| 10 kohm | 0.8473 x 10000 x 53 pF = 449 ns | Too slow for the 300 ns Fast-mode limit, but still below the 1000 ns Standard-mode limit. |
What the calculation buys you: the 4.7 kohm default is not magic; it passes because this bus is short and about 53 pF. If capacitance rises toward 200 pF, the same resistor gives 0.8473 x 4700 x 200 pF = 796 ns, so 400 kHz becomes suspect even though 100 kHz may still work.
Every number above is taken from the chapter’s own pull-up example and re-derived step by step.