Electronic – Daisy chaining I2C modules using CAT5 and P82B715

i2crj45serial-bus

I'm planning to connect several modules over I2C with distances between modules ranging 30-180 cm. I understand that in order to avoid the degradation of the signal due to the capacity of the cable a bus extender (such as P82B715) must be used at each point.

My question is if the placing of the bus extenders is correct in the schematic shown below.

Each slave module has one P82B715 behind two RJ45 females and the bus is daisy chained through them using CAT5 cables (in the middle of the diagram). I believe that in this way the buffered signal is more resilient to degradation, but each node is not acting as a repeater and the total capacitance of the cables must be considered.

Is this correct or maybe there is a better arrangement of the components?

Circuit Schematic I2 Daisy Chain

Best Answer

The "L" sides of all three (or more) P82B715's are connected together. So not only do the capacitances add up, but any single device driving the bus low must be able to sink the current through all three (or more) parallel pull-up resistors.

You can just remove the 470 Ω pullups from the slave modules. Alternatively, use higher resistors (e.g., 2.2 kΩ or 4.7 kΩ) everywhere so that the pull-up currents scale with the bus size.

As long as the total bus capacitance is kept below the 3 nF limit, this should work.

If you want to use even more modules, the only way to get this to work would be to use repeater nodes, i.e., two P82B715's in all (or at least some) slave modules.