S C L 2
S ta rt C o u n tin g H ig h P e rio d
In te rn a l C o u n te r R e s e t
S C L 1
S C L
D e la y
Figure 30-27. I2C clock synchronization
30.4.1.8 Handshaking
The clock synchronization mechanism can be used as a handshake in data transfers. A
slave device may hold SCL low after completing a single byte transfer (9 bits). In this
case, it halts the bus clock and forces the master clock into wait states until the slave
releases SCL.
30.4.1.9 Clock stretching
The clock synchronization mechanism can be used by slaves to slow down the bit rate of
a transfer. After the master drives SCL low, a slave can drive SCL low for the required
period and then release it. If the slave's SCL low period is greater than the master's SCL
low period, the resulting SCL bus signal's low period is stretched. In other words, the
SCL bus signal's low period is increased to be the same length as the slave's SCL low
period.
30.4.1.10 I2C divider and hold values
NOTE
For some cases on some devices, the SCL divider value may
vary by +/-2 or +/-4 when ICR’s value ranges from 00h to 0Fh.
These potentially varying SCL divider values are highlighted in
the following table. For the actual SCL divider values for your
device, see the chip-specific details about the I2C module.
Functional description
KL02 Sub-Family Reference Manual, Rev. 2.1, July 2013
486
Freescale Semiconductor, Inc.