Question about Multiplexer on I2C

Hi,

one of my project requires to use 16 to 20 digital sensors (SDP600-125) which use the I2C protocol to communicate.
See data sheet: http://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/DiffPressure/Sensirion_Differential_Pressure_SDP6x0series_Datasheet_V.1.9.pdf

The problem is they all have the same address (64) by default.
I am looking for a multiplexer that could solve my problem.

And here's the brickwall, I dont know what kind of multiplexer I have to look at. Since my logic supply to these sensors are only 3.3V, I am afraid to have voltage drop that mess with the readings.

The PCA9548A seems to do 8 channels.
Not sure if you can use the reset as IC/board select, or if you can daisy-chain outputs, or if you can enable/disable the IC with a command.

http://www.ebay.com/itm/PCA9548A-8-Channel-I2C-Bus-Switch-w-Reset-Breakout-for-Arduino-uControllers-/331530855962
Leo..

Hi, thanks for your reply, ideally I would prefer a 16 channels and over.

However, if I can change the address on the either of the PCA9548A, that would be awesome.

I feel it would be awkward to control the multiplexer via another multiplexer and finally the slave device. I dont' know if it's viable in application though.

Further, im curious about the description: "This allows the use of different bus voltages on each pair, so that 1.8 V or 2.5 V or 3.3 V parts can communicate with 5 V parts without any additional protection. External pull-up resistors pull the bus up to the desired voltage level for each channel. "

Does that mean the chipset has itself a voltage regulator that drop the 5V to 3.3V?

The NPX datasheet is available online.
http://www.nxp.com/documents/data_sheet/PCA9548A.pdf

Each I2c pair has it's own pull-up resistors. Page 12.
So the same, or different bus voltages are possible.
No hands-on experience with this chip, so you're on your own.
Leo..

richardphat:
Hi, thanks for your reply, ideally I would prefer a 16 channels and over.

However, if I can change the address on the either of the PCA9548A, that would be awesome.

I feel it would be awkward to control the multiplexer via another multiplexer and finally the slave device. I dont' know if it's viable in application though.

Further, im curious about the description: "This allows the use of different bus voltages on each pair, so that 1.8 V or 2.5 V or 3.3 V parts can communicate with 5 V parts without any additional protection. External pull-up resistors pull the bus up to the desired voltage level for each channel. "

Does that mean the chipset has itself a voltage regulator that drop the 5V to 3.3V?

with the PCA9548A you can combine up to 8 on the I2C bus 0x70..0x77 each bus multiplexor has 8 channels, so if you connect 8 you could have 64 sensors with the same I2C address accessable from one master. I have used the PCA9545A a 4 channel device to connect 12 sensors, it works just fine. This multiplexor allows different voltages for each bus segment, each segment has it's own pullups. I use a 5v MEGA that communicates with 3.3v sensors using these multiplexors.

The PCA9548A can use 5V or 3.3V.. It does NOT have built in regulators.

Chuck.

Hi I have ordered the sensors multiplexer, also I got another curious question.

Would it be possible to use the IO 5V and use a voltage divider to make the voltage ~3.3V and use it to power the sensors on and off? I could also buy, say, a mega2560 in order to take advantage of the numbers of IO

Would it be an alternative option?
From the datasheet of my sensors it draws about 6mA, so I guess it should be possible to do it?

richardphat:
Hi I have ordered the sensors, also I got another curious question.

Would it be possible to use the IO 5V and use a voltage divider to make the voltage ~3.3V and use it to power the sensors on and off? I could also buy, say, a mega2560 in order to take advantage of the numbers of IO

Would it be an alternative option?
From the datasheet of my sensors it draws about 6mA, so I guess it should be possible to do it?

powering down the sensor does NOT isolate it from the I2C BUS. All it does is overload the I2C circuitry of the Sensor. The voltages on the sensor I2C pin are all referenced from the Vdd (power) applied to the senor, if you "power down" the sensor but still apply a signal to the I2C pins(SCL,SDA) they are by definition greater than Vdd(0v) applied to the sensor. The Maximum input range for digital Input pins on chips are usually specified in reference to GND and Vdd of the chip. Minimum -0.4V from ground (GND), Vdd+0.4v as maximum. If you "power Down the chip" Vdd=0, but SCL is 3.3V, you are overloading the SCL pin by 2.9V. Don't do it.

If you don't want to use parts designed for I2C multiplexing, you might be able to use a CD74HC4067 Analog multiplexor. It is not designed or rated to function correctly as a 400khz I2C multiplexor, but it might work. you could pass SDA thru it with pullups on each of the channel lines.

Chuck.

Thanks chuck, I'll add the CD74 on my buying list too.