ZHCSUH8B December 2017 – January 2024 FPC202
PRODUCTION DATA
The FPC202 has a watchdog timer to ensure that the I2C buses do not become permanently stuck. For example, if the host is performing a remote access on a downstream module, the FPC202 will clock stretch the host-side I2C while the downstream I2C transaction occurs. If the downstream module clock stretches for a very long time or any other error occurs that prevents the transaction from finishing, the host-side I2C will not become stuck. The watchdog timer is what prevents this from happening by setting a maximum time for the downstream transaction to complete; and if it does not complete, the timer expires and the FPC202 will NACK the host to terminate the transaction. By default, the timer is set to 3 ms and is programmable in steps of 1 ms up to 127 ms. This timer may also be disabled, but this is not recommended as the I2C bus may become permanently stuck and a device reset will be necessary. Each port's I2C master also has a programmable watchdog timer which operates similarly to the host-side I2C watchdog timer.
When the host attempts a remote access transaction through I2C, after the I2C device ID has been ACKed, the FPC202 waits for the host to send a register offset address or a read/write command before downplaying it on the downstream port I2C. If the host becomes busy with something else and does not finish the I2C transaction, the FPC202 state machine will be stuck. There is a protocol timeout timer for each port to prevent this from happening. If the host does not finish the I2C transaction within this timer, the FPC202 will timeout and return to the idle state. This counter is 10 ms (typical) by default and is configurable in steps of 1 ms up to 255 ms.
Request access to the FPC202 Programmer's Guide (SNLU229) here for more details on how to configure protocol timeouts.