Electronic – What kind of issues might I face when moving from 400 kHz I2C to 1 MHz I2C

i2cmicrocontroller

I'm thinking of migrating from an I2C bus at 400 kHz to one running at nearly 1 MHz.

I am using 1.2k pull-ups at the moment and on the clock and data lines, I get a rise time of 383ns average when sending out pulses. Fall time is approaching the limits of a 100 MHz oscilloscope at ~15ns. Are there potential issues with this kind of rise time? What about noise and signal integrity? Clock jitter? etc. Would there be significant issues? I will probably stick with 400 kHz on my breadboard which works fine, but the final product may use 1 MHz I2C.

Best Answer

If you are going to run an I2C bus with mixed speeds, and you have devices on the bus that can only work at 400 KHz and below, then they must be disabled somehow (e.g. powering them down, so their I2C bus leads will be tristated) when running the bus at the 1 MHz speed, since they will not be able to parse the high-speed addresses and may respond incorrectly.