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.

TCA9544A: control register

Part Number: TCA9544A
Other Parts Discussed in Thread: TCA9545A,

Dear all,

If the control register of the TCA95444A is set at 0b00000000, does it reset the I2Cx (x=1,2,3,4) interfaces ?

If not, can the TCA9545A perform a reset when the control register is set at 0b00000000 ?

In the application I need to be sure to reset the I2Cx in case of slave fault, but I cannot use any extra pin (such as reset pin of TCA9545A).

regards,

Domenico

  • Hello Domenico,

    If you set the control register of TCA9544A to 0x00 then all channels will be disconnected from the main channel.

    "does it reset the I2Cx (x=1,2,3,4) interfaces ?"
    -I am not sure what you mean when you say reset. The I2C slaves on the other channels will not be reset, it (SDA/SCL) will only be disconnected from the main channels and the other channels.

    "can the TCA9545A perform a reset when the control register is set at 0b00000000 ?"
    This device does not have a reset pin so I am unsure what you mean by reset.

    "In the application I need to be sure to reset the I2Cx in case of slave fault"
    When you say fault, do you mean a slave is holding SDA line low (stuck bus?)?

    Thanks,
    -Bobby
  • Hi Bobby,
    thanks for the answer.

    I've quoted your email:

    "does it reset the I2Cx (x=1,2,3,4) interfaces ?"
    -I am not sure what you mean when you say reset. The I2C slaves on the other channels will not be reset, it (SDA/SCL) will only be disconnected from the main channels and the other channels.

    I mean recovery from situation where a device has pull-down the SDA pin.

    "can the TCA9545A perform a reset when the control register is set at 0b00000000 ?"
    This device does not have a reset pin so I am unsure what you mean by reset.

    The TCA9545A has a reset pin and in the description of the control register is clearly written that the value 0b00000000 perform a reset.

    "In the application I need to be sure to reset the I2Cx in case of slave fault"
    When you say fault, do you mean a slave is holding SDA line low (stuck bus?)?

    Yes, I meant that.

    regards,e2e.ti.com/.../726030
    Domenico
  • Hello Domenico,

    Thanks for clarifying, I understand now.

    "I mean recovery from situation where a device has pull-down the SDA pin."
    With the TCA9544A, it does not have a reset pin so you will not be able to change the control register because the main channel will also see the SDA line as low.

    One approach you can try to use to fix this is to send 9 or 18 clock pulses on the SCL line which should help to get the slave to release the SDA line.

    "The TCA9545A has a reset pin and in the description of the control register is clearly written that the value 0b00000000 perform a reset."
    My apologies, I mistook this as the TCA9544A. Yes, you can use TCA9545A's reset pin which will reset the channels to all be disabled but you will still not fix the stuck bus issue. You can use this to figure out which channel is stuck though (you can have the master enable each channel one by one until it finds the channel with the stuck bus). I would suggest you send the 9/18 clock pulses in this situation anyways (while you see SDA is latched low on the bus).

    My suggestion in this case would be to use TCA9544A and try the clock pulse solution unless you are okay with resetting the I2C switch and disabling all the channels and just isolating the channel which is stuck (in this case TCA9545A would work).

    Thanks,
    -Bobby