36.3.11 Clock Stretching
Clock stretching occurs when a client device holds the SCL line low to pause bus
communication. A client device may stretch the clock to allow more time to process
incoming data, prepare a response for the host device, or to prevent receive overflow or
transmit underflow conditions. Clock stretching is enabled by clearing the Clock Stretch
Disable (CSD)
bit and is only available in Client and Multi-Host modes.
When clock stretching is enabled (CSD =
0
), the Client Clock Stretching
(CSTR) bit can be used to determine if the clock is currently
being stretched. While the client is actively stretching the clock, CSTR is set by
hardware (CSTR = 1
). Once the client has completed its current
transaction and clock stretching is no longer required, either module hardware or user
software must clear CSTR to release the clock and resume communication.