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.

TCAL9539-Q1: register writing order

Part Number: TCAL9539-Q1
Other Parts Discussed in Thread: TCAL9539

Tool/software:

hi team:

We are using TCAL9539-Q1 as IO expander, and occasionally there are some chips have the issue that I2C cannot be found and all output are set to high. In our case, we write 0x45, 0x46,0x4a, 0x4b registers first and then 0x00~ 0x07 port registers. We tried to change the order of these two groups of registers, then no issues happen.

Is there any suggested writing order of all these registers?

Thanks.

  • Please specify the actual values that you're writing, and the desired effect.

    (The register numbers 0x45/0x46 are unlikely to be correct; register pairs start at an even number.)

  • Hi Lelian,

    As Clemens has suggested, we need to know the values of each of the registers. 0x45/0x46/0x4A/0x4B / 0x00-0x07. The values written to each of these registers will determine the behavior of the IO's. 

    Regards,

    Tyler

  • Hi Clemens:

    The pic I attached is the registers we are implementing to IO expander

  • These look OK.

    What exactly is wrong? "I2C cannot be found" sounds as if the device is missing, damaged, or not powered up; in that case, writing registers is not possible at all. If the error happens, does it get fixed by replacing the chip?

  • Lelian,

    Please see Clemens' comments. 

    I see no issue with the write/read feedback in the excel file. It looks correct. 

    Regards,

    Tyler

  • We got some cases that the output of all port are set to high after powering up VDD, then causing problems in the car, and we are currently not able to measure what happens exactly when the ports are unexpectedly set to high, because it's inside a car. The software coworkers says they did these I2C operations. So right now we are analyzing these I2C operations.

    We measured the ramp up and ramp down of VCC, which meet the requirement listed in datasheet.

    Is there any cases that the port are set to high except writing registers?  We found the I2C address problem is caused by other I2C devices related to abnormal high output of IO expander

  • The default output state is 1, but the default configuration of all pins is input. To ensure that the outputs do not go high, write the output register before the configuration register.

    (I²C has no error correction, and it is possible that the software has bugs and accidentally writes some wrong values to the expander's registers.)

  • Hi Lelian,

    We got some cases that the output of all port are set to high after powering up VDD

    To clarify, after a power up (abiding by the power-on reset rules), the I/O expander starts as OUTPUT's and all pins are HIGH? 

    This is before any I2C write commands are sent to the I/O expander to configure the device? 

    The TCAL9539-Q1 has no non-volatile memory. It does not remember a previous configuration state. Upon power up, the device should reset to its default state which is all I/O's set to INPUTs. 

    Has this issue been repeated across multiple TCAL9539-Q1's or is it a single device problem? 

    Is there any cases that the port are set to high except writing registers? 

    Writing to the registers should be the only way that the Pxx pins are configured to OUTPUT's through registers 0x06 and 0x07. 

    We found the I2C address problem is caused by other I2C devices related to abnormal high output of IO expander

    I am not understanding this part of the problem. May I have clarification here on what you mean by "I2C address problem?" How do other devices on the I2C bus affect the situation? 

    Regards,

    Tyler

  • Hi Tyler:

    One of the IO expander output controls the power supply for an amplifier, once the output is set to high, the amplifier goes to power off mode. But in our case, there is a 2V voltage remaining on the supply of amplifier after powering off, this remaining voltage causes unexpected performance on I2C bus. We see the problem of IO expander I2C address could not be found is actually caused by abnormal behavior of amplifier on the same I2C bus. 

  • Hi Lelian,

    But in our case, there is a 2V voltage remaining on the supply of amplifier after powering off,

    The TCAL9539-Q1 uses one of its I/O's configured as an output to set the enable signal to the power supply for an amplifier. When this signal is OUTPUT = HIGH, the amplifier goes to a power off mode. 

    However, the supply does not turn off completely, supplying 2V to the amplifier. Because of this remaining voltage, it is causing unexpected behavior on the I2C bus. 

    Are the PU resistors on SDA & SCL connected to this amplifier? Since the amplifier is receiving partial power, is it the case that the I2C bus is not working properly because of the drop in voltage? Then it would make sense since the I2C bus would never reach a VIH which VIH = 0.7 x VCC. If the VCC of TCAL9539 is VCC = 3.3V, then a VIH = 0.7 x 3.3V = 2.31 V. 

    Is this the case? 

    Regards,

    Tyler