SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
Hardware flow control is composed of auto-CTS and auto-RTS. Auto-CTS and auto-RTS can be enabled and disabled independently by programming the UARTi.UART_EFR[7:6] AUTO_CTS_EN and AUTO_RTS_EN bit fields, respectively.
With auto-CTS, uarti_ctsn must be active before the module can transmit data.
Auto-RTS activates the uarti_rtsn output only when there is enough room in the RX FIFO to receive data. It deactivates the uarti_rtsn output when the RX FIFO is sufficiently full. The HALT and RESTORE trigger levels in the UARTi.UART_TCR register determine the levels at which uarti_rtsn is activated and deactivated.
If auto-CTS and auto-RTS are enabled, data transmission does not occur unless the RX FIFO has empty space. Thus, overrun errors are eliminated during hardware flow control. If auto-CTS and auto-RTS are not enabled, overrun errors occur if the transmit data rate exceeds the RX FIFO latency.
Auto-RTS data flow control originates in the receiver block. The RX FIFO trigger levels used in auto-RTS are stored in the UARTi.UART_TCR register. uarti_rtsn is active if the RX FIFO level is below the HALT trigger level in the UARTi.UART_TCR[3:0] RX_FIFO_TRIG_HALT bit field. When the RX FIFO HALT trigger level is reached, uarti_rtsn is deasserted. The sending device (for example, another UART) can send an additional byte after the trigger level is reached because it may not recognize the deassertion of RTS until it begins sending the additional byte.
uarti_rtsn is automatically reasserted when the RX FIFO reaches the RESUME trigger level programmed by the UARTi.UART_TCR[7:4] RX_FIFO_TRIG_START bit field. This reassertion requests the sending device to resume transmission.
In this case, uarti_rtsn is an active-low signal.
The transmitter circuitry checks uarti_ctsn before sending the next data byte. When uarti_ctsn is active, the transmitter sends the next byte. To stop the transmitter from sending the next byte, uarti_ctsn must be deasserted before the middle of the last stop-bit currently sent.
The auto-CTS function reduces interrupts to the host system. When auto-CTS flow control is enabled, the uarti_ctsn state changes do not have to trigger host interrupts because the device automatically controls its own transmitter. Without auto-CTS, the transmitter sends any data present in the transmit FIFO, and a receiver overrun error can result.
In this case, uarti_ctsn is an active-low signal.