Will a I2C switch boost the overall bitrate

i2cswitches

I am currently working with a wired I2C bus system consisting of 6 individual bus lines with 4 slaves on each. They are currently all connected to one I2C bus and for each slave i add the bus becomes significantly slow.

I lately got the idea of adding a 8 channel I2C switch with the objective of boosting the bitrate in my system. Unfortunately i am not quite sure if this will solve my problem. The idea was to connect the 6 individual bus lines to one channel on the I2C switch and have the I2C master switch between each individual line in order to reduce the amount of slaves connected simultaneously. So instead of calling out to all 24 slaves i will instead take them in chunks of 4 at a time.

The question is, will this give me a higher bitrate or will it slow it further down due to the extra data that has to be passed to the I2C switch?

The master is a RPi2 and the slaves are ATmega32.

Datasheet: http://www.nxp.com/documents/data_sheet/PCA9548A.pdf

Best Answer

It's hard to say. If you are running in to rise time issues due to the capacitance on the line, then segmenting the bus will alleviate this issue. However, you will pay a penalty in terms of the switch configuration overhead. You'll have to do a usable bandwidth calculation for both cases and see which one is better - raw bit rate for one, bit rate times efficiency for the other.