UM10360 All information provided in this document is subject to legal disclaimers. © NXP B.V. 2013. All rights reserved.
User manual Rev. 3 — 19 December 2013  432 of 841
NXP Semiconductors
UM10360
Chapter 19: LPC176x/5x I2C0/1/2
Any of the I
2
C interfaces brought out to pins other than those just mentioned use standard 
I/O pins. These pins also support I
2
C operation in fast mode and standard mode. The 
primary difference is that these pins do not include an analog spike suppression filter that 
exists on the specialized I
2
C pads. The I
2
C interfaces all include a digital filter that can 
serve the same purpose.
19.6 I
2
C operating modes
In a given application, the I
2
C block may operate as a master, a slave, or both. In the slave 
mode, the I
2
C hardware looks for any one of its four slave addresses and the General Call 
address. If one of these addresses is detected, an interrupt is requested. If the processor 
wishes to become the bus master, the hardware waits until the bus is free before the 
master mode is entered so that a possible slave operation is not interrupted. If bus 
arbitration is lost in the master mode, the I
2
C block switches to the slave mode 
immediately and can detect any of its own configured slave addresses in the same serial 
transfer.
19.6.1 Master Transmitter mode
In this mode data is transmitted from master to slave. Before the master transmitter mode 
can be entered, the I2CONSET register must be initialized as shown in Table 381
. I2EN 
must be set to 1 to enable the I
2
C function. If the AA bit is 0, the I
2
C interface will not 
acknowledge any address when another device is master of the bus, so it can not enter 
slave mode. The STA, STO and SI bits must be 0. The SI bit is cleared by writing 1 to the 
SIC bit in the I2CONCLR register. THe STA bit should be cleared after writing the slave 
address.
 
The first byte transmitted contains the slave address of the receiving device (7 bits) and 
the data direction bit. In this mode the data direction bit (R/W) should be 0 which means 
Write. The first byte transmitted contains the slave address and Write bit. Data is 
transmitted 8 bits at a time. After each byte is transmitted, an acknowledge bit is received. 
START and STOP conditions are output to indicate the beginning and the end of a serial 
transfer.
The I
2
C interface will enter master transmitter mode when software sets the STA bit. The 
I
2
C logic will send the START condition as soon as the bus is free. After the START 
condition is transmitted, the SI bit is set, and the status code in the I2STAT register is 
0x08. This status code is used to vector to a state service routine which will load the slave 
address and Write bit to the I2DAT register, and then clear the SI bit. SI is cleared by 
writing a 1 to the SIC bit in the I2CONCLR register.
When the slave address and R/W bit have been transmitted and an acknowledgment bit 
has been received, the SI bit is set again, and the possible status codes now are 0x18, 
0x20, or 0x38 for the master mode, or 0x68, 0x78, or 0xB0 if the slave mode was enabled 
(by setting AA to 1). The appropriate actions to be taken for each of these status codes 
are shown in Table 398
 to Table 401.
Table 381. I2C0CONSET, I2C1CONSET and I2C2CONSET used to configure Master mode
Bit 7 6 5 4 3 2 1 0
Symbol - I2EN STA STO SI AA - -
Value- 10000- -