I am developing a dolly-pan-tilt system, where an Arduino is connected via I2C to three independent rotary encoders for positioning. Having read a few posts on this site and elsewhere, I am aware that I2C has a limitation regarding distance of the cables for correct signal transmission. My issues/questions are the following:
SDA and SCL wires ought to be twisted, although some think they don't need to? I am thinking of using a twisted SDA/SCL for each function, dolly, pan and tilt movement, which sit very close to each other on a 24pole flat ribbon cable. So, twisting is probably adequate as well as an I2C repeater, as the distance between the Arduino controller for the dolly encoder is around 2.20m, the distance for the panning encoder is about 1.80m and the tilt encoder is closer with 0.60-0.70cm.
However, I have seen mention of I2C repeaters as well as extenders: which one is better suited as they seem to both be doing the same?
I2C extender: P82B715
I2C repeater: CPC5902G by Clare
What is truly the difference and advantages between the two ICs? Also, I read somewhere, that the overall distance between the master and his I2C slaves ought to be considered, in my case: adding up the above mentioned distances 2.20m+1.80m+0.70m for all three movements, and not consider them independently towards the microcontroller; —is this valid?
As unfortunately all three I2C cable pairs are right next to each other (distance between each line is 1.26mm) on the ribbon cable followed by the GND line, it can still get noisy as thereafter are the cables driving the DC motors +/- @ 12V and up to 2A. I did my calculations regarding wire capacitance concerning the ribbon cable AWG (28), based on this website and ended up with 38.51pF for 2.5m of cable.
The datasheet of my encoders demands though to remain below 10pF, in order to ensure correct operation!