14.2.3.2.2 Clock Stretching

The I2C peripherals support the clock stretching feature as defined in Philips I2C v2.1 specifications. This addresses the condition where the I2C slave is unable to meet the clock speed provided by the I2C master and needs to slow down. Care should be taken so that the slowest I2C device does not dominate the bus performance. The I2C slave is allowed to hold down the clock if it needs to reduce the bus speed. The I2C master reads back the clock signal after releasing it to a High state and waits until the line goes High.

Clock stretching is a common practice. However, the total bandwidth of the shared bus might significantly decrease. Estimating the impact of clock stretching is required to share I2C bus among multiple devices.