37.2.4.1 Start, Stop and Restart Conditions
All transactions on the I3C bus begin with a Start condition. A Start condition is a
high-to-low transition on the SDA line while the SCL is at a constant high. The Target
sets the SCIF interrupt flag when it detects a Start condition on the bus. The Start
condition is usually asserted on the bus by the Controller, however, the Target can also
assert the Start condition on the bus to request Hot-Join or In-Band Interrupt
transactions.
All transactions on the I3C bus end with a Stop condition asserted by the Controller. A
Stop condition is a low-to-high transition on the SDA line while the SCL is at a
constant high. The Target sets the PCIF interrupt flag when it detects a Stop condition on the bus.
As an alternative to the Stop condition, a Restart condition allows multiple messages to
be sent while in the same frame without needing to transmit a Stop and Start in between
messages. A Restart condition looks the same as a Start condition on the bus. The Target
sets the RSCIF interrupt flag when it detects a Restart condition on the
bus.
The Start, Restart and Stop conditions in I3C protocol are identical to the ones in I2C protocol. Figure 37-8 below shows the Start, Restart and Stop conditions on the bus.
Important: As per the MIPI specification, I3C SDR (but not
HDR) tolerates a Stop or a Restart any time the SCL is high while the Controller
controls the SDA or SDA is in Open-Drain. Usually the Stop or Restart conditions occur
on the bus after an Address Header or a Data Word has been transmitted, they can also happen while in
the middle of an Address Header or Data Word, which is interpreted to cancel the Address
or Data.