LCD Type MCU
Managing Receiver Errors
Several types of reception errors can occur within the UART module, the following section de-
scribes the various types and how they are managed by the UART.
The RXR register is composed of a two byte deep FIFO data buffer, where two bytes can be held
in the FIFO register, while a third byte can continue to be received. Before this third byte has been
entirely shifted in, the data should be read from the RXR register. If this is not done, the overrun er-
ror flag OERR will be consequently indicated.
In the event of an overrun error occurring, the following will happen:
The OERR flag in the USR register will be set.
The RXR contents will not be lost.
The shift register will be overwritten.
An interrupt will be generated if the RIE bit is set.
The OERR flag can be cleared by an access to the USR register followed by a read to the RXR reg-
Over-sampling is used for data recovery to identify valid incoming data and noise. If noise is de-
tected within a frame the following will occur:
The read only noise flag, NF, in the USR register will be set on the rising edge of the RXIF bit.
Data will be transferred from the Shift register to the RXR register.
No interrupt will be generated. However, this bit rises at the same time as the RXIF bit which it-
self generates an interrupt.
Note that the NF flag is reset by a USR register read operation followed by an RXR register read
The read only framing error flag, FERR, in the USR register, is set if a zero is detected instead of
stop bits. If two stop bits are selected, both stop bits must be high, otherwise the FERR flag will be
set. The FERR flag is buffered along with the received data and is cleared on any reset.
The read only parity error flag, PERR, in the USR register, is set if the parity of the received word is
incorrect. This error flag is only applicable if the parity is enabled, PREN = 1, and if the parity type,
odd or even is selected. The read only PERR flag is buffered along with the received data bytes. It
is cleared on any reset. It should be noted that the FERR and PERR flags are buffered along with
the corresponding word and should be read before reading the data word.