This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TCA9548A: Broadcasting across Multiple I2C multiplexers daisy chained

Part Number: TCA9548A

Hi,

I am currently using three TCA9548A I2c multiplexors to connect up 12 different haptic controllers with the same I2C address (I have them four on each multiplexer). I know I can activate multiple channels on one multiplexer at once (i.e. send a value of 0x0F to address 0x70). My question is can I enable 1 port on each of the different boards and send an I2C message to all three at once. i.e. if I send a value of 0x01 to 0x70, then 0x01 to 0x71, will both of these boards then have one I2c channel active that I can broadcast to at the same time? Or can the boards only handle messages going through one board at a time because I haven't had any luck achieving this.

Any help would be greatly appreciated

Regards,

Benjamin

  • Hi Banjamin,

    thanks for this interesting question. In order to answer your question adequate, is it possible for you to verify this simple block diagram of your system this would help a lot. As far as I understand the system looks like this:

  • Hi Dierk,

    Yes that is correct. I am able to communicate to the group of four haptic controllers on one board (i.e. haptic 1-4, or 5-8 or 9-12), but I would like to communicate to something like Haptic 1,5 and 9 at the exact same time. Is this possible or do I need to rearrange them so they are on the same board (this is not preferable as I need to redesign the board)

    Thanks,

    Benjamin

  • Benjamin,

    As you described you should be able to talk to multiple haptic controllers at the same time on different switches after you activated them separately. But this will result very likely in messed up data since every haptic controller has the exact same address. IC2 is designed to operate as a peer to peer Master/Slave: One Master talks to one Slave at a time. 

    Other Bus systems like CAN or RS-485 use arbitration to address multiple nodes talking on one BUS.

    Let me know if this is helping you, don't hesitate to ask further questions.

    Kind regards 

    Dierk