Electronic – I2C Capacitance


I'm using an I2C interface for my e-compass and controller. The capacitance of the e-compass I2C pin is 20pF, and that of the I2C controller is approximately 40pF.

But the problem is: I want to use a 100cm long wire, but don't know how to measure wire capacitance, and there is a PMDC motor which injects noise into the line.

The question is how to ensure my I2C capacitance is not exceeded,
and what I2C buffer I need to use (any specfic IC?).

Best Answer

Despite the capacitance specifications being what they are, you are unlikely to see any ill-effects of cable capacitance at typical I2C signaling rates up to 400 KHz Fast Mode, for a cable length of 1 meter.

Also, as per I2C specifications by NXP, the maximum supported cable capacitance is 400 picoFarad. This apparently applies to the original I2C specification (100 KHz), there seems to be no update for the newer I2C versions.

For 1 MHz Fast Mode Plus, 3.4-MHz High-speed mode (Hs) and 5 MHz Ultra fast mode (UFm) a long cable may be unreliable, or will not work at all, at worst. If the peripheral in question supports and is to be used in these high speed modes, a recommended approach would be to avoid off-board I2C altogether, or add a Long Distance I2C extender.

I2C buffers/extenders: NXP publishes an array of suitable parts on this page, specifically designed to allow extending the I2C bus over kilometers. P82B715, P82B96, and PCA9600 are the parts to look at, in this context.

There are also suitable parts from Texas Instruments, and perhaps others, for such bus extending purposes.

Also see Samuel's answer for some further insight into this matter.