I2C Interface
MCF52211 ColdFire® Integrated Microcontroller Reference Manual, Rev. 2
Freescale Semiconductor 25-7

25.2.4 I2C Status Registers (I2SRn)

The I2SRn contain bits that indicate transaction direction and status.

IPSBAR
Offset:
0x030C (I2SR0)
0x038C (I2SR1)
Access: User read/write
76543210
R ICF IAAS IBB
IAL
0SRW
IIF
RXAK
W
Reset:10000001

Figure 25-5. I2SRn Registers

Table 25-5. I2SRn Field Descriptions

Field Description
7
ICF
I2C Data transferring bit. While one byte of data is transferred, ICF is cleared.
0 Transfer in progress
1 Transfer complete. Set by falling edge of ninth clock of a byte transfer.
6
IAAS
I2C addressed as a slave bit. The CPU is interrupted if I2CR[IIEN] is set. Next, the CPU must check SRW and set
its TX/RX mode accordingly. Writing to I2CR clears this bit.
0 Not addressed.
1 Addressed as a slave. Set when its own address (IADR) matches the calling address.
5
IBB
I2C bus busy bit. Indicates the status of the bus.
0 Bus is idle. If a STOP signal is detected, IBB is cleared.
1 Bus is busy. When START is detected, IBB is set.
4
IAL
I2C arbitration lost. Set by hardware in the following circumstances. (IAL must be cleared by software by writing zero
to it.)
SDA sampled low when the master drives high during an address or data-transmit cycle.
SDA sampled low when the master drives high during the acknowledge bit of a data-receive cycle.
A start cycle is attempted when the bus is busy.
A repeated start cycle is requested in slave mode.
A stop condition is detected when the master did not request it.
3 Reserved, must be cleared.
2
SRW
Slave read/write. When IAAS is set, SRW indicates the value of the R/W command bit of the calling address sent
from the master. SRW is valid only when a complete transfer has occurred, no other transfers have been initiated,
and the I2C module is a slave and has an address match.
0 Slave receive, master writing to slave.
1 Slave transmit, master reading from slave.
1
IIF
I2C interrupt. Must be cleared by software by writing a 0 in the interrupt routine.
0No I
2C interrupt pending
1 An interrupt is pending, which causes a processor interrupt request (if IIEN = 1). Set when one of the following
occurs:
Complete one byte transfer (set at the falling edge of the ninth clock)
Reception of a calling address that matches its own specific address in slave-receive mode
Arbitration lost
0
RXAK
Received acknowledge. The value of SDA during the acknowledge bit of a bus cycle.
0 An acknowledge signal was received after the completion of 8-bit data transmission on the bus
1 No acknowledge signal was detected at the ninth clock.