I have come across a weird issue with the TCA9555 IO expander: occasionally, it stops toggling its outputs even though our microcontroller is writing to the expander's output registers. Furthermore, after writing, we are checking not only that the I2C transfer has succeeded but we're also reading the state of the output registers to ensure they hold the desired value and they always do. We are also always checking the Configuration Register before writing to each output to ensure it is properly configured.
Our setup is made of two boards, one with our microcontroller and another with the IO expander. This problem occurs when we disconnect the cable that connects our two boards, which carries both power and the I2C bus to the TCA9555. We disconnect the cable to simulate intermittent I2C faults and random power events from which we are required to recover from. Sometimes, the IO expander works as expected as soon as the cable is re-attached, other times it won't change any of its outputs even though we have the confirmation that its internal registers are properly configured.
We would like to know if this is a known problem with the TCA9555 and/or if there are any recommendations in other to mitigate this issue and always accomplish a full recover of the IO expander.