User manual

...the world's most energy friendly microcontrollers
2012-04-24 - Giant Gecko Family - d0053_Rev0.96 425
www.energymicro.com
As when operating as a master transmitter, arbitration can be lost as a master receiver. When this
happens the ARBLOST interrupt flag in I2Cn_IF is set, and the master has a possibility of being selected
as a slave given the correct conditions.
Table 16.5. I
2
C Master Receiver
I2Cn_STATEDescription I2Cn_IF Required
interaction
Response
ADDR
+R ->
TXDATA
ADDR+R will be sent
STOP STOP will be sent and bus released.
0x57 START transmitted START interrupt flag
(BUSHOLD interrupt
flag)
STOP +
START
STOP will be sent and bus released. Then a
START will be sent when bus becomes idle.
ADDR
+R ->
TXDATA
ADDR+R will be sent
STOP STOP will be sent and bus released.
0x57 Repeated START
transmitted
START interrupt
flag(BUSHOLD
interrupt flag)
STOP +
START
STOP will be sent and bus released. Then a
START will be sent when bus becomes idle.
- ADDR+R transmitted TXBL interrupt flag
(TXC interrupt flag)
None
RXDATA Start receiving
STOP STOP will be sent and the bus released
START Repeated START will be sent
0x93 ADDR+R transmitted,
ACK received
ACK interrupt
flag(BUSHOLD)
STOP +
START
STOP will be sent and the bus released. Then
a START will be sent when the bus becomes
idle
CONT +
RXDATA
Continue, start receiving
STOP STOP will be sent and the bus released
START Repeated START will be sent
0x9B ADDR+R
transmitted,NACK
received
NACK(BUSHOLD)
STOP +
START
STOP will be sent and the bus released. Then
a START will be sent when the bus becomes
idle
ACK +
RXDATA
ACK will be transmitted, reception continues
NACK +
CONT +
RXDATA
NACK will be transmitted, reception continues
ACK/
NACK +
STOP
ACK/NACK will be sent and the bus will be
released.
ACK/
NACK +
START
ACK/NACK will be sent, and then a repeated
start condition.
0xB3 Data received RXDATA interrupt
flag(BUSHOLD
interrupt flag)
ACK/
NACK +
STOP +
START
ACK/NACK will be sent and the bus will be
released. Then a START will be sent when the
bus becomes idle
- Stop received MSTOP interrupt flag None