
R8C/38T-A Group
21. Clock Synchronous Serial Interface
Under development Preliminary document
Specifications in this document are tentative and subject to change.
R01UH0241EJ0010 Rev.0.10
Page 505 of 730
Aug 05, 2011
Figure 21.22
Operation Timing in Master Receive Mode (I2C bus Interface Mode) (2)
21.4.2.4.1
Flow for Generating Repeat Start Condition during I2C Master
Receive Mode
To generate a repeat start condition after transmitting NACK, use the following procedure:
(1) The same applies as the flow for generating a stop condition until step (5) in 24.4.2.4.
(2) After the RDRF bit in the SISR register is set to 1 at the rising edge of the 9 clock of the receive clock,
generate a repeat start condition (write 1 to the BBSY bit and 0 to the SCP bit in the SICR2 register with
the MOV instruction).
(3) Read the SIRDR register after setting to master mode
(1). Then, set the RCVD bit in the SICR1 register to
0 (next receive operation continues).
(4) Write the data indicating a slave address and R/W to the SITDR register.
Note:
1. After a repeat start condition is generated (by writing 1 to the BBSY bit and 0 to the SCP bit with the
MOV instruction), the SCL and SDA signals are held low after 2.5 cycles or later. Be sure to set to
master transmit mode before that.
21.4.2.4.2
Operation when Stop Condition is Detected during I2C Master
Receive Operation
The following shows the operation and software flow when a stop condition is detected during I2C master
receive operation.
(1) Detect a stop condition and enter slave receive mode.
(2) Confirm that the BBSY bit in the SICR2 register is 0.
(3) Clear the STOP bit in the SISR register to 0.
(4) Reset the control block.
SDA
(master output)
SCL
(master output)
12
89
67
45
3
SDA
(slave output)
RCVD bit in
SICR1 register
SIRDR register
SISDR register
Data n - 1
Program
processing
(6) Generate a stop condition.
(8) Set to slave receive mode.
9
Data n
RDRF bit in
SISR register
Data n
Data n - 1
(5) Read SIRDR register after
setting RCVD bit to 1.
(7) Set RCVD bit to 0 after reading
SIRDR register.
b7
b6
b5
b4
b3
b2
b1
b0
A/A
A