I2C Pull up resistor calculator

Khalil Khoury
FounderAbout this tool#
You can use this tool to calculate the minimum and maximum allowed values of the pull up resistors required for your I2C bus, based on the desired operation mode (source). It is based on the official I2C bus specifications and is taking under consideration the constraints set for each mode. For calculating the min and max values of the resistors, we are using the following formulas:
Min Rp#
Rpmin = (VDD – VOLmax) / IOL
where:
- VDD: Power supply voltage
- VOLmax: Maximum LOW-level output voltage
- IOL: LOW-level output current
Max Rp#
Rpmax = tr / 0.8473 x Cb
where:
- tr: Maximum rise time of signal ( SDA / SCL / SDAH / SCLH)
- Cb: Maximum capacitive load for bus line
I2C operation modes#
The following operation modes are defined by the specification:
- Standard mode - max bit rate 100 kbit/s
- Fast mode - max bit rate 400 kbit/s
- Fast mode Plus - max bit rate 1 Mbit/s
- High speed mode - max bit rate 3.4 Mbit/s (depending on Cb)
- Ultra Fast mode - max bit rate 5 Mbit/s (unidirectional)
Ultra Fast mode devices offer push-pull drivers, eliminating the pull-up resistors.
Electrical Specifications#
The calculator uses the following electrical specifications for each I2C mode:
| Parameter | Standard Mode | Fast Mode | Fast Mode Plus | HS Mode Cb<=100pF | HS Mode Cb>100pF |
|---|---|---|---|---|---|
| Min VDD | 2V | Cb<400: None Cb=400: 3V | None | None | None |
| Max Fsclk | 100 KHz | 400Khz | 1MHz | 3.4MHz | 1.7MHz |
| Max VOL | 0.4 V | VDD>2V: 0.4V VDD<=2V: 0.2xVDD | VDD>2V: 0.4V VDD<=2V: 0.2xVDD | VDD>2V: 0.4V VDD<=2V: 0.2xVDD | VDD>2V: 0.4V VDD<=2V: 0.2xVDD |
| IOL | 3mA | Cb<400: 3mA Cb=400: 6mA | 20mA | 3mA | 3mA |
| Max tr | 1000ns | 300ns | 120ns | 80ns | 160ns |
| Max Cb | 400pF | 400pF | 550pF | 100pF | 400pF |
Resources#
- I2C bus specification and user manual – NPX
- I2C bus pull up resistor calculation – Texas Instruments
- I2C – Wikipedia