Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

TCA6408A: Time needed to clear default 1's from output register

$
0
0

Part Number:TCA6408A

Greetings,

I have encountered an odd problem using the TCA6408A.  From the datasheet I understand that at power up the device configures all IOs to be inputs.  The output register has default value of all 1s (0xFF).  What I want to do is configure the outputs to be all 0s (0x00) by writing the output register and I want all the IOs to be outputs (using the direction register).  I have successfully implemented all of this EXCEPT, what I have found is that even if I write the output register first setting it to (0x00) and then write the direction register setting all the IOs to outputs - I am still getting a 100 us blip on all the IOs where they go HIGH.  It seems as though the TCA6408A is ignoring the order in which it received the I2C writes and is going ahead to set the direction to output first AND THEN applying my 0x00 value to the output register.

I have been able to work around this by first writing 0x00 to the output register, then performing a "dummy" read of the input register (just to introduce some delay), and finally writing the direction register to configure all the IOs to output.

My questions: Why do I need to introduce this delay between writing the output register and writing the direction register to get the part to actually put my desired values out on the IO lines at the time of the direction switch?  Is the delay of reading the input register guaranteed to be a sufficient amount of time to ensure that the output register is stable by the time I switch all the IOs to outputs?


Viewing all articles
Browse latest Browse all 262198

Trending Articles