TCAL6416R: Sticky Outputs

Part Number: TCAL6416R
Other Parts Discussed in Thread: TCA6416A, , TCAL9538, TCAL6416, TCA9538, PCA9538

Tool/software:

Hi expert,

We are using this GPIO expander in our current design from TI: TCAL6416RDTOR. We noticed that this expander is quite special compared to most other GPIO expanders where the outputs are sticky and hold their output value (previous state) until either power cycle or overwritten.

We are running into issues where the sticky output is leaving certain signals on when our MCU goes into reset which causes back drive problems into some of our other ICs.

 

We have a few questions:

  1. Could you help confirm that the behavior I showed in the scope screenshot is expected from this part and its “sticky” output behavior?
    1. Our MCU is normally operating and it has the IO expander output high
    2. Our MCU then goes into reset which asserts reset for the GPIO expander (output still stays high)
    3. MCU reset is released, boots, and re-configures IO expander to drive high output after it drives low for a brief bit during configuration
  2. Is there anyway to disable this “sticky” output behavior?
  3. Do you guys have other offerings in similar package size and IO count that do NOT have this “sticky” feature?

Thank you!

McKenna

  • Attaching the scopeshot here 

  • The registers indeed are sticky, as specified in section 7.3.5 of the datasheet. Resetting the registers can be done with a software reset call (see section 7.3.6), which would require a running MCU.

    The TCA6416A can be completely reset with /RESET.

  • Hi McKenna,

    Please let me know if Clemens' answered your question fully. 

    Regards,

    Tyler

  • Hi Clemens, Tyler,

    Does the customer need to reset every time to disable the sticky outputs? Or is there a way to disable this behavior once? Also, is there another similar device that does not have these sticky outputs?

    Best,

    McKenna

  • Hi McKenna,

    The "sticky" feature of this device applies to the internal registers of this device found on page 23 of the datasheet in the command byte table. 

    Sticky registers means that when you toggle a reset condition through the /RESET pin, only the I2C state machine will be reset. The values of each register inside the device remain the same value. In order to reset the registers back to their default state, a software reset needs to be issued or a power-on reset cycle of the device. 

    The outputs of this device should not change state. They can only change state when the user writes i2c commands to the output port register and configuration register of this device. Otherwise, the I/O expander will constantly output its set logic that it has been programmed to do. 

    Regards,

    Tyler

  • Hi Tyler,

    Thanks for the clarification. For one of their use cases, when the MCU goes into reset and the IO expander continues to drive signals externally, it causes an issue in their system - I'm wondering if another part would be better in this case.

    Do you know if the TCAL9538DTUR has this same behavior with the sticky registers?

    Thank you!

    McKenna

  • Hi McKenna,

    TCAL9538DTUR does not have sticky reset, meaning a toggle on /RESET pin will reset the register map of the device. IO's will go back to their default state which is high-z inputs. 

    When using TCAL6416R, just before MCU goes into reset mode, can the MCU send a software reset to reset the registers of the TCAL6416R? 

    Regards,

    Tyler

  • Hi Tyler,

    Just to confirm again, could you clarify this portion from the TCAL9538 datasheet, which notes:

    • "At power-up or after a software reset call, the I/Os are configured as inputs"

     

    Based on your feedback, in addition to this, for TCAL9538, on /RESET all registers will be reset & IOs will also be configured as inputs? Just want to explicitly confirm as the wording here is closer to TCAL6416, compared to TCA9538 below, which does not have the sticky registers and quite different wording:

    • "The system master can reset the TCA9538 in the event of a timeout or other improper operation by asserting a low on the RESET input pin or by cycling the power supply and causing a power-on reset (POR). A reset puts the registers in their default state and initializes the I 2C /SMBus state machine. The RESET feature and a POR cause the same reset/initialization to occur, but the RESET feature does so without powering down the part."

    Thank you!

    McKenna

  • Hi McKenna,

    Just to confirm again, could you clarify this portion from the TCAL9538 datasheet, which notes:

    • "At power-up or after a software reset call, the I/Os are configured as inputs"

    See the /RESET pin section of the TCAL9538 datasheet: 

    It describes that both state machine and registers are set back to their default states. 

    "The system master can reset the TCA9538 in the event of a timeout or other improper operation by asserting a low on the RESET input pin or by cycling the power supply and causing a power-on reset (POR). A reset puts the registers in their default state and initializes the I 2C /SMBus state machine. The RESET feature and a POR cause the same reset/initialization to occur, but the RESET feature does so without powering down the part."

    I think this is from the TCA9538 (not TCAL version) datasheet. 

    Regards,

    Tyler

  • Thanks for the clarifications here Tyler! Silly question but what is the difference between TCA & TCAL version?

    Best,

    McKenna

  • Hi McKenna,

    Good question. 

    TCA is a more basic version of our IO expanders. They can operate up to 400 kHz and have a voltage range of 1.65V to 5.5V

    TCA"L" adds agile IO functionality to the IO expanders. They can operate up to 1 MHz and have a voltage range of 1.08 V to 3.6V. 

    The additional agile IO functionality adds things like programmable output drive strength, and interrupt status register, and input latching. TCAL adds more functionality to the IO's. TCAL is considered the p2p upgrade to TCA devices. 

    For example

    PCA9538 --> TCA9538 --> TCAL9538. 

    PCA9538 was TI's first round of IO expander design, then upgraded to TCA, then upgraded again to TCAL. 

    Regards,

    Tyler