
NUC126
Aug. 08, 2018
Page
354
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
SDA signal while the SCL signal is high. Each master checks if the SDA signal on the bus corresponds
to the generated SDA signal. If the SDA signal on the bus is low but it should be high, then this master
has lost arbitration. The device that has lost arbitration can generate SCL pulses until the byte ends
and must then release the bus and go into slave mode. The arbitration procedure can continue until all
the data is transferred. This means that in multi-master system each master must monitor the bus for
collisions and act accordingly.
DATA 1
DATA 2
SDA
SCL
S
master 1 loses arbitration
DATA1 != SDA
Arbitration procedure of two masters
Figure 6.11-14 Arbitration Lost
When I2C_STATU
S = 0x38, an “Arbitration Lost” is received. Arbitration lost event maybe
occur during the send START bit, data bits or STOP bit. User could set (STA, STO, SI,
AA) = (1, 0, 1, X) to send START again when bus free, or set (STA, STO, SI, AA) = (0, 0,
1, X) to not addressed Slave mode. User can detect bus free by ONBUSY
(I2C_STATUS1 [8]).
When I2C_STATUS = 0x00, a “Bus Error” is received. To recover I
2
C bus from a bus
error, STO should be set and SI should be cleared, and then STO is cleared to release
bus.
–
Set (STA, STO, SI, AA) = (0, 1, 1, X) to stop current transfer
–
Set (STA, STO, SI, AA) = (0, 0, 1, X) to release bus
6.11.5.3 PDMA Transfer Function
I
2
C controller supports PDMA transfer function.
When TXPDMAEN (I2C_CTL1 [0]) is set to 1, the controller will issue request to PDMA controller to
start the PDMA transmission process automatically. When RXPDMAEN (I2C_CTL1 [1]) is set to 1, the
I
2
C controller will start the receive PDMA process. I
2
C controller will issue the request to PDMA
controller automatically when there is data written into the received BUFFER or the status of
RXEMPTY (I2C_STATUS1 [5]) is set to 0.
When I
2
C enter PDMA mode, the mostly status interrupt will be masked. Let the interrupt not occur
besides the bus error or NACK or STOP interrupt (0x20, 0x30, 0x38, 0x48, 0x58, 0x00, 0xA0, 0xC0,
0x88 and 0x98).
Set the PDMASTR (I2C_CTL1 [8]) only the I
2
C controller in master TX mode. If PDMASTR is cleared
to 0, I
2
C will send STOP automatically after PDMA transfer done and buffer empty. If PDMASTR is set
to 1, SI will be set to 1 and I
2
C bus will be stretched by hardware after PDMA transfer done and buffer