UARTFR
register contains empty and full flags (
TXFE
,
TXFF
,
RXFE
, and
RXFF
bits), and the
UARTRSR
register shows overrun status via the
OE
bit. If the FIFOs are disabled, the empty and
full flags are set according to the status of the 1-byte-deep holding registers.
The trigger points at which the FIFOs generate interrupts is controlled via the
UART Interrupt FIFO
Level Select (UARTIFLS)
register (see page 1192). Both FIFOs can be individually configured to
trigger interrupts at different levels. Available configurations include ⅛, ¼, ½, ¾, and ⅞. For example,
if the ¼ option is selected for the receive FIFO, the UART generates a receive interrupt after 4 data
bytes are received. Out of reset, both FIFOs are configured to trigger an interrupt at the ½ mark.
16.3.9
Interrupts
The UART can generate interrupts when the following conditions are observed:
■ Overrun Error
■ Break Error
■ Parity Error
■ Framing Error
■ Receive Timeout
■ Transmit (when condition defined in the
TXIFLSEL
bit in the
UARTIFLS
register is met, or if the
EOT
bit in
UARTCTL
is set, when the last bit of all transmitted data leaves the serializer)
■ Receive (when condition defined in the
RXIFLSEL
bit in the
UARTIFLS
register is met)
All of the interrupt events are ORed together before being sent to the interrupt controller, so the
UART can only generate a single interrupt request to the controller at any given time. Software can
service multiple interrupt events in a single interrupt service routine by reading the
UART Masked
Interrupt Status (UARTMIS)
register (see page 1202).
The interrupt events that can trigger a controller-level interrupt are defined in the
UART Interrupt
Mask (UARTIM)
register (see page 1194) by setting the corresponding
IM
bits. If interrupts are not
used, the raw interrupt status is visible via the
UART Raw Interrupt Status (UARTRIS)
register
(see page 1198).
Note:
For receive timeout, the
RTIM
bit in the
UARTIM
register must be set to see the
RTMIS
and
RTRIS
status in the
UARTMIS
and
UARTRIS
registers.
Interrupts are always cleared (for both the
UARTMIS
and
UARTRIS
registers) by writing a 1 to the
corresponding bit in the
UART Interrupt Clear (UARTICR)
register (see page 1206).
The receive timeout interrupt is asserted when the receive FIFO is not empty, and no further data
is received over a 32-bit period when the
HSE
bit is clear or over a 64-bit period when the
HSE
bit
is set. The receive timeout interrupt is cleared either when the FIFO becomes empty through reading
all the data (or by reading the holding register), or when a 1 is written to the corresponding bit in the
UARTICR
register.
The receive interrupt changes state when one of the following events occurs:
■ If the FIFOs are enabled and the receive FIFO reaches the programmed trigger level, the
RXRIS
bit is set. The receive interrupt is cleared by reading data from the receive FIFO until it becomes
less than the trigger level, or by clearing the interrupt by writing a 1 to the
RXIC
bit.
June 18, 2014
1170
Texas Instruments-Production Data
Universal Asynchronous Receivers/Transmitters (UARTs)