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.

TCA9543A: TCA9548A hangs when battery broadcasts as a master

Part Number: TCA9543A
Other Parts Discussed in Thread: TCA9548A,

We are seeing the TCA9543A occasionally hang when our battery broadcast (becomes the master) at the same time that we are trying to set the channel of the TCA9548A from our micro-processor host.

Is this a known issue, or could this be a problem with the arbitration software?  

  • Hey Allen,

    Can you show me a scopeshot of what you're seeing. I'm not 100% sure what you mean by hang, are you saying the SDA line gets latched low?

    "Is this a known issue, or could this be a problem with the arbitration software? "
    I haven't heard of this kind of problem with our device specifically, I have seen/heard of channels getting latched due to other slave devices connected to our device are causing the stuck bus. Typically you would need to reset the slave causing this by either doing a PoR/toggle reset/or send 9 clock pulses to reset the slave's state machine.

    Thanks,
    -Bobby
  •  Yes SDA gets stuck low.  I can reset the TCA9543A and recover, but I am trying to prevent the Hang from occurring in the first place.  

  • Hey Allen,

    Your waveforms looks like they either have a lot of noise.

    The rise times on your clock signal also looks like it may be kind of slow. What pull up resistor value are you using?
    It also looks to have a lot of inductance/mutual capacitance on the line. Are the traces on SDA/SCL really close together? Are you communicating across some wires? I can see ringing in your signal and some of the ringing on the clock could look like false clock edges which is getting the bus stuck by glitching the slave.

    The main issue is that in the last transaction there is only 8 clock pulses, I2C has 9 clock pulses so the slave is waiting for the last clock pulse to release the bus. This is an issue related to your master not pushing out the last clock pulse.

    -Bobby
  • The signals don't look too good for two reasons.  I was trying to see what happened when the bus hung so I had the scope set to capture a large amount of data and this is a zoomed in image of the data.  Also, my grounds may not have been the best as I wasn't concerned with looking at signal quality rather than what happens after the when it hangs.  Here is what the signals look like when I have a good ground and am not capturing a large amount of data

  • Hey Allen,

    The waveforms look much better, resistor values look okay here and the cross talk looks very minimal with no oscillations.

    I believe the last scopeshot still showed us the issue has to do with the missing clock pulse on the SCL line. I can clearly see 8 pulses but never a 9th, so the slave device hangs the bus waitting for the 9th pulse. (problem seems to be related to the master here)

    -Bobby
  • OK, I will pass this onto the software team. Maybe there is a problem with the driver