UM10503
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2012. All rights reserved.
User manual
Rev. 1.3 — 6 July 2012
1119 of 1269
NXP Semiconductors
UM10503
Chapter 43: LPC43xx I2C-bus interface
Subsequent to an address-match detection, interrupts will be generated after each data
byte is received for a slave-write transfer, or after each byte that the module “thinks” it has
transmitted for a slave-read transfer. In this second case, the data register will actually
contain data transmitted by some other slave on the bus which was actually addressed by
the master.
Following all of these interrupts, the processor may read the data register to see what was
actually transmitted on the bus.
43.7.7.2 Loss of arbitration in Monitor mode
In monitor mode, the I
2
C module will not be able to respond to a request for information by
the bus master or issue an ACK). Some other slave on the bus will respond instead. This
will most probably result in a lost-arbitration state as far as our module is concerned.
Software should be aware of the fact that the module is in monitor mode and should not
respond to any loss of arbitration state that is detected.
43.7.8 I
2
C Slave Address registers
These registers are readable and writable and are only used when an I
2
C interface is set
to slave mode. In master mode, this register has no effect. The LSB of ADR is the General
Call bit. When this bit is set, the General Call address (0x00) is recognized.
If these registers contain 0x00, the I
2
C will not acknowledge any address on the bus. All
four registers (including ADR0, see
) will be cleared to this disabled state on
reset.
43.7.9 I
2
C Data buffer register
In monitor mode, the I
2
C module may lose the ability to stretch the clock (stall the bus) if
the ENA_SCL bit is not set. This means that the processor will have a limited amount of
time to read the contents of the data received on the bus. If the processor reads the DAT
shift register, as it ordinarily would, it could have only one bit-time to respond to the
interrupt before the received data is overwritten by new data.
To give the processor more time to respond, a new 8-bit, read-only DATA_BUFFER
register will be added. The contents of the 8 MSBs of the DAT shift register will be
transferred to the DATA_BUFFER automatically after every nine bits (8 bits of data plus
ACK or NACK) has been received on the bus. This means that the processor will have
nine bit transmission times to respond to the interrupt and read the data before it is
overwritten.
The processor will still have the ability to read DAT directly, as usual, and the behavior of
DAT will not be altered in any way.
Table 991. I
2
C Slave Address registers (ADR - address 0x400A 1020 (ADR1) to 0x400A 1028
(ADR3) (I2C0) and 0x400E 0020 (ADR1) to 0x400E 0028 (ADR3) (I2C1)) bit
description
Bit
Symbol
Description
Reset value
0
GC
General Call enable bit.
0
7:1
Address
The I
2
C device address for slave mode.
0x00
31:8
-
Reserved. The value read from a reserved bit is not defined.
-