What's new

Full changelogEngine 1.26.4

I²C Pull-up Sizing

Analog & Interfacing

The allowed pull-up range, set by sink current and rise time, and the value to fit.

Inputs

V
≈ 10 pF per device + 0.5–1 pF per mm of trace
F
100 pF
From the datasheet. UM10204 minimum: 3 mA, or 20 mA in Fast-mode Plus
A
3 mA
V
Leakage
A
10 µA

Results

1 passed
Recommended (E24)
1.8kΩ
Pass

Checked: Rp in 966.7 Ω … 3.541 kΩ (sink ≤ 3 mA; tr ≤ 300 ns) and idle level ≥ VIH 2.31 V, NXP UM10204

Minimum pull-up (sink limit) Rmin
966.7Ω
Maximum pull-up (rise-time) Rmax
3.541kΩ
Resulting rise time tr

limit 300 ns

153ns
All results (2)
Sink current when low 

limit 3 mA

1.611mA
Static power (both lines low)
tr = 0.847·R·Cb

Accuracy

Verified against

3 independent cases. See the working.

This is a design aid. The engineer remains responsible for the design and for checking the standard itself.

Parameter sweep

Vary one input over a range and see the answer and verdict at each step, as a table and a curve.Pro

Worst-case corners

Put a tolerance on each input and get the worst-case band around the answer.Pro

Circuit

The principle

I²C and SMBus are open-drain: devices only pull the line low, and the pull-up charges the bus capacitance to make the rising edge. Too large a pull-up gives a slow edge; too small, and the devices cannot sink its current.

Rise time (30 % → 70 % of V_DD)
tr=RpCbln⁡ ⁣(0.70.3)≈0.8473 RpCbt_r = R_p C_b \ln\!\left(\frac{0.7}{0.3}\right) \approx 0.8473\, R_p C_b
UM10204 measures tr from 0.3·VDD to 0.7·VDD, hence 0.8473 and not the 2.2 of a 10–90 % edge.
Maximum pull-up
Rp,max=tr,max0.8473 CbR_{p,max} = \frac{t_{r,max}}{0.8473\, C_b}
Minimum pull-up (sink capability)
Rp,min=VDD−VOLIOLR_{p,min} = \frac{V_{DD} - V_{OL}}{I_{OL}}
Idle high level with leakage
VH=VDD−IleakRp  ≥  VIH=0.7 VDDV_{H} = V_{DD} - I_{leak} R_p \;\geq\; V_{IH} = 0.7\,V_{DD}
  • RpR_ppull-up resistance, one on SDA and one on SCL
  • CbC_btotal bus capacitance: pins, traces and connectors
  • IOLI_{OL}sink current the weakest device guarantees at VOL
  • VOLV_{OL}low level guaranteed at IOL (0.4 V typical)
  • IleakI_{leak}total leakage of all devices on the line
  • VIHV_{IH}input high threshold
  • trt_rmaximum rise time for the bus mode
More detail

Estimating Cb

About 10 pF per device pin, 0.5–1 pF per mm of trace over a plane, and 50–100 pF per metre of cable. Test points and scope probes add more; a 10:1 probe is about 10 pF.

One pull-up pair per bus. Not one per device: pull-ups on several boards act in parallel and can exceed the sink limit.
Reference: NXP UM10204, I²C-bus specification and user manual, for pull-up sizing; the SMBus specification for the 4 mA sink variant.

Engine version ⁨1.26.4⁩