![Intel IXP45X Developer'S Manual Download Page 888](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092888.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors—I2C Bus Interface Unit
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
Developer’s Manual
August 2006
888
Order Number: 306262-004US
When the CPU needs to read data, the I
2
C unit transitions from slave-receive mode to
master-transmit mode to transmit the start address and immediately following the ACK
pulse transitions to master-receive mode to wait for the reception of the read data from
the slave device (see
). It is also possible to have multiple transactions
during an I
2
C operation such as transitioning from master-receive to master-transmit
through a repeated start or Data Chaining (see
).
wave forms of SDA and SCL for a complete data transfer.
Read one byte
of I
2
C Data from
the IDBR
Master-receive
only
• Data receive mode of I
2
C master operation.
• Eight bits are read from the serial bus, collected in the shift register
then transferred to the IDBR after the Ack/Nack bit is read.
• The CPU reads the IDBR when the IDBR Receive Full bit is set and
the Transfer Byte bit is clear. If enabled, a IDBR Receive Full
Interrupt is signalled to the CPU.
• When the IDBR is read, if the Ack/Nack Status is clear (indicating
Ack), the IXP45X/IXP46X network processors
will write the Ack/
Nack Control bit and set the Transfer Byte bit to initiate the next
byte read.
• If the Ack/Nack Status bit is set (indicating Nack), Transfer Byte bit
is clear, STOP bit in the ICR is set, and Unit Busy bit in the ISR is set,
then the last data byte has been read into the IDBR and the I
2
C Bus
Interface Unit is sending the STOP.
• If the Ack/Nack Status bit is set (indicating Nack), Transfer Byte bit
is clear, but the STOP bit is clear, then the CPU has two options: 1.
set the START bit, write a new target address to the IDBR, and set
the Transfer Byte bit which will send a repeated start condition, 2.
set the Master Abort bit and leave the Transfer Byte clear which will
send a STOP only.
Transmit
Acknowledge to
slave-
transmitter
Master-receive
only
• As a master-receiver, the I
2
C Bus Interface Unit will generate the
clock for the acknowledge pulse. The I
2
C Bus Interface Unit is also
responsible for driving the SDA line during the Ack cycle.
• If the next data byte is to be the last transaction, the CPU will set
the Ack/Nack Control bit for Nack generation.
• See
Generate a
Repeated START
to chain I
2
C
transactions
Master-transmit
Master-receive
• If data chaining is desired, a repeated START condition is used
instead of a STOP condition.
• This occurs after the last data byte of a transaction has been written
to the bus.
• The CPU will write the next target slave address and the R/W# bit to
the IDBR, set the START bit, and set the Transfer Byte bit.
• See
“Start and Stop Bus States” on page 879
.
Generate a
STOP
Master-transmit
Master-receive
• Generated after the CPU writes the last data byte on the bus.
• CPU generates a STOP condition by setting the STOP bit in the ICR.
• See
“Start and Stop Bus States” on page 879
.
Table 279.
Master Transactions (Sheet 2 of 2)
I
2
C Master
Action
Mode of
Operation
Definition
Figure 198. Master-Receiver Read from Slave-Transmitter
B4263-01
Master to Slave
Slave to Master
START
Slave Address
R/
W#
1
ACK
Data
Byte
ACK
Data
Byte
STOP
N Bytes + ACK
ACK
Default
Slave-Receive
Mode
First Byte
Read