Section 16 I
2
C Bus Interface 2 (IIC2)
Rev. 4.00 Sep. 14, 2005 Page 505 of 982
REJ09B0023-0400
No
Yes
RDRF=1 ?
No
Yes
RDRF=1 ?
Last receive
- 1?
Slave receive mode
Clear AAS in ICSR
Clear ACKBT in ICIER to 0
Dummy-read ICDRR
Read RDRF in ICSR
Read ICDRR
Set ACKBT in ICIER to 1
Read ICDRR
Read RDRF in ICSR
Read ICDRR
End
No
Yes
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[1] Clear the AAS flag.
[2] Set acknowledge to the transmit device.
[3] Dummy-read ICDRR.
[4] Wait for 1 byte to be received.
[5] Check whether it is the (last receive - 1).
[6] Read the receive data.
[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.
Note: When the size of receive data is only one byte in
reception, steps [2] to [6] are skipped after
step [1], before jumping to step [7]. The step [8]
is dummy-read in ICDRR.
However, when the size of receive data is two
bytes and more, steps [2] to [6] are not skipped
after step [1].
Figure 16.21 Sample Flowchart for Slave Receive Mode