![Intel IXP45X Developer'S Manual Download Page 902](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092902.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
902
Order Number: 306262-004US
21.10.4
I
2
C Data Buffer Register - IDBR
The I
2
C Data Buffer Register is used by the IXP45X/IXP46X network processors to
transmit and receive data from the I
2
C bus. The IDBR is accessed by the IXP45X/
IXP46X network processors on one side and by the I
2
C shift register on the other. Data
coming into the I
2
C Bus Interface Unit is received into the IDBR after a full byte has
been received and acknowledged. Data going out of the I
2
C Bus Interface Unit is
written to the IDBR by the processor core and sent to the serial bus.
When the I
2
C Bus Interface Unit is in transmit mode (master or slave), the processor
writes data to the IDBR over the internal bus. This occurs when a master transaction is
initiated or when the IDBR Transmit Empty Interrupt is signalled. Data is moved from
the IDBR to the shift register when the Transfer Byte bit is set. The IDBR Transmit
Empty Interrupt will be signalled (if enabled) when a byte has been transferred on the
I
2
C bus and the acknowledge cycle is complete. If the IDBR is not written by the
processor (and a STOP condition was not in place) before the I
2
C bus is ready to
transfer the next byte packet, the I
2
C Bus Interface Unit will insert wait states until the
processor writes the IDBR and sets the Transfer Byte bit.
When the I
2
C Bus Interface Unit is in receive mode (master or slave), the IXP45X/
IXP46X network processors will read IDBR data over the internal bus. This occurs when
the IDBR Receive Full Interrupt is signalled. The data is moved from the shift register to
the IDBR when the Ack cycle is complete. The I
2
C Bus Interface Unit will insert wait
states until the IDBR has been read. Refer to
Section 21.5.3, “I2C Acknowledge” on
for acknowledge pulse information in receiver mode. After the processor
reads the IDBR, the Ack/Nack Control bit is written and the Transfer Byte bit is written,
allowing the next byte transfer to proceed on the I
2
C Bus. The IDBR register is 00H
after reset.
21.10.5
I
2
C Bus Monitor Register - IBMR
The I
2
C Bus Monitor Register (IBMR) tracks the status of the SCL and SDA pins. The
values of these pins are recorded in this read-only register so that software may
determine if the I
2
C bus is hung and the I
2
C unit must be reset.
Register Name:
I
2
C Data Buffer Register - IDBR
Block
Base Address:
0xC801_100C
Offset Address
Reg
OffsetAddress
Reset Value
0x0000_0000
Register Description:
I
2
C Data Buffer Register - IDBR
Access:
(See below.)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
8
7
6
5
4
3
2
1
0
(Reserved)
See table below.
Register
I
2
C Data Buffer Register - IDBR
Bits
Name
Description
Reset
Value
Access
31:0
8
—
(Reserved)
000000H
—
7:0
I
2
C Data
Buffer
Buffer for I
2
C bus send/receive data.
00H
RW