Inter-Integrated Circuit Controller
7-96
Figure 7–39. Master Transmitter Mode, RM = 0, DMA
Start
Is
Bus free
(BB=0)
?
Write I2C_CON
with 8603h.
End
Read I2C_STAT.
No
Yes
Is
ACK returned
(NACK=0)
?
STT and STP are
cleared to 0 by hardware.
No
Yes
Reprogram
the registers.
STT = 1
(new start)
?
Yes
No
STP = 1
?
No
Are
n bytes
transferred
(ARDY=1)
?
Set appropriate values to every
bit of I2C_CON. I2C_EN bit must be set
to 1 to take I2C out of reset condition. Setting
I2C_EN and setting other mode bits can be done
simultaneously.
Yes
[EXPECTED COMMAND]
At the beginning,
(STT,STP) = (1.0), (1.1), (1.0), (1.1)
in the middle,
(STT, STP) = (0.0), (0.1)
At the end,
(STT, STP) = (0.1)
[EXPECTED I2C_IE]
I2C_IE = 00111b
Yes
Is
DMA
interrupt
received
?
No
No
Yes
The I2C goes into slave receiver mode.
Read I2C_STAT.
Is I2C
interrupt
received
?
No
Take necessary
actions.