2.4 Repeated Start/Restart Condition

A Repeated Start or Restart condition is identical to a Start condition. A host device can issue a Restart condition instead of a Stop condition if it intends to hold the bus after completing the current data transfer. A Restart condition has the same effect on the client as a Start condition would, resetting all client logic and preparing it to receive an address. The Restart condition is always initiated by the host.

A Restart condition occurs when the Restart Enable (RSEN) bit is set, I2CxCNT is ‘0’, and either the host hardware or the user software sets the Start bit.

When the Start bit is set, the host hardware releases SDA (SDA floats high) for TSCL/2. Then, the hardware releases SCL for TSCL/2, and samples SDA. If SDA is sampled low (while SCL is high), as bus collision has occurred, setting the Bus Collision Detect Interrupt Flag (BCLIF) bit and placing the host hardware in the Idle state. If SDA is sampled high (while SCL is also high), the host hardware issues a Start condition. Once a Restart condition is detected on the bus, the client hardware will set the Restart Condition Interrupt Flag (RSCIF) bit. See Figure 2-4 for more details.

Figure 2-4. Restart Condition
Note:
  1. See device data sheet for Restart condition setup times.