Transition Bit (T-Bit)

Unlike I2C where the ninth data bit represents ACK/NACK, the ninth data bit in an I3C SDR Data Word is a Transition Bit (T-bit).

When the Controller is writing data to the Target, the ninth data bit (T-bit) of each SDR Data Word is a Parity bit calculated using odd parity. The value of this Parity bit is the XOR of each of the eight data bits with ‘1’. Figure 1 shows an example Data Word from the Controller with the Parity T-bit included.

Figure 1. Example Data Word for Controller to Target Communication (Example Data: 0x96)
When the Controller is reading data returned from the Target, the ninth data bit (T-bit) of each SDR Data Word represents the End-of-Data bit. The Target uses this bit to control the number of data words it returns, and it also lets the Controller abort the read prematurely when necessary. To end the message, the Target can return the ninth T-Bit as ‘0’. To continue the message, the Target returns the ninth T-Bit as ‘1’ and monitors the SDA line. If the SDA line remains high on the next falling SCL edge, the Target continues to send the next data value. If the SDA line is low on the next falling SCL edge (Restart), then the Controller has aborted the data transfer and the Target module does not send the next data. This condition can be monitored using the RSCIF flag.

Figure 2 shows an example Data Word from the Target where the End-of-Data bit is asserted by the Target. Figure 3 shows an example Data Word from the Target where the Controller aborts the transaction by asserting the End-of-Data bit.

Figure 2. Example Data Words for Target to Controller Communication with End-of-Data Asserted by the Target (Example Data: 0x96 and 0xD4)
Figure 3. Example Data Words for Target to Controller Communication with End-of-Data Asserted by the Controller (Example Data:0x96 and 0xD4)
Important: For the Target module to send an End-of-Data T-bit = 1, the user must write the next byte to I3CxTXB Transmit Buffer before the Transmit FIFO becomes empty. The Target module responds with an End-of-Data T-bit = 0 as soon as the Transmit FIFO becomes empty. This applies to Private Read Transactions and while sending the IBI Payload.