24.4.3.1 Format of Data Transfer

I3C bus transactions are delimited by the same START (S), Repeated START (Sr), and STOP (P) conditions that I2C uses.

A bus transmission is done by sending 9-bit sequences. A sequence can be either control or data. One or more control sequences are sent first, then data sequences may follow.

Control Sequence format:

  • Either a 7-bit Address or a Command Code, issued by the Controller.
  • RnW bit: 1=Read, 0=Write, issued by the Controller.
  • ACK bit: 0=ACK, 1=NACK (i.e., not-ACK). Emitted by one or more Targets.

Data Sequence:

  • 8-bit Data: Read or write, depending on the RnW bit of the previous control sequence.
  • Ninth bit: The meaning of this bit differs between read transfers and write transfers:
    • During Writes the ninth bit indicates the parity of the data, as an integrity check (using odd parity)
    • During Reads the ninth bit is called Transition Bit or T-Bit, and it tells the Controller whether the Target has more data to send: if the T-Bit is 1, then the Target has more data to send; if 0, then there’s no more data to send.

      For reads, the Target switches the SDA line to Hi-Z on the rising edge of the SCL signal. This allows the Controller to either continue or stop the transfer by issuing a STOP (i.e., holding and then raising SDA) or a repeated START.