
21 I2C Slave (I2CS)
S1C17003 TECHNICAL MANUAL
EPSON
21-9
I2CS
SCL1 (input)
SDA1 (input)
SDA1 (output)
RXRDY
NAK_ANS
NAK_ANS setting period
Receive interrupt
6
7
8
9
1
D0
D2
D1
D7
D6
D5
D4
D3
D2
D0
D1
ACK
NAK
2
3
4
5
6
7
8
9
Figure 21.5.3 Setting NAK_ANS and NAK Response Timing
Terminating data transmission/reception (detecting a STOP condition)
Data transfer will be terminated when the master generates a STOP condition. The STOP condition is a state in
which the SDA line is pulled up from low to high with the SCL line held at high.
SDA1 (input)
SCL1 (input)
STOP condition
Table 21.5.4 STOP Condition
If a STOP condition is detected while the I2C slave module is selected as the slave device (SELECTED = 1),
the I2C slave module sets DA_STOP (D0/I2CS_STAT register) to 1. At the same time, it puts the SDA1 and
SCL1 pins into high-impedance state and initializes the I2C slave communication process to enter standby state
that is ready to detect the next START condition. Also SELECTED and BUSY are reset to 0.
DA_STOP: Stop Condition Detect Bit in the I2C Slave Status (I2CS_STAT) Register (D0/0x4368)
An interrupt can be generated when DA_STOP is set to 1, so a communication terminating process should be
performed in the interrupt handler routine. DA_STOP is cleared by writing 1.
Disabling data transmission/reception
After data transfer has finished, write 0 to the COM_MODE (D0/I2CS_CTL register) to disable data transmission/
reception.
Always make sure that the BUSY and SELECTED flags are 0 before data transmission/reception is disabled.
To deactivate the I2C slave module, set I2C_EN (D7/I2CS_CTL register) to 0.
Timing charts
PCLK
SCL1 (input)
SCL1 (output)
SDA1 (input)
SDA1 (output)
R/W
BUSY
SELECTED
TXEMP
TXUDF
DA_NAK
DA_STOP
Transmit data shift register
SDATA[7:0]
Interrupt
A6
valid
D[7:0]
A5
A4
A3
A2
A1
A0
D7
D6
R/W = 1
START
condition
Slave address reception
Data transmission
Clock stretch
Transmit interrupt
shift
ACK
Figure 21.5.5 I2C Slave Timing Chart 1 (START condition
→ data transmission)