Electronic – I2C capacitance problem

capacitancei2cswitches

I know that similar questions have been asked before. I just want to get a better understanding of some details. Please bear with me.

I learnt that I could use an analog CMOS switch or some other dedicated bus switches such as a multiplexer to 'switch off' a segment of a bus. Now I wonder: when a switch is in the 'off' state, will the switch itself contribute to the bus capacitance? If it does, how significant is the influence? is there any way to switch off a part of the bus and completely remove its influence(including the switch) on bus capacitance ?
schematic of a part of the system

My application requires a large amount (could be over 400) of I2C devices connected to the bus. However, only 2 or 3 need to be online at any moment. I think the 400pF (or 3000pF when using a buffer?) capacitance limit is the main concern here. I believe a cascade structure of bus switches could solve the problem, but I need the system to be modular which means that each device are equipped with a switch and no cascade structure.

Pardon me if I'm not making this clear. This is my first time asking questions here. Thanks!

Best Answer

when a switch is in the 'off' state, will the switch itself contribute to the bus capacitance?

Obviously yes. The switch isn't going to have 0 capacitance. How much capacitance it has is, of course, is something you look up in the datasheet.

Keep in mind that some IIC slaves can drive the clock line low to perform clock stretching. This won't work if the switches aren't bi-directional. If you know for sure that your slaves won't try to drive the clock line, then you can use uni-directional switches (buffers).

Putting 400 anything on a IIC bus line is a bad idea. Whether these connections go to the inputs of analog switches or the end devices themselves, there will be considerable capacitance. That could be overcome by running the IIC bus slowly. However, you need to check how much the leakage currents add up. There is a hard limit there.

All around, you should step back and think how to solve this problem differently at a higher level. This just isn't the right way.