Intel® PXA255 Processor Developer’s Manual 9-11
I2C Bus Interface Unit
If the I2C unit loses arbitration as the address bits are transferred and it is not addressed by the
address bits, the I2C unit resends the address when the I2C bus becomes free. A resend is possible
because the IDBR and ICR registers are not overwritten when arbitration is lost.
If the I2C unit loses arbitration because another bus master addresses the processor as a slave
device, the I2C unit switches to slave-receive mode and overwrites the original data in the I2C data
buffer register. Software can clear the start and re-initiate the master tran saction.
Note: Software must prevent the I2C unit from starting a transaction to its own slave address because
such a transaction puts the I2C unit in an indeterminate state.
Arbitration has boundary conditions in case an arbitration process is interrupted by a repeated
START or STOP condition transmitted on the I2C bus. To prevent errors, th e I2C unit acts as a
master if no arbitration takes place in the following circumstances:
Between a repeated START condition and a data bit
Between a data bit and a STOP condition
Between a repeated START condition and a STOP condition
These situations occur if different masters write identical data to the same target slave
simultaneously and arbitration cannot be resolved after the firs t data byte transfer.
Note: Software ensures that arbitration is resolved q uickly. For example, software can ensure that mast ers
send unique data by requiring that each master transmit its I2C addre ss as the first data byte of any
transaction. When arbitration is resolved, the winning master sends a r estar t and b egins a valid data
transfer. The slave discards the master’s address and use the other data.
Figure 9-7. Arbitration Procedure of Two Masters
SDA
SCL
Data 1
Data 2
Transmitter 1 Leaves Arbitration
Data 1 SDA