Preliminary
...the world's most energy friendly microcontrollers
2011-05-19 - d0034_Rev0.91
185
www.energymicro.com
When working with stop bit lengths of half a baud period, the above sampling scheme no longer suffices.
In this case, the stop-bit is not sampled, and no framing error is generated in the receiver if the stop-
bit is not generated. The line must still be driven high before the next start bit however for the USART
to successfully identify the start bit.
15.3.2.4.4 Parity Error
When parity bits are enabled, a parity check is automatically performed on incoming frames. When a
parity error is detected in an incoming frame, the data parity error bit PERR in the frame is set, as well
as the interrupt flag PERR in USARTn_IF. Frames with parity errors are loaded into the receive buffer
like regular frames.
PERR can be accessed by reading the frame from the receive buffer using the USARTn_RXDATAX,
USARTn_RXDATAXP, USARTn_RXDOUBLEX or USARTn_RXDOUBLEXP registers.
If ERRSTX in USARTn_CTRL is set, the transmitter is disabled on received parity and framing errors. If
ERRSRX in USARTn_CTRL is set, the receiver is disabled on parity and framing errors.
15.3.2.4.5 Framing Error and Break Detection
A framing error is the result of an asynchronous frame where the stop bit was sampled to a value of 0.
This can be the result of noise and baud rate errors, but can also be the result of a break generated
by the transmitter on purpose.
When a framing error is detected in an incoming frame, the framing error bit FERR in the frame is set.
The interrupt flag FERR in USARTn_IF is also set. Frames with framing errors are loaded into the receive
buffer like regular frames.
FERR can be accessed by reading the frame from the receive buffer using the USARTn_RXDATAX,
USARTn_RXDATAXP, USARTn_RXDOUBLEX or USARTn_RXDOUBLEXP registers.
If ERRSTX in USARTn_CTRL is set, the transmitter is disabled on parity and framing errors. If ERRSRX
in USARTn_CTRL is set, the receiver is disabled on parity and framing errors.
15.3.2.5 Local Loopback
The USART receiver samples U(S)n_RX by default, and the transmitter drives U(S)n_TX by default.
This is not the only option however. When LOOPBK in USARTn_CTRL is set, the receiver is connected
can receive the data it transmits, but it is also used to allow the USART to read and write to the same
pin, which is required for some half duplex communication modes. In this mode, the U(S)n_TX pin must
be enabled as an output in the GPIO.
Figure 15.7. USART Local Loopback
USART
RX
U(S)n_RX
TX
U(S)n_TX
LOOBPK = 0
C
USART
RX
U(S)n_RX
TX
U(S)n_TX
LOOBPK = 1
C
15.3.2.6 Asynchronous Half Duplex Communication
When doing full duplex communication, two data links are provided, making it possible for data to be
sent and received at the same time. In half duplex mode, data is only sent in one direction at a time.
There are several possible half duplex setups, as described in the following sections.