This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
I was going through SLVA689 for understanding how to calculate I2C pull up values.
I can see an example in page 4 for pull up resistor calculation for fast mode.In this example, I can see that bus capacitance is taken as 200pF.
But according to table 1, for fast mode bus capacitance is 400pf. May I know why 200pF is taken in the application note.
Please clarify.
Regards
Hari
Hello Hari,
If you want to operate your I2C bus at 2MHz then you will need to use the TCA9406 which have rise time accelerators. That part is tested with a 15pF and qualified at that capacitive load. If you have more than 15pF you might not be able to achieve the full speed of 2MHz. What mode of operation are you using? Are you using "High Speed" mode? These modes of operation are outlined in the I2C standard UM10204. The max rise times 10 to 100 pF is 40nS, per the I2C standard for "High Speed" mode of operation.
Mode people don't use faster than "Fast Mode Plus" which is 1 Mhz. Do you need the that fast a data rate? We have a good training video that might be useful to you if you are just getting started with I2C.
https://training.ti.com/i2c-technical-deep-dive-japan-2018
Let me know if you have more questions.
-Francis Houde
Hi Francis,
I am getting some strange values when I am calculating for High speed and fast mode plus
Please find my attached calculator I created in excel. Please check the commentI2C Calculator.xlsx box in the attached document.
Regarding
hari
Hello Hari, the Calculations for Rp(max) for fast mode are correct (~1.4k ohms) for 100 pF of capacitance, and Rp(min) is a bit off because you are using the Vol(max) as 30% of Vcc, which is not correct. VIL is 30% of Vcc. You need to use 0.4V for Vol(max) as stated in the standard. Your equation was incorrect. The diagram I gave you is correct, but you implemented incorrect. If you correct the spreedsheet, which I did, that then you get 145 ohms for Rp(min). These numbers are correct.
Here is the spreadsheet. Let me know if you have more questions.
Hello Hari,
Sorry for the delay.
Are you trying using the High Speed mode outlined in the standard? You will have to check to see if your hardware (micro controller) supports this mode. It means the pull down fet has to be strong enough (low enough FET resistance) to generate a low with that strong a pullup resistors. Can you send me information about the micro you are using to generate the I2C commands and can you send me waveforms. If your pull down fet is not low enough in resistance when on then it will not be able to generate a low enough VOL and it might not be below the slave's VIL.
I am guessing why it works with the higher pull up resistors. Waveforms would be helpful in this case. Can you send waveforms showing both sides of the Buffer and for SCL and SDA.
Why are you running at 2MHz, it is kind of a unusual data rage. I would recommend using Fast Mode Plus at 1MHz unless you need more data throughput.
-Francis Houde