English
Language : 

EFM32WG Datasheet, PDF (419/834 Pages) List of Unclassifed Manufacturers – The EFM32WG Wonder Gecko is the ideal choice for demanding 8-, 16-, and 32-bit energy sensitive applications.
Figure 16.10. I2C Master State Machine
...the world's most energy friendly microcontrollers
0/1
Idle/busy
Waiting
for idle
57
S
Bus state/event
Transm it t ed by self
Received from slave
S
START
condition
P
STOP
condition
Sr Repeat ed START condit ion
A ACK
ADDR W
ADDR R
N NACK
Slave address + writ e
(R/W bit cleared)
Slave address + read
(R/W bit set )
Bus st at e (STATE)
Interrupt flag set
Interaction required. Wait-
states inserted until m anual
or automatic interaction has
been performed
Master transm itter
97
D7
ADDR W
A
DATA
A
P
0
9F
N
Sr
57
DF
N
Arb. lost
1
Master receiver
93
B3
ADDR R
A
DATA
A
P
0
Sr
57
9B
N
Arbitration lost
N
X Arb. lost
1
ADDR R Arb. lost, ADDR m atch
73 Slave t ransm it t er
ADDR W Arb. lost, ADDR m atch
71 Slave receiver
Go t o st at e
ADDR X Arb. lost, no m atch
1
Bus reset
P
0
16.3.7.2 Interactions
Whenever the I2C module is waiting for interaction from software, it holds the bus clock SCL low, freezing
all bus activities, and the BUSHOLD interrupt flag in I2Cn_IF is set. The action(s) required by software
depends on the current state the of the I2C module. This state can be read from the I2Cn_STATE register.
As an example, Table 16.4 (p. 422) shows the different states the I2C goes through when operating
as a Master Transmitter, i.e. a master that transmits data to a slave. As seen in the table, when a start
condition has been transmitted, a requirement is that there is an address and an R/W bit in the transmit
buffer. If the transmit buffer is empty, then the BUSHOLD interrupt flag is set, and the bus is held until
data becomes available in the buffer. While waiting for the address, I2Cn_STATE has a value 0x57,
which can be used to identify exactly what the I2C module is waiting for.
Note
The bus would never stop at state 0x57 if the address was available in the transmit buffer.
The different interactions used by the I2C module are listed in Table 16.3 (p. 420) in prioritized order. If
a set of different courses of action are possible from a given state, the course of action using the highest
priority interactions, that first has everything it is waiting for is the one that is taken.
2013-05-08 - Wonder Gecko Family - d0233_Rev0.50
419
www.energymicro.com