Multiple I²C slaves with different addresses VS. using a multiplexer

by J. K.   Last Updated July 10, 2018 13:25 PM

I'd like to interface a lot of identical I²C sensors, let's say 32, with a MCU that has only 2 I²C busses.

I can configure each sensor to have up to 8 different addresses. Hence I can have 8 sensors per bus or 16 sensors in total which is not enough for my application.

I plan to use a multiplexer or some sort of I²C buffer (described in this document, page 8) in order to increase the number of sensor I can interface.

However, I have now to choose in between several options :

  • Having 4 different sensor busses with 8 sensors each and using two 2-channel multiplexers (or buffers) on each MCU bus to switch between those 4 sensor busses.
  • Having 8 different sensor busses with 4 sensors each and using two 4-channel multiplexers on each MCU bus to switch between those 8 sensor busses.

Those are just examples, there is plenty of other configurations but the question is the same :

Is there a reason to prefer having more channels with less sensors on each over having less channels with more sensors on each ?

I tried to figure out if there would be a change in the max. update rate of my sensors in each configuration but I can't see any difference.

If some of you already faced this dilemna and/or has any element of answer, I'd be glad to hear it !

Related Questions

4 bit SD card - sharing the interface?

Updated August 05, 2017 04:25 AM

RS 232/485 single bus line w/ MAX3160

Updated February 22, 2017 20:25 PM

Databus contention ARM Cortex A9 Multicore

Updated April 29, 2015 22:10 PM