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: SDA and SCL not pulled-up to VCC on reset

Part Number: TCA9548A

Tool/software:

I have built a 1 to 64 I2C multiplexer/demultiplexer based on 9 TCA9548A devices: one as primairy (address 0) to split the master I2C onto 8 intermediate busses and subsequently 8 TCA9548A devices (all on address 1) on each intermediate bus to achieve 64 final I2C busses. Each TCA9548A has its own 1.8V VCC power supply, created through an LDO from a single 2.5V master power supply. The master I2C bus is pulled-up by 1K2 resistors to the VCC of the primairy TCA9548A devices, while the intermediate I2C busses are each pulled-up through 1K2 resistors to the VCC of their respective TCA9548A device.

I would expect that when all TCS9548A devices are kept in reset, that both SDA and SCL of each intermediate I2C bus would be pulled-up to the 1.8V of their respective VCC. However, of the 8 intermediate busses, only half appear to do that, while the SDA/SCL signals on the remaining busses vary in between 1.4V to 1.65V. This indicates that current is flowing through the pull-up resistors into the SDA/SCL signals of the intermediate bus. However, as all TCA9548A devices are in reset, the intermediate bus should be disconnected on both sides from the primairy bus and their final I2C busses.

So, what can cause this and/or where does this current flow to?

  • Hey C P

    I believe I follow what you're trying to implement here but for clarity sake can you provide a schematic? 
    Have you measured the voltages at each of the 8 intermediate I2C devices supplies? I'm wondering if they may not actually be getting to 1.8V (maybe an LDO issue?) and that could be a cause of the issues you're seeing.

    Thanks,
    Rami

  • Hello Rami,

    well, I hope this diagram below gives some clarification, although I think that my given description should have been clear enough.

    All voltages on each of the 9 LDO's is 1.800V +/- 0.002V, so pretty much OK. 

    So on the below circuit on each of the I2C busses of the primairy TCA9548A (address 0) a secondairy TCA9548A (all on address 1) is connected, each with a separate LDO. On the resulting 64 I2C busses I2C targets are connected, each with the same I2C address, hence the need for this I2C tree. The LDO feeding each secondairy TCA9548A is feeding the pull-ups of its 'incoming' bus, as well as all the pull-ups on its 8 'outgoing' I2C busses.

    So now when keeping the complete I2C tree in reset, some of the 'intermediate' I2C busses' SDA/SCL signals aren't pulled-up to their respective LDO 1.8V level, but appear to be stuck at 1.4V..1.65V. When shorting either SDA/SCL on the primairy I2C bus or on the targets' I2C bus, then the levels on the intermediate I2C bus DO NOT CHANGE, i.e. they remain at their 1.4V..1.65V level, indicating to me that the TCA9548A's in reset indeed separate the I2C busses. Also, when the application is running, all I2C targets can be accessed, so the SDA/SCL functional levels reach their respective Vi/Vih levels, albeit not meeting all device specifications.

    So now the question remains: where does the current through the pull-ups flow to?

    Thanks.

  • CP, 

    Thanks.

    Looks like there is anywhere from 125 to about 333uA of current going through your resistors. The leakage current of this device wouldn't attribute to this and there really isn't a normal or obvious path for the current to go. It sounds like your overall functionality is fine so the resets are functioning fine and all devices are active when you want them and you aren't inadvertently turning on/off some extra channels and causing any issues so I don't think it's something to do with your implementation of this idea. It's definitely strange you're seeing this.
    Is 1.800V +/- 0.002V a measured value or what is expected from the LDO datasheet? A scope shot of the LDO's output would be useful here. 
    You can also try connecting the switches to a power supply instead of the LDO and see if that helps track the issue.

    Thanks,
    Rami