![NXP Semiconductors LPC43Sxx Скачать руководство пользователя страница 1290](http://html1.mh-extra.com/html/nxp-semiconductors/lpc43sxx/lpc43sxx_user-manual_17218271290.webp)
UM10503
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2015. All rights reserved.
User manual
Rev. 2.1 — 10 December 2015
1290 of 1441
NXP Semiconductors
UM10503
Chapter 46: LPC43xx/LPC43Sxx 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.
46.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.
46.7.8 I
2
C Slave Address registers 1 to 3
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.
All four registers (including ADR0, see
) will be cleared to this disabled state on
reset.
You should program the Address field of all four registers to a non-zero value if you
support slave operating mode. Otherwise a zero in any of the four registers will make the
I2C module respond to the General Call address (0x00) unconditionally, i.e. irrespective of
the state of the GC bit. In that case the I2C module state machine would enter state 0x60
(“own SLA+W received”), not state 0x70 (“General Call address received”) as expected
for a General Call.
Only with all four Address fields set to non-zero values, the GC bit takes effect, and (if set)
the state machine enters state 0x70 when receiving a General Call. Responding to a
General Call is enabled if the GC bit is set in at least one of the four registers.
All four slave address comparators are always active. In case you want to be addressed
by a single address only, program this address into ADR0, and duplicate the address into
the three remaining registers. Set the corresponding MASKn register of these duplicates
to 0x00.
For the description of ADR0, see
. The functionality of all ADRn registers is
identical.
Table 1094.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.
-