I2C Master and Multiple slave configuration: How to cut off capacitance of unused I2C devices

For my application, I plan to use around 5xI2C devices that are wired to one Master device over a cable length of around 1-2m for each (so 10m in total), I can use a low pullup resistor of around 1-2kOhm to battle the parasitic capacitance.

Is there a chance that I do a sort of multiplexing and cut off the capacitances of the unused slave devices? I just want to read out one device at a time.

This I2C Multiplexer PCA9543A seems an option for my needs, please see the datasheet:

Capacitive Load Sharing - Adding more I2C and SMBus devices on the bus may exceed the 400 pF limitation. The multiplexers and switches can isolate devices that are not currently needed to reduce the overall system loading and maintain the total system load below 400 pF. When active, the channels act as a wire and the cumulative capacitive loading of the upstream channel and all active downstream channels must be considered.

References:

• I2C is inherently a mismatched transmission line unless terminated to match which is inconsistent with the low current topology. Hence MHz-m BW limited, there may be improvements to discover with 200 pF/m cable by reducing termination impedance trade offs. This can be easily modelled in Falstad Mar 13, 2021 at 14:51

I can't imagine that a device/chip will have an input capacitance any greater than typically 10 pF so, the majority of the capacitance of the system will arise due to the cabling. You can approximately say that cable has 100 pF of capacitance per metre and so 2 metres of interconnecting cable will roughly be 200 pF.

Is there a chance that I do a sort of multiplexing and cut off the capacitances of the unused slave devices?

If you are that close to your system having problems with too much capacitance, you should try a different approach. 5 devices of (max) 20 pF each is only 100 pF. The cable will be about 200 pF and, the generally accepted capacitance limit for I2C is 400 pF. You should be OK without multiplexers.

• my constraints for the projects are 5xI2C devices with each up to 2m cable length so that would add up to 1000pF cable and 100pF each devices. If i had a chance to do multiplexing, I would only get the capacitance of 2m, the device and the multiplexer, which will be around 220pF. Mar 13, 2021 at 15:20
• Then you either run a lower speed I2C bus or use a multiplexer. Be aware that in your question you said this: I plan to use around 5xI2C devices that are wired to one Master device over a cable length of around 1-2m - and that implied to me 5 devices plus a master on one cable. Teeing off several slaves on their own cable from the master is a form of star-pointing and this must be avoided in I2C and SPI busses. Mar 13, 2021 at 15:26
• thank you, I clarified my question. I'll go for multiplexing and probably it is enough, if not, I'll look at your extra buffer solution. Mar 13, 2021 at 15:43
• You might do much better with a matched driver and 50 ohm cable with switched mismatch pullup unless you like cheap cables. Mar 13, 2021 at 15:45

Since you have each slave after a few meters of cable, it might be best to include the I2C mux.

It will isolate each bus, not only to combat capacitance, but to also allow other slaves to work in case one is having a bad connection or left without power, so it allows for hot-plugging too. Each slave can also have the same address so it might make things easier and allow for multiple identical sensors or slaves.

• good point, thank you! Since the slaves are identical, that will really help me. Mar 13, 2021 at 15:50

According to this reference Why, When, and How to use I 2C Buffers

"The I 2C standard specifies a max bus capacitance (CBUS MAX) of 400 pF for both Standard Mode and Fast"

Do you know the input capacity of the I2C devices? My guess is it is less than say 20pF each, in total 100pF. With 2kOhm pull-up you will get an added time constant of 0.2us.

If your I2C is 400kHz the period is 2.5us so 0.2us is not a problem. The capacity of the cable will be similar values. Decoupling the input when not used as your question seems to indicate would be difficult.

If you really want to play safe you can insert i2C buffers such as pca9515a My expectation is it is not needed from the information you provide.

• I think I didn't present my constraints well enough: I need 5xI2C devices where each has a cable length of 2m. Do you think that multiplexing is an option, how do I place the I2C buffer pca9515a if I go for that option, on both sides? Mar 13, 2021 at 15:25

Depending on cable impedance and $$\\sqrt{\dfrac{L}{C}}=Z_o\$$ this determines the C on the cable per meter which is typically 200 pF/m (? verify) for UTP cable to 300 pF/m (?AFAIR) for 50 Ohm cable. Thus using 50 Ohm cable you can get more BW/m or BW-m product with a given amount of termination return loss of mismatched termination R.

Here I arbitrarily chose 10pF stubs and 220 Ohm ribbon or UTP cable and 1k termination. More critical is the source matching towards cable . 3.6V logic is 25Ω +/-25% or more and 5.6V logic is 50 Ω +/- 25% or more so I chose to raise Rs to add more damping and improve ripple in s11 return loss.