Section 17 I2C Bus Interface 2 (IIC2)
Slave receive mode
Clear AAS in ICSR
[1] Clear the AAS flag.
[1]
[2] Set acknowledge to the transmit device.
[3] Dummy-read ICDRR.
Clear ACKBT in ICIER to 0
Dummy-read ICDRR
[2]
[3]
[4] Wait for 1 byte to be received.
[5] Check whether it is the (last receive - 1).
[6] Read the receive data.
Read RDRF in ICSR
No
[4]
RDRF=1 ?
[7] Set acknowledge of the last byte.
[8] Read the (last byte - 1) of receive data.
[9] Wait the last byte to be received.
[10] Read for the last byte of receive data.
Yes
Yes
Last receive
- 1?
[5]
[6]
No
Read ICDRR
Set ACKBT in ICIER to 1
[7]
[8]
Read ICDRR
Read RDRF in ICSR
[9]
No
RDRF=1 ?
Yes
[10]
Read ICDRR
End
Supplementary explanation: When one byte is received, steps [2] to [6] are skipped after step [1],
before jumping to step [7]. The step [8] is dummy-read in ICDRR.
Figure 17.20 Sample Flowchart for Slave Receive Mode
Rev. 3.00 Sep. 10, 2007 Page 361 of 528
REJ09B0216-0300