Rev. 1.00, 05/04, page 325 of 544
Continuous Receive Operation:
Figure 13.20 shows the sample flowchart for the operations in slave receive mode (HNDS = 0).
Slave receive mode
End
Read IRIC in ICCR
Clear IRIC in ICCR
Clear IRIC in ICCR
Read AASX, AAS and ADZ in ICSR
Read TRS in ICCR
Read IRIC in ICCR
Clear IRIC in ICCR
Clear IRIC in ICCR
Read ICDR
Wait for one frame
Read ICDR
Set ACKB = 0 in ICSR
Set ACKB = 1 in ICSR
Set HNDS = 0 in ICXR
General call address processing
* Description omitted
Set MST = 0
and TRS = 0 in ICCR
IRIC = 1?
No
Yes
ICDRF = 1?
Yes
TRS = 1?
IRIC = 1?
ICDRF = 1?
Yes
Yes
No
No
Yes
No
AAS = 1
and ADZ = 1?
No
No
[1] Select slave receive mode.
[2] Read the receive data remaining unread.
[3] to [7] Wait for one byte to be received (slave address + R/W)
(Set IRIC at the rise of the 9th clock)
[9] Wait for ACKB setting and set acknowledge data
for the last reception
(after the rise of the 9th clock of (n-1)th byte data)
[15] Clear IRIC
[14] Read the last receive data
[8] Clear IRIC
[13] Clear IRIC
[10] Read the receive data. The first read is a dummy read.
[11] Wait for one byte to be received
(Set IRIC at the rise of the 9th clock)
[12] Detect stop condition
Slave transmit mode
Yes
No
No
Read ICDR
No
Yes
ICDRF = 1?
(n-2)th-byte
reception?
ESTP = 1 or
STOP = 1?
* n: Address + total number of bytes received
Figure 13.20 Sample Flowchart for Operations in Slave Receive Mode (HNDS = 0)