I2C Pull-up Resistor Calculator
Calculate the valid pull-up resistor range for I2C buses based on supply voltage, bus speed, and capacitance.
Bus Parameters
Results
I2C pull-up: Rp connects SDA/SCL to Vcc
Why I2C Needs Pull-up Resistors
I2C is an open-drain bus — devices can only pull the line low. Pull-up resistors are required to bring the line back high when no device is driving it. Without them, the bus has no defined high state.
The maximum pull-up resistance is set by the VOL specification: the resistor must supply enough current (at least 3 mA sink) to meet the low-level output voltage requirement of 0.4 V.
The minimum pull-up resistance is set by the fall time (tf) specification. The RC time constant formed by the pull-up and bus capacitance must allow the signal to fall fast enough. Faster bus speeds demand lower resistance.
Maximum Resistance
Rmax = (Vcc − 0.4 V) / 3 mAMinimum Resistance
Rmin = tf / (0.8473 × Cbus)Key Points
- Faster speeds (Fast, Fast+) need lower pull-up values
- Higher bus capacitance also requires lower pull-up values
- Too high a resistor: signal rise too slow, communication errors
- Too low a resistor: excessive current, power waste, devices may not pull low
- Maximum bus capacitance per I2C spec: 400 pF
- Use the geometric mean of Rmin and Rmax as a good starting point
Common Applications
- Microcontroller to sensor communication
- EEPROM and RTC chips
- OLED and LCD display drivers
- IMU and environmental sensors