UART/IrDA Functional Description
12-98
12.9.11
Software Flow Control
Software flow control is enabled through the enhanced feature register (EFR)
and the modem control register (MCR). Different combinations of software
flow control can be enabled by setting different combinations of EFR[3-0].
There are two other enhanced features relating to software flow control:
-
XON Any function [MCR(5)]: Operation resumes after receiving any char-
acter after recognizing the XOFF character. The XON-Any character is
written into the RX FIFO even if it is a software flow character.
-
Special character [EFR(5)]: Incoming data is compared to XOFF2. Detec-
tion of the special character sets the XOFF interrupt [IIR(4)] but does not
halt transmission. The XOFF interrupt is cleared by a read of the IIR. The
special character is transferred to the RX FIFO.
12.9.11.1
RX
When software flow control operation is enabled, the UART compares incom-
ing data with XOFF1/2 programmed characters (in certain cases XOFF1 and
XOFF2 must be received sequentially). When the correct XOFF characters
are received, transmission is halted after completing transmission of the
current character. XOFF detection also sets IIR(4) (if enabled via IER(5)) and
causes nIRQ to go low.
To resume transmission, an XON1/2 character must be received (in certain
cases XON1 and XON2 must be received sequentially). When the correct
XON characters are received, IIR(4) is cleared and the XOFF interrupt
disappears.
If a parity, framing or break error occurs while receiving a software flow control
character, this character is treated as normal data and is written to the RX
FIFO.
When XON-Any and special character detect are disabled and software flow
control is enabled, no valid XON or XOFF characters are written to the RX
FIFO. For example, when EFR[1:0] = 10, if XON1 and XOFF1 characters are
received they do not get written to the RX FIFO.
When pairs of software flow characters are programmed to be received
sequentially (EFR[1:0] = 11), the software flow characters are not written to the
RX FIFO if they are received sequentially. However, received XON1/XOFF1
characters must be written to the RX FIFO if the subsequent character is not
XON2/XOFF2.