23.3.4.1 Parity
Parity bits can be used by the USART to check the validity of a data frame.
The Parity bit is set by the transmitter based on the number of bits with the value of
‘1
’ in a transmission and controlled by the receiver upon reception. If
the Parity bit is inconsistent with the transmission frame, the receiver may assume that
the data frame has been corrupted.
Even or odd parity can be selected for error checking by writing the Parity Mode (PMODE)
bit field in the USARTn.CTRLC register. If even parity is selected, the Parity bit is set
to ‘1
’ if the number of Data bits with value ‘1
’ is odd
(making the total number of bits with value ‘1
’ even). If odd parity is
selected, the Parity bit is set to ‘1
’ if the number of data bits with
value ‘1
’ is even (making the total number of bits with value
‘1
’ odd).
When enabled, the parity checker calculates the parity of the data bits in incoming frames and compares the result with the Parity bit of the corresponding frame. If a parity error is detected, the Parity Error flag (the PERR bit in the USARTn.RXDATAH register) is set.
If LIN Constrained Auto-Baud mode is enabled (RXMODE = 0x03
in the
USARTn.CTRLB register), a parity check is performed only on the protected identifier field.
A parity error is detected if one of the equations below is not true, which sets the Parity
Error flag.