Intel® PXA255 Processor Developer’s Manual 9-15
I
2
C Bus Interface Unit
Figure 9-11 through Figure 9-13 are examples of I
2
C transactions and show the relationships
between master and slave devices.
Table 9-6. Slave Transactions
I
2
C Slave Action
Mode of
Operation
Definition
Slave-receive
(default mode)
Slave-receive
only
•I
2
C unit monitors all slave address transactions.
• ICR[IUE] bit must be set.
•I
2
C unit monitors bus for START conditions. When a START is
detected, the interface reads the first 8 bits and compares the most
significant seven bits with the 7-bit ISAR and the general call
address (0x00). If there is a match, the I
2
C unit sends an ACK.
• If the first 8 bits are zero’s, this is a general call address. If the
ICR[GCD] bit is clear, both the ISR[GCAD] bit and the ISR[SAD] bit
will be set. See Section 9.4.7.
• If the eighth bit of the first byte (R/nW bit) is low, the I
2
C unit stays in
slave-receive mode and the ISR[SAD] bit is cleared. If R/nW bit is
high, I
2
C unit switches to slave-transmit and ISR[SAD] bit is set.
Setting the Slave
Address
Detected bit
Slave-receive
Slave-transmit
• Indicates the interface has detected an I
2
C operation that addresses
the processor including the general call address. The processor can
distinguish an ISAR match from a General Call by reading the
ISR[GCAD] bit.
• An interrupt is signalled, if enabled, after the matching slave address
is received and acknowledged.
Read one byte of
I
2
C Data from the
IDBR
Slave-receive
only
• Data receive mode of I
2
C slave operation.
• Eight bits are read from the serial bus into the shift register. When a
full byte is received and the ACK/NAK bit is completed, the byte is
transferred from the shift register to the IDBR.
• Occurs when the ISR[IRF] bit is set and the ICR[TB] bit is clear. If
enabled, the IDBR Receive Full Interrupt is signalled to the CPU.
• Software reads one data byte from the IDBR. When the IDBR is
read, the processor writes the desired ICR[ACKNAK] bit and sets
the ICR[TB] bit. This causes the I
2
C unit to stop inserting wait states
and let the master transmitter write the next piece of information.
Transmit
Acknowledge to
master-
transmitter
Slave-receive
only
• As a slave-receiver, the I
2
C unit pulls the SDA line low to generate
the ACK pulse during the high SCL period.
• ICR[ACKNAK] bit controls the ACK data the I
2
C unit drives. See
Section 9.4.3.
Write one byte of
I
2
C data to the
IDBR
Slave-transmit
only
• Data transmit mode of I
2
C slave operation.
• Occurs when ISR[ITE] bit is set and ICR[TB] bit is clear. If enabled,
the IDBR Transmit Empty Interrupt is signalled to the processor.
• The processor writes a data byte to IDBR and sets ICR[TB] bit to start
the transfer.
Wait for
Acknowledge
from master-
receiver
Slave-transmit
only
• As a slave-transmitter, the I
2
C unit releases the SDA line to allow the
master-receiver to pull the line low for the ACK.
•See Section 9.4.3.