Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Using Multiple Slaves with same Slave Address on I2C; Not read only write

Status
Not open for further replies.

vipins

Newbie level 2
Newbie level 2
Joined
Feb 9, 2014
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Visit site
Activity points
24
I am having an interesting issue.

I have 2 slave devices with same address on the same I2C bus. The devices are PCA9544 I2C MUX(devices are in series). In this configuration at a particular condition both devices will be in the chain. So my question is what will happen when the PCA9544a is addressed by the processor? Will both of them respond with an Ack? If both responds what will happen?

Basically I want to disable the 2nd PCA9544. If I send an address I hope both devices will send an Ack and that shouldn't cause any issues as Master will see it as one Ack. The next write instruction should disable both Muxes(As both are in series both will respond with an Ack). But next time when PCA9544 is addressed only the first device will respond as the slave will be in disabled state.
 

Indeed, interesting experiment.
But I don't think the results would be consistent or reliable. Not a good engineering practice, if this design becomes a "real" product.
 

The behaviour of PCA9544 is according to I2C protocol scheme. A device that doesn't utilize clock stretching or busy state signaling will behave completely predictable, multiple devices with same address won't interfer, just take the same data.

But...
- why don't you use hardware addressing?
- operating two series connected MUX devices with the same address results in many unavailable MUX combinations. Only the first level can use all pathes. So it seems pretty useless.
 

Thanks for the Reply.
As I said it is a particular condition. I have two similar cards the outputs(output of PCA9544) of both cards which go to a Fan are tied together. One card is Master and other is a slave, when the master dies Slave will take up the responsibility and become master. At a time only one board will access the fan.

But when Master goes bad it is possible that the PCA9544 is open and set to access the fan. At this point when slave(which becomes master) tries to access Fan. It will address PCA9544 and the address will reach both Master and Slave card PCA9544. This is when I want to see how the device behaves.

The above said condition is very rare to occur in a normal scenario as it can happen only when Master access Fan which happens once in 10 sec and the window will be for just a milli sec. So probability of occurrence is 1/10000(that too if master fails). I want to make sure even in this condition circuit doesn't missbehave.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top