I2C Registers
Table 21-12. I2C_IRQSTATUS_RAW Register Field Descriptions (continued)
Bit
Field
Type
Reset
Description
13
RDR
R/W
0h
Receive draining IRQ status.
I2C Receive mode only.
This read/clear only bit is set to 1 when the module is configured as
a receiver, a stop condition was received on the bus and the RX
FIFO level is below the configured threshold (RXTRSH).
When this bit is set to 1 by the core, CPU must read the
I2C_BUFSTAT.RXSTAT register in order to check the amount of
data left to be transferred from the FIFO.
Then, according to the mode set (DMA or interrupt), the CPU needs
to enable the draining feature of the DMA controller with the number
of data bytes to be transferred (I2C_BUFSTAT.RXSTAT), or
generate read data accesses according to this value (IRQ mode).
The interrupt needs to be cleared after the DMA controller was
reconfigured (if DMA mode enabled), or before generating data
accesses to the FIFO (if IRQ mode enabled).
If the corresponding interrupt was enabled, an interrupt is signaled to
the local host.
The CPU can also poll this bit.
For more details about RDR generation, refer to the FIFO
Management subsection.
The CPU can only clear this bit by writing a 1 into this register.
A write 0 has no effect.
Value after reset is low.
0x0 = Receive draining inactive
0x1 = Receive draining enabled
12
BB
R
0h
This read-only bit indicates the state of the serial bus.
In slave mode, on reception of a start condition, the device sets BB
to 1.
BB is cleared to 0 after reception of a stop condition.
In master mode, the software controls BB.
To start a transmission with a start condition, MST, TRX, and STT
must be set to 1 in the I2C_CON register.
To end a transmission with a stop condition, STP must be set to 1 in
the I2C_CON register.
When BB = 1 and STT = 1, a restart condition is generated.
Value after reset is low.
0x0 = Bus is free
0x1 = Bus is occupied
11
ROVR
R/W
0h
Receive overrun status.
Writing into this bit has no effect.
I2C receive mode only.
This read-only bit indicates whether the receiver has experienced
overrun.
Overrun occurs when the shift register is full and the receive FIFO is
full.
An overrun condition does not result in a data loss
the peripheral is just holding the bus (low on SCL) and prevents
other bytes from being received.
ROVR is set to 1 when the I2C has recognized an overrun.
ROVR is clear when reading I2C_DATA register, or when resetting
the I2C (I2C_CON:I2C_EN = 0).
Value after reset is low.
0x0 = Normal operation
0x1 = Receiver overrun
3722
I2C
SPRUH73H – October 2011 – Revised April 2013
Copyright © 2011–2013, Texas Instruments Incorporated