Datasheet

738
SAM9X35 [DATASHEET]
11055E–ATARM–10-Mar-2014
38.10.5.4 Clock Synchronization
In both read and write modes, it may happen that TWI_THR/TWI_RHR buffer is not filled /emptied before the
emission/reception of a new character. In this case, to avoid sending/receiving undesired data, a clock stretching
mechanism is implemented.
Clock Synchronization in Read Mode
The clock is tied low if the shift register is empty and if a STOP or REPEATED START condition was not detected. It is
tied low until the shift register is loaded.
Figure 38-29 on page 738 describes the clock synchronization in Read mode.
Figure 38-29. Clock Synchronization in Read Mode
Notes: 1. TXRDY is reset when data has been written in the TWI_THR to the shift register and set when this data has been
acknowledged or non acknowledged.
2. At the end of the read sequence, TXCOMP is set after a STOP or after a REPEATED_START + an address different
from SADR.
3. SCLWS is automatically set when the clock synchronization mechanism is started.
DATA 1
The clock is stretched after the ACK, the state of TWD is undefined during clock stretching
SCLWS
SVACC
SVREAD
TXRDY
TWCK
TWI_THR
TXCOMP
The data is memorized in TWI_THR until a new value is written
TWI_THR is transmitted to the shift register
Ack or Nack from the master
DATA 0DATA 0 DATA2
1
2
1
CLOCK is tied low by the TWI
as long as THR is empty
S
SADR
S
R DATA 0A
A
DATA 1
A DATA 2 NA S
XXXXXXX
2
Write THR
As soon as a START is detected