3-26 Computer Group Literature Center Web Site

System Memory Controller (SMC)
3
Figure 3-6. Programming Sequence for I2C Random Read
READ
I2C
STATUS REG
CMPLT=1? N
Y
LOAD “WORD ADDR x” TO
I2C
TRANSMITTER DATA REG
READ
I2C
STATUS REG
CMPLT=ACKIN=1? N
Y
LOAD “$09” (START CONDITION) TO
I2C
CONTROL REG
LOAD “DEVICE ADDR+WR BIT” TO
I2C
TRANSMITTER DATA REG
READ
I2C
STATUS REG
CMPLT=ACKIN=1? N
Y
LOAD “$05” (STOP CONDITION) TO
I2C
CONTROL REG
LOAD “DUMMY DATA” TO
I2C
TRANSMITTER DATA REG
READ
I2C
STATUS REG
CMPLT=1? N
Y
END
LOAD “$09” (REPEATED START
CONDITION) TO
I2C
CONTROL REG
LOAD “DEVICE ADDR+RD BIT” TO
I2C
TRANSMITTER DATA REG
READ
I2C
STATUS REG
CMPLT=ACKIN=1? N
Y
LOAD “DUMMY DATA” TO
I2C
TRANSMITTER DATA REG
READ
I2C
STATUS REG
CMPLT=DATIN=1? N
Y
BEGIN
READ
I2C
RECEIVER DATA REG
STARTM
S
B
SDA
DEVICE ADDR
W
R
A
C
K
WORD ADDR x
A
C
KSTART M
S
B
DEVICE ADDR
R
D
A
C
K
DATA x
N
O
A
C
K
STOP
ACK and DATA from Slave Devi
ce
*
*
*
*

(*)

:
Stop condition should be generated to abort the transfer after a software wait loop (~1ms) has been expire
d