ElectroCalc

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

pF

Results

R max967 Ω
R min3.54 kΩ
No valid range — reduce bus capacitance or lower speed
VccRpSDAMCUSensorCbusGND

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 mA

Minimum 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