UM10413
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2011. All rights reserved.
User manual
Rev. 1 — 16 December 2011
141 of 268
NXP Semiconductors
UM10413
MPT612 User manual
16.8.8 Some special cases
The I
2
C hardware has facilities to handle the following special cases that can occur during
a serial transfer:
16.8.9 Simultaneous repeated Start conditions from two masters
A repeated Start condition can be generated in the master transmitter or master receiver
modes. A special case occurs if another master simultaneously generates a repeated
Start condition (see
). Until this occurs, arbitration is not lost by
either master since they were both transmitting the same data.
If the I
2
C hardware detects a repeated Start condition on the I
2
C-bus before generating a
repeated Start condition itself, it releases the bus, and no interrupt request is generated. If
another master frees the bus by generating a Stop condition, the I
2
C block transmits a
normal Start condition (state 0x08), and a retry of the total serial data transfer can
commence.
16.8.10 Data transfer after loss of arbitration
Arbitration can be lost in the master transmitter and master receiver modes (see
). Loss of arbitration is indicated by the following states in I2STAT; 0x38,
0x68, 0x78, and 0xB0 (see
and
).
If the STA flag in I2CON is set by the routines which service these states, then, if the bus
is free again, a Start condition (state 0x08) is transmitted without intervention by the CPU,
and a retry of the total serial transfer can commence.
16.8.11 Forced access to the I
2
C-bus
In some applications, it can be possible for an uncontrolled source to cause a bus
hang-up. In such situations, the problem may be caused by interference, temporary
interruption of the bus or a temporary short-circuit between SDA and SCL.
If an uncontrolled source generates a superfluous Start or masks a Stop condition, then
the I
2
C-bus stays busy indefinitely. If the STA flag is set and bus access is not obtained
within a reasonable amount of time, then a forced access to the I
2
C-bus is possible. This
Table 138. Miscellaneous states
Status
code
(I2CSTAT)
Status of I
2
C-bus
and hardware
Application software response
Next action taken by I
2
C hardware
To/from I2DAT
To I2CON
STA STO SI
AA
0xF8
no relevant state
information available;
SI = 0
no I2DAT action
no I2CON action
wait or proceed with current transfer
0x00
bus error during MST
or selected slave
modes, due to an
illegal start or stop
condition. State 0x00
can also occur when
interference causes
the I
2
C block to enter
an undefined state.
no I2DAT action
0
1
0
X
only internal hardware is affected in the
MST or addressed SLV modes. In all
cases, bus is released and I
2
C block is
switched to the not-addressed SLV mode.
STO is reset.