SWCU193A April 2023 – August 2024 CC2340R2 , CC2340R5 , CC2340R5-Q1
The UART has two 8-entry FIFOs. One FIFO for transmit and one FIFO for receive. Both FIFOs are accessed through the UART Data Register, UART.DR. Read operations of the UART.DR register returns a 12-bit value consisting of 8 data bits and 4 error flags, while write operations place 8-bit data in the TX FIFO.
Out of reset, both FIFOs are disabled and act as 1-byte-deep holding registers. The FIFOs are enabled by setting the UART.LCRH[4] FEN bit.
FIFO status can be monitored through the UART Flag Register, UART.FR and the UART Receive Status Register, UART.RSR_ECR. Hardware monitors empty, full, and overrun conditions. The UART.FR register contains empty and full flags (TXFE, TXFF, RXFE, and RXFF bits), and the UART.RSR_ECR register shows overrun status through 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 are controlled through the UART Interrupt FIFO Level Select Register (UART:IFLS). 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.