Error Type TE6

Error Type TE6 occurs when the R/W bit in a Private transfer is corrupted. This happens when the Controller intends to initiate a Private Write transfer, but the Target interprets it as a Private Read transfer due to the corrupted R/W bit. This results in both Controller and Target taking control of the SDA line and the write data from the Controller might conflict with the read data from the Target.

The Target detects this error by always monitoring the SDA line and the data it transfers. If the data on the SDA line differs from the data the Target intended to transmit (except for data transferred during arbitration request like Hot-Join, IBI or Dynamic Address Assignment), the Target considers this to be an error. The TE6ERR bit and the BUSEIF Bus Error Interrupt Flag are set upon successful detection of TE6 type error. Once set, the TE6ERR and BUSEIF bits will not self-clear. The user must clear them in software to re-arm the functionality of each bit individually.

The Target recovers from this error by stopping its transmission and then waiting for the next Stop or Restart condition.