9-2 Intel® PXA255 Processor Developer’s Manual
I2C Bus Interface Unit
For example, when the processor I2C unit acts as a master on the bus, it addresses an EEPROM as
a slave to receive data (see Figure9-1). When the I2C unit is addressing the EEPROM, it is a
master-transmitter and the EEPROM is a slave-receiver. When the I2C reads data, it is a master-
receiver and the EEPROM is a slave-transmitter. Whether it is a transmitter or recei ver, the master
generates the clock, initiates the transaction, and terminates the transaction.
The I2C bus allows for a multi-master system, which means more than one device can initiate data
transfers at the same time. To support this feature, the I2C bus arbitration relies on the wired-AND
connection of all I2C interfaces to the I2C bus. Two masters can drive the bus simultaneously,
provided they drive identical data. If a master tries to drive SDA high while another master drives
SDA low, it loses the arbitration. The SCL line is a synchronized combination of clocks generated
by the masters using the wired-AND connection to the SCL line.
The I2C bus serial operation uses an open-drain wired-AND bus structure, which allows multiple
devices to drive the bus lines and to communicate status about events such as arbitration, wait
states, error conditions, etc. For example, when a master drives the clock (SCL) line during a data
transfer, it transfers a bit on every instance that t he cl ock is h igh. When t he sla ve is una ble to accept
or drive data at the rate that the master is requesting, the slave can hold the clock line low between
the high states to insert a wait interval. The master’s clock can only be altered by another master
during arbitration or a slow slave peripheral that keeps the clock line low.
I2C transactions are either initiated by the processor as a master or received by the processor as a
slave. Both conditions may result in reads, writes, or both to the I 2C bus.
Table 9-2. I2C Bus Definitions
I2C Device Definition
Transmitter Sends data to the I2C bus.
Receiver Receives data from the I2C bus.
Master Initiates a transfer, generates the clock signal, and terminates the transactions.
Slave Device addressed by a master.
Multi-master More than one master can attempt to control the bus at the same time without corrupting
the message.
Arbitration Ensures that only one master controls the bus when more than one master simultaneously
tries to control the bus. This ensures that messages are not corrupted.
Figure 9-1. I2C Bus Configuration Example
Micro -
Controller
Gate
Array
EEPROM
SCL
SDA
Processor