7. I
2
C Interface > Timeouts
179
Tsi578 User Manual
June 6, 2016
Integrated Device Technology
www.idt.com
7.12
Timeouts
The I
2
C Interface supports a number of timeout periods to detect a set of error conditions related to I
2
C
operation. These timeouts, and the registers that configure them, include the following:
•
I2C_SCLK low timeout (see
“I2C_SCLK Low and Arbitration Timeout Register”
) – This timeout
detects a situation where a device on the bus is stuck holding the clock low. Because the clock is
stuck low, no progress can be made. If enabled, this timeout expiring will set either the SSCLTO or
MSCLTO events and result in a SA_FAIL or MA_TMO interrupt status being updated in the
I2C_INT_STAT register (depending on whether a master or slave operation was in progress). An
optional interrupt can be sent to the Interrupt Controller if SA_FAIL or MA_TMO is enabled in the
. This is an extreme failure. With I2C_SCLK held low, no Stop
condition can be generated. Any operation is aborted, both I2C_SCLK and I2C_SD are released,
and both master and slave revert to their monitor-for-bus-idle phase. It is up to software to decide
how to handle this error. Because any operation was aborted without correct termination (no Stop),
it is possible that the external device is left in an invalid state.
BL_OK (Boot Load OK)
BLOK (Boot Load OK Event)
SA_FAIL (Slave Access Failed)
SCOL (Slave Collision Detect Event)
STRTO (Slave Transaction Timeout Event)
SBTTO (Slave Byte Timeout Event)
SSCLTO (Slave I2C_SCLK Low Timeout Event)
SA_WRITE (Slave Access Write)
SDW (Slave Internal Register Write Done Event)
SA_READ (Slave Access Read)
SDR (Slave Internal Register Read Done Event)
SA_OK (Slave Access OK)
SD (Slave Transaction Done Event)
MA_DIAG (Master Diagnostic Event)
DTIMER (Diagnostic Timer Expired Event)
DHIST (Diagnostic History Filling Event)
DCMDD (Diagnostic Command Done Event)
MA_COL (Master Collusion)
MCOL (Master Collision Detect Event)
MA_TMO (Master Timeout)
MTRTO (Master Transaction Timeout Event)
MBTTO (Master Byte Timeout Event)
MSCLTO (Master I2C_SCLK Low Timeout Event)
MA_NACK (Master NACK)
MNACK (Master NACK Received Event)
MA_ATMO (Master Arbitration Timeout)
MARBTO (Master Arbitration Timeout Event)
MA_OK (Master Transaction OK)
MTD (Master Transaction Done Event)
Table 22: I
2
C Interrupt to Events Mapping (Continued)
Interrupt Status Bit
Events Related to Interrupt