![Intel IXP45X Developer'S Manual Download Page 883](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092883.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
August 2006
Developer’s Manual
Order Number: 306262-004US
883
I2C Bus Interface Unit—Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
The first byte transmission must be followed by an Ack pulse from the addressed slave.
When the transaction is a write, the I
2
C unit remains in master-transmit mode and the
addressed slave device stays in slave-receive mode. When the transaction is a read,
the I
2
C unit transitions to master-receive mode immediately following the Ack and the
addressed slave device transitions to slave-transmit mode. When a Nack is returned,
the I
2
C unit aborts the transaction by automatically sending a STOP and setting the ISR
bus error bit.
When the I
2
C unit is enabled and idle (no bus activity), it stays in slave-receive mode
and monitors the I
2
C bus for a START signal. Upon detecting a START pulse, the I
2
C
unit reads the first seven bits and compares them to those in the I
2
C Slave Address
Register (ISAR) and the general call address (00H). When the bits match those of the
ISAR register, the I
2
C unit reads the eighth bit (R/W# bit) and transmits an Ack pulse.
The I
2
C unit either remains in slave-receive mode (R/W# = 0) or transitions to slave-
transmit mode (R/W# = 1). For actions when a general call address is detected, see
“General Call Address” on page 891
.
21.5.3
I
2
C Acknowledge
Every I
2
C byte transfer must be accompanied by an acknowledge pulse, which is
always generated by the receiver (master or slave). The transmitter must release the
SDA line for the receiver to transmit the acknowledge pulse (see
In master-transmit mode, when the target slave receiver device cannot generate the
acknowledge pulse, the SDA line remains high. This lack of acknowledge (Nack) causes
the I
2
C unit to set the bus error detected bit in the ISR and generate the associated
interrupt (when enabled). The I
2
C unit aborts the transaction by generating a STOP
automatically.
In master-receive mode, the I
2
C unit signals the slave-transmitter to stop sending data
by using the negative acknowledge (Nack). The Ack/Nack bit value driven by the I
2
C
bus is controlled by the Ack/Nack bit in the ICR. The bus error detected bit in the ISR is
not set for a master-receive mode Nack (as required by the I
2
C bus protocol). The I
2
C
unit automatically transmits the Ack pulse, based on the Ack/Nack ICR bit, after
Figure 194. Data Format of First Byte in Master Transaction
B4259-01
4
0
LSB
7-Bit
I
2
C
Slave
Address
7
MSB
Read/Write Transaction
(0) Write
(1) Read