47.4.2.3 Character reception
During UART reception, the receive shift register shifts a frame in from the
unsynchronized receiver input signal. After a complete frame shifts into the receive shift
register, the data portion of the frame transfers to the UART receive buffer. Additionally,
the noise and parity error flags that are calculated during the receive process are also
captured in the UART receive buffer. The receive data buffer is accessible via the D and
C3[T8] registers. Additional received information flags regarding the receive dataword
can be read in ED register. S1[RDRF] is set if the number of resulting datawords in the
receive buffer is equal to or greater than the number indicated by RWFIFO[RXWATER].
If the C2[RIE] is also set, RDRF generates an RDRF interrupt request. Alternatively, by
programming C5[RDMAS], a DMA request can be generated.
When C7816[ISO_7816E] is set/enabled and C7816[TTYPE] = 0, character reception
operates slightly differently. Upon receipt of the parity bit, the validity of the parity bit is
checked. If C7816[ANACK] is set and the parity check fails, or if INIT and the received
character is not a valid initial character, then a NACK is sent by the receiver. If the
number of consecutive receive errors exceeds the threshold set by
ET7816[RXTHRESHOLD], then IS7816[RXT] is set and an interrupt generated if
IE7816[RXTE] is set. If an error is detected due to parity or an invalid initial character,
the data is not transferred from the receive shift register to the receive buffer. Instead, the
data is overwritten by the next incoming data.
When the C7816[ISO_7816E] is set/enabled, C7816[ONACK] is set/enabled, and the
received character results in the receive buffer overflowing, a NACK is issued by the
receiver. Additionally, S1[OR] is set and an interrupt is issued if required, and the data in
the shift register is discarded.
47.4.2.4
Data sampling
The receiver samples the unsynchronized receiver input signal at the RT clock rate. The
RT clock is an internal signal with a frequency 16 times the baud rate. To adjust for baud
rate mismatch, the RT clock (see the following figure) is re-synchronized:
• After every start bit.
• After the receiver detects a data bit change from logic 1 to logic 0 (after the majority
of data bit samples at RT8, RT9, and RT10 returns a valid logic 1 and the majority of
the next RT8, RT9, and RT10 samples returns a valid logic 0).
Chapter 47 Universal Asynchronous Receiver/Transmitter (UART)
K22F Sub-Family Reference Manual, Rev. 4, 08/2016
NXP Semiconductors 1267