I2C Cables: The Shorter The Better
The I2C bus can be used for on-board communication as well as for talking to externally connected devices. In the latter case a cable is used to connect the two or more ICs involved in that communication and one frequent question we receive is: “What is the maximum cable length for this purpose?”
The I2C specification defines a maximum capacitance depending on transmission speed. Up to 1.7 MHz (which is well in the high-speed range) this maximum is at 400 pF. This limit drops dramatically at higher speeds.
Our experience shows that these ratings are not just safety suggestions, but hard limits. 400 pF is not that much if you keep in mind that each and every component connected to the bus adds to this “pollution”. Yes, even connectors and cables.
You can buy a round cable with approx. 40 pF per meter and this is about as good as you can get. In other words, one meter of cable brings you 10 % closer toward the absolute limit.
If you consider that 100 to 200 pF are easily added by typical I2C components (controllers, radio and TV chassis etc.), it is obvious that the cable length is a critical factor in communication.
Unlike other bus systems like CAN the I2C bus does not provide error checking and/or recovery mechanisms making it necessary to implement this functionality in higher protocol layers.
This often means in practice to read back the contents previously written to a device and checking for equal values.
If such a test fails, it means that considerable writing and reading needs to be repeated.
This may be fatal in a time-critical environment. Therefore, it is wise to calculate a generous safety margin when it comes to electrical limits.
Long cables are frequently subject to EMC influence and should therefore be avoided whenever possible.
As a rule of thumb I2C cables should be as short as possible but not longer than one meter.
By the way: telos Tracii XL has been designed for low capacitance and adds only 50 pF to the bus.
For lab environments where occasional errors are acceptable we heard of set-ups with 4 meters of cable length. This is certainly not advisable.
We recommend to use USB devices like telos Tracii XL 2.0 or telos Connii MM 2.0 in conjunction with an active USB extension if you need to place your I2C equipment apart from the PC. With this method you can easily reach 5 to 7 metres and there are even solutions for 50 meters.