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.

TCA6424A GPIOs after reset sequence

Other Parts Discussed in Thread: TCA6424A

According to Table4 in spec available at www.ti.com/.../tca6424a, the reset value of Output Port 0, Output Port 1 and Output Port 2 are 0xFF.

If I pull TCA6424A out of reset, and update configuration register to set all pins as outputs, does this mean that all GPOs will get driven high immediately?

  • Hello Amit,

    Not quite. You are onto the correct thought process, in that the output port registers will all be 0xFF. However the configuration registers for the ports also are 0xFF by default, which means that when you pull the TCA6424A out of reset, all ports will be set as inputs, and be high Z.

  • Helo Jonathan,

    Thanks for your response. My sequence of operation is


    1. Pull TCA6424A out of reset

    2. Update configuration registers to set all 24 pins as output pins.

    My concern is that as soon as I execute step 2, all 24 pins would go to logic state 1, because the output registers still have their reset values, which is 0xFF.
    Is this correct?


    I want to confirm if I should have an intermediary step 1.1 where I update output registers to be 0x00 before updating configuration registers to set all 24 pins as outputs.

    Amit

    Jonathan Valdez said:

    Hello Amit,

    Not quite. You are onto the correct thought process, in that the output port registers will all be 0xFF. However the configuration registers for the ports also are 0xFF by default, which means that when you pull the TCA6424A out of reset, all ports will be set as inputs, and be high Z.

  • Amit,

    You are correct. Since the POR default state of the output registers is 0xFF, setting any ports to outputs via the configuration register without first changing the output register will result in a high output.

    If you wish to output a low, you should have a step 1.1 where you write 0x00 to the output port registers. Then when you change the configuration register for a port to an output, it will output low instead of high.
  • Thank you for a quick response.