
17 I2C SLAVE (I2CS)
S1C17705 TECHNICAL MANUAL
Seiko Epson Corporation
17-3
The master device enters a standby state until the wait request is canceled (the SCL line goes high). The clock
stretch function in this module is disabled by default. When using the clock stretch function, set CLKSTR_EN/
I2CS_CTL register to 1 before starting data communication.
Asynchronous address detection function
The I2CS module operation clock (PCLK) frequency must be set eight-times or higher than the transfer rate
during data transfer. However, the PCLK frequency can be lowered to reduce current consumption if no other
processing is required during standby for data transfer. The asynchronous address detection function is provided
to detect the I2C slave address sent from the master in this status.
The asynchronous address detection function in this module is disabled by default. When using the asynchro-
nous address detection function, set ASDET_EN/I2CS_CTL register to 1.
If the slave address sent from the master has matched with one that has been set in this I2CS module when the
asynchronous address detection function has been enabled, the I2CS module generates a bus status interrupt
and returns NAK to the I2C master to request for resending the slave address.
Set the PCLK frequency to eight-times or higher than the transfer rate and reset ASDET_EN to 0 in the inter-
rupt handler routine. Data transfer will be able to resume normally after the master retries transmission. After
the master generates a stop condition to put the I2C bus into free status, the asynchronous address detection
function can be enabled again to lower the operating speed.
Notes: When the asynchronous address detection function is enabled, the I2C bus signals are input
without passing through the noise filter. Therefore, the slave address may not be detected in a
high-noise environment.
When the asynchronous address detection function is enabled, data transfer cannot be per-
formed even if the PCLK frequency is eight-times or higher than the transfer rate. Be sure to
disable the asynchronous address detection function during normal operation.
Noise filter
The I2CS module includes a function to remove noise from the SDA1 and SCL1 input signals. This function is
enabled by setting NF_EN/I2CS_CTL register to 1.
Data Transfer Control
17.5
Make the following settings before starting data transfers.
(1) Initialize the I2CS module. See Section 17.4.
(2) Set the interrupt conditions to use I2CS interrupt. See Section 17.6.
Note: Make sure that the I2CS module is disabled (I2CSEN/I2CS_CTL register = 0) before setting the
conditions above.
Enabling data transfers
First, set I2CSEN/I2CS_CTL register to 1 to enable I2CS operation. This makes the I2CS in ready-to-transmit/
receive status in which a start condition can be detected.
Note: Do not set the I2CSEN bit to 0 while the I2CS module is transmitting/receiving data.
Starting data transfer
To start data transmission/reception, set COM_MODE/I2CS_CTL register to 1 to enable data communications.
When the slave address for this module that has been sent from the master is received after a start condition is
detected, the I2CS module returns an ACK (SDA1 = low) and starts operating for data reception or data trans-
mission according to the transfer direction bit that has been received with the slave address.
When COM_MODE is 0 (default), the I2CS module does not send back a response if the master has sent the
slave address of this module (it is regarded as that the I2CS module has returned a NAK to the master).