SWRU543B January 2019 – June 2025 CC3230S , CC3230SF , CC3235MODS , CC3235MODSF , CC3235S , CC3235SF
Data received or transmitted is stored in two 16-byte FIFOs, though the RX FIFO has an extra 4 bits per character for status information. For transmission, data are written into the TX FIFO. If the UART is enabled, it causes a data frame to start transmitting with the parameters indicated in the UARTLCRH register. Data continues to be transmitted until there is no data left in the TX FIFO. The BUSY bit in the UART Flag (UARTFR) register is asserted when data are written to the TX FIFO (if the FIFO is nonempty) and remains asserted while data are being transmitted. The BUSY bit is negated only when the TX FIFO is empty, and the last character has been transmitted from the shift register, including the stop bits. The UART can indicate that it is busy even though the UART may no longer be enabled.
When the receiver is idle (the UnRx signal is continuously 1), and the data input goes low (a start bit has been received), the receive counter begins running and data are sampled on the eighth cycle of Baud16 or the fourth cycle of Baud8 depending on the setting of the HSE bit (bit 5) in UARTCTL.
The start bit is valid and recognized if the UnRx signal is still low on the eighth cycle of Baud16 (HSE clear) or the fourth cycle of Baud8 (HSE set), otherwise it is ignored. After a valid start bit is detected, successive data bits are sampled on every 16th cycle of Baud16 or 8th cycle of Baud8 (that is, 1 bit period later) according to the programmed length of the data characters and value of the HSE bit in UARTCTL. The parity bit is then checked if parity mode is enabled. Data length and parity are defined in the UARTLCRH register.
Lastly, a valid stop bit is confirmed if the UnRx signal is high, otherwise a framing error has occurred. When a full word is received, the data are stored in the RX FIFO along with any error bits associated with that word.