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?).

  • 1
    \$\begingroup\$ Discussed here. \$\endgroup\$ – Samuel Jan 25 '13 at 9:25

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.

| improve this answer | |
  • \$\begingroup\$ Your Cat 5 information comes from wikipedia. It's 52 pF/m at 800 Hz, not KHz, and that's on a balanced UTP pair. I2C does not use a balanced signal pair like 802.3 Ethernet does. Also, i2c does NOT have the type of error checking that would prevent corrupt data from too much capacitance from affecting a device (like parity or checksum). \$\endgroup\$ – Passerby Jan 27 '13 at 5:08
  • \$\begingroup\$ @Passerby Removed CAT5 example. \$\endgroup\$ – Anindo Ghosh Jan 27 '13 at 5:55

You would measure the wire capacitance the same you would a regular capacitor. Since the capacitance will be at a very small range, you need a fairly decent capacitor measuring meter. Alternatively, an oscilloscope, a resistor, and a voltage source would allow you to charge the wire, than measure it's voltage curve when discharging against the resistor. Too much effort for what you really need.

Most cables or electrical wire will have it's capacitance per standard length as part of it's specifications. Cat 5e UTP cable for example, has a nominal 300 pF per 100 meters on an unbalanced pair. Belkin Cat 5e Cable Specs , so 3 pF for your 1 meter need. Nominal.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.