SPRUJF2A March 2026 – March 2026 AM13E23019
In the default UART mode (CTL0.MODE set to 0), hardware flow control between two devices is accomplished by connecting the RTS output to the CTS input on the receiving device, and connecting the RTS output on the receiving device to the CTS input. The RTS output signal is active low, the CTS input expects a low signal on a send request as shown in Figure 23-10.
The CTS input controls the transmitter. The transmitter can only transmit data when the CTS input is asserted low. When RTS flow control is enabled, the RTS output signal indicates the state of the RX FIFO. CTS of the transmitting device remains asserted low until, the preprogrammed watermark level is reached, indicating that the receiver has no space to store additional characters.
The CTSEN and RTSEN bits in the CTL0 register specify the flow control mode as shown in Table 23-3.
| CTSEN | RTSEN | Description |
|---|---|---|
| 1 | 1 | RTS and CTS flow control enabled |
| 1 | 0 | Only CTS flow control enabled |
| 0 | 1 | Only RTS flow control enabled |
| 0 | 0 | Both RTS and CTS flow control disabled |
The RTS bit can be driven by hardware or software. When RTSEN is 1 (i.e. hardware-controlled mode), the value of CTL0.RTS bit is ignored and RTS output signal is generated by hardware trigger levels as described below.
RTS flow control:
The RTS flow control logic is linked to the programmable RX FIFO watermark levels, which can be configured using the IFLS register. When RTS flow control is enabled, the RTS is asserted (low) until the RX FIFO is filled up to the watermark level. When the RX FIFO watermark level is reached, the RTS signal is de-asserted (high), indicating that there is no more room to receive any more data. The other device's transmission of data is expected to cease after the current character has been transmitted. The RTS signal is reasserted (low) when data has been read out of the RX FIFO until the FIFO is filled to less than the watermark level. If RTS flow control is disabled and the UNICOMM-UART is still enabled, then data is received until the RX FIFO is full, or there is no more data transmitted.
The RTS signal is de-asserted when the FIFO watermark level is reached by putting the last received character into the FIFO. This means on a back to back transmit, another character transfer could already have been started by the other device. In this case, the watermark level must be set to one level lower so that all data can be received and put into the FIFO.
CTS flow control:
If CTS flow control is disabled and the UNICOMM-UART is enabled, data is continuously transmitted until the TX FIFO is empty.
If CTS flow control is enabled, then the transmitter checks that the CTS signal is asserted low before transmitting each byte. The data continues to be transmitted while CTS is asserted (low), and the TX FIFO is not empty. If the TX FIFO is empty and the CTS signal is asserted (low) no data is transmitted. If the CTS signal is de-asserted (high), then the current character transmission is completed before the transmission is halted.