![Intel IXP45X Скачать руководство пользователя страница 879](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092879.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
August 2006
Developer’s Manual
Order Number: 306262-004US
879
I2C Bus Interface Unit—Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
When the I
2
C Bus Interface Unit receives an address that matches the 7-bit address
found in the I
2
C Slave Address Register (ISAR) or the General Call Address (00H), the
interface will either remain in Slave-Receive mode or transition to Slave-Transmit
mode. This is determined by the Read/Write (R/W#) bit (the least significant bit of the
byte containing the slave address). If the
R/W# bit is low, the master initiating the transaction intends to do a write and the I
2
C
Bus Interface Unit will remain in Slave-Receive mode. If the R/W# is high, the initiating
master wants to read data and the slave transitions to Slave-Transmit mode. Slave
operation is further defined in
“Slave Operations” on page 889
When the IXP45X/IXP46X network processors want to initiate a read or write on the I
2
C
bus, the I
2
C Bus Interface Unit will transition from the default Slave-Receive mode to
Master-Transmit mode. If the processor wants to write data, the interface remains in
Master-Transmit mode after the address transfer has completed. (see
) for START information). If the processor wants to read data,
the I
2
C Bus Interface Unit will transmit the start address, then transition to Master-
Receive mode. Master operation is further defined in
“Master Operations” on page 886
21.4.3
Start and Stop Bus States
The I
2
C bus defines a transaction START and a transaction STOP bus state that are
used at the beginning and end of the transfer of one to an unlimited number of bytes
on the bus.
The IXP45X/IXP46X network processors use the START and STOP bits in the I
2
C Control
Register (ICR) to:
• Initiate an additional byte transfer
• Initiate a START condition on the I
2
C bus
• Enable Data Chaining (repeated START)
• Initiate a STOP condition on the I
2
C bus
summarizes the definition of the START and STOP bits in the ICR.
shows the relationship between the SDA and SCL lines for a START and
STOP condition.
Table 278.
START and STOP Bit Definitions
STOP
Bit
START
Bit
Condition
Notes
0
0
No START or
STOP
No START or STOP condition is sent by the I
2
C Bus Interface Unit. This is
used when multiple data bytes need to be transferred.
0
1
START Condition
and
Repeated START
The I
2
C Bus Interface Unit will send a START condition and transmit the
contents of the 8 bit IDBR after the START. The IDBR must contain the 7-bit
address and the R/W# bit before a START is initiated.
For a repeated start, the IDBR contents will contain the target slave address
and the R/W# bit. This enables multiple transfers to different slaves without
giving up the bus.
The interface will stay in Master-Transmit mode if a write is used or
transition to master-receive mode if a read is requested.
1
X
STOP Condition
In Master-Transmit mode, the I
2
C Bus Interface Unit will transmit the 8-bit
IDBR and then send a STOP on the I
2
C bus.
In Master-Receive mode, the Ack/Nack Control bit in the ICR must be
changed to a negative Ack (see
). The I
2
C Bus Interface Unit
will write the Nack bit (Ack/Nack Control bit must be 1), receive the data
byte in the IDBR, then send a STOP on the I
2
C bus.