
NUC126
Aug. 08, 2018
Page
351
of 943
Rev 1.03
NUC12
6 S
E
RI
E
S
T
E
CH
NI
CA
L R
E
F
E
RE
NCE
MA
NUA
L
I2C_DAT
(SLA+R)
ACK
NAK
I2C_DAT
(Data)
NAK
I2C_DAT
(Data)
ACK
P
S
P
Sr
I2C_DAT=SLA+R
(STA,STO,SI,AA)=(0,0,1,x)
STATUS=0x40
STATUS=0x48
STATUS=0x08
STATUS=0xF8
STATUS=0x10
STATUS=0x50
STATUS=0x58
(STA,STO,SI,AA)=(0,0,1,1)
(STA,STO,SI,AA)=(0,0,1,0)
(STA,STO,SI,AA)=(1,1,1,x)
(STA,STO,SI,AA)=(0,1,1,x)
(STA,STO,SI,AA)=(1,0,1,x)
S
STATUS=0x08
(STA,STO,SI,AA)=(1,0,1,x)
Master to Slave
Slave to Master
Arbitration Lost
I2C_DAT
(Data)
ACK
(STA,STO,SI,AA)=(0,0,1,0)
(Arbitration Lost) ACK
STATUS=0x38
I2C_DAT
(SLA+R)
ACK/
NAK
I2C_DAT=SLA+R
(STA,STO,SI,AA)=(0,0,1,X)
(Arbitration Lost)
STATUS=0x38
(STA,STO,SI,AA)=(0,0,1,X)
...
I
2
C bus will be release;
Not addressed SLV mode will be enterd
...
(STA,STO,SI,AA)=(1,0,1,X)
A START will be transmitted
when the bus becomes free
Enter not addressed SLV
mode
Send a START when bus becomes
free
MR
MT
MR
Master Receiver
MR
I2C_DAT
(SLA+R)
ACK
I2C_DAT=SLA+R
(STA,STO,SI,AA)=(0,0,1,1)
(Arbitration Lost) ACK
STATUS= 0x68, 0x78, 0xB0
To corresponding states in
slave mode
Figure 6.11-11 Master Receiver Mode Control Flow
If the I
2
C is in Master mode and gets arbitration lost, the status code will be 0x38. In status 0x38, user
may set (STA, STO, SI, AA) = (1, 0, 1, X) to send START to re-start Master operation when bus
become free. Otherwise, user may set (STA, STO, SI, AA) = (0, 0, 1, X) to release I
2
C bus and enter
not addressed Slave mode.
Slave Mo
d
e
When reset default, I
2
C is not addressed and will not recognize the address on I
2
C bus. User can set
slave address by I2C_ADDRn (n=0~3) and set (STA, STO, SI, AA) = (0, 0, 1, 1) to let I
2
C recognize
the address sent by master. Figure 6.11-12 shows all the possible flow for I
2
C in Slave mode. Users
need to follow a proper flow (as shown in Figure 6.11-12 to implement their own I
2
C protocol.
If bus arbitration is lost in Master mode, I
2
C port switches to Slave mode immediately and can detect
its own slave address in the same serial transfer. If the detected address is SLA+W (Master want to
write data to Slave) after arbitration lost, the status code is 0x68. If the detected address is SLA+R
(Master want to read data from Slave) after arbitration lost, the status code is 0xB0.
Note:
During I
2
C communication, the SCL clock will be released when writing ‘1’ to clear SI flag in
Slave mode.