Electronic – Pull-up resistor value I2C; higher than 400 pf capacitance

i2cpullupresistors

I'm using 100 kHz I2C for communication with 12 slaves. I found that MAX capacitance is about 400 PF. when I calculate the pull up resistor value, it looks like i can go mucher higher in capacitance. Is this correct?

Using 5V, and VOL = 0.4V for IOL = 3mA

Rmin=5V−0.4V /3mA = 1533 ohm
This means I can go as low as 1533 ohm.

If C bus is 650pf

Rmax=1000ns/(Cbus*0.8473) = 1000ns/(650PF *0.8473) = 1800 ohm.

So If I choose a pull up resistor about 1.8K, It will satisfy BOTH Rmin and Rmax equitation. My Bus can handle up to 650 PF capacitance.

Is this correct or do I miss something? Why goes official specs for 100kHz maximum till 400 pf?

Thanks!!
All Equitations comes from official I2C specs
http://www.ti.com/lit/an/slva689/slva689.pdf

https://www.nxp.com/docs/en/user-guide/UM10204.pdf P55

(PS: The I2C devices I use can also handle up to 20mA IOL for VOL = 0.4V. This means that Rmin can be way lower; Rmin=5V−0.4V /20mA = 230 ohm. My bus can handle much more capacitance)

Best Answer

Typically the pull up resistor for your bus is chosen depending on the bus capacitance. So higher the bus capacitance, you'll have to use a lower pull-up resistor. The criterion to be satisfied is that at the switching frequency, your pad should be able to charge to 90% of the rail voltage (which is a spec in i2c). The resistor pull-ups generally mentioned, correspond to different modes of operation of i2c.(like fast mode, fast mode plus, high speed mode). FM+ mode uses 1MHz signal and hence the resistor pull-up is calculated such that the bus is charged to rail voltage within 0.5us.

Now in your case, if you have a dc Iol requirement of 3mA @ Vol=0.4V then, it just means that you're supposed to be able to sink 3mA of current through the open drain transistor which you have. You may not need to worry about the drop across the pull-up resistor.

Also, I didn't get your Rmax calculation part, is it an equation mentioned in the i2c data sheet?