
16-8
Seiko Epson Corporation
S1C31D50 TECHNICAL MANUAL
(Rev. 1.00)
16.4.3.
Data Reception in Master Mode
A data receiving procedure in master mode and the I2C Ch.
n
operations are shown below. Figures
16.4.3.1 and show an operation example and a flowchart, respectively.
Data receiving procedure
1.
Issue a START condition by setting the I2C_
n
CTL.TXSTART bit to 1.
2.
Wait for a transmit buffer empty interrupt (I2C_
n
INTF.TBEIF bit = 1) or a START condition interrupt
(I2C_
n
INTF.STARTIF bit = 1).
Clear the I2C_
n
INTF.STARTIF bit by writing 1 after the interrupt has occurred.
3.
Write the 7-bit slave address to the I2C_
n
TXD.TXD[7:1] bits and 1 that represents READ as the data
transfer direction to the I2C_
n
TXD.TXD0 bit.
4.
(When DMA is used) Configure the DMA controller and set a DMA transfer request enable bit in
the I2C_
n
RBFDMAEN register to 1 (DMA transfer request enabled). (This automates the data
receiving procedure Steps 5, 7, and 9.)
5.
(When DMA is not used) Wait for a receive buffer full interrupt (I2C_
n
INTF.RBFIF bit = 1)
generated when a one-byte reception has completed.
6.
Perform one of the operations below when the last or next-to-last data is received.
i.
When the next-to-last data is received, write 1 to the I2C_
n
CTL.TXNACK bit to send a NACK
after the last data is received, and then go to Step 7.
ii.
When the last data is received, read the received data from the I2C_
n
RXD register and set
the I2C_
n
CTL.TXSTOP to 1 to generate a STOP condition. Then go to Step 10.
7.
(When DMA is not used) Read the received data from the I2C_
n
RXD register.
8.
8
.
If a NACK reception interrupt (I2C_
n
INTF.NACKIF bit = 1) has occurred, clear the
I2C_
n
INTF.NACKIF bit and issue a STOP condition by setting the I2C_
n
CTL.TXSTOP bit to 1. Then
go to Step 10 or Step 1 if making a retry.
9.
(When DMA is not used) Repeat Steps 5 to 7 until the end of data reception.
10.
Wait for a STOP condition interrupt (I2C_
n
INTF.STOPIF bit = 1).
Clear the I2C_
n
INTF.STOPIF bit by writing 1 after the interrupt has occurred.
Data receiving operations
Generating a START condition
It is the same as the data transmission in master mode.
Sending slave address
It is the same as the data transmission in master mode. Note, however, that the I2C_
n
TXD.TXD0
bit must be set to 1 that represents READ as the data transfer direction to issue a request to the
slave to send data.
Receiving data
After the slave address has been sent, the slave device sends an ACK and the first data. The I2C
Ch.
n
sets the I2C_
n
INTF.RBFIF bit to 1 after the data reception has completed. Furthermore, the
I2C Ch.
n
returns an ACK. To return a NACK, such as for a response after the last data has been
received, write 1 to the I2C_
n
CTL.TXNACK bit before the I2C_
n
INTF.RBFIF bit is set to 1.
The received data can be read out from the I2C_
n
RXD register after a receive buffer full interrupt
has occurred. The I2C Ch.
n
pulls down SCL to low and enters standby state until data is read out
from the I2C_
n
RXD register.
This reading triggers the I2C Ch.
n
to start subsequent data reception.
Содержание S1C31D50
Страница 461: ...25 1 Seiko Epson Corporation S1C31D50 TECHNICAL MANUAL Rev 1 00 25 Package TQFP12 48PIN ...
Страница 462: ...25 2 Seiko Epson Corporation S1C31D50 TECHNICAL MANUAL Rev 1 00 QFP13 64PIN ...
Страница 463: ...25 3 Seiko Epson Corporation S1C31D50 TECHNICAL MANUAL Rev 1 00 TQFP14 80PIN ...
Страница 464: ...25 4 Seiko Epson Corporation S1C31D50 TECHNICAL MANUAL Rev 1 00 QFP15 100PIN ...