45.6.3.2 Manchester Encoder
When the Manchester encoder is in use, characters transmitted
through the USART are encoded based on biphase Manchester II format. To enable this mode,
write a ‘1
’ to USART_MR.MAN. Depending on polarity configuration, a logic
level (zero or one), is transmitted as a coded signal one-to-zero or zero-to-one. Thus, a
transition always occurs at the midpoint of each bit time. It consumes more bandwidth than
the original NRZ signal (2x) but the receiver has more error control since the expected
input must show a change at the center of a bit cell. An example of Manchester encoded
sequence is: the byte 0xB1
or 10110001
encodes to
10 01 10 10 01 01 01 10
, assuming the default polarity of the encoder.
Figure 45-7
illustrates this coding scheme.
The Manchester encoded character can also be encapsulated by adding
both a configurable preamble and a start frame delimiter pattern. Depending on the
configuration, the preamble is a training sequence, composed of a predefined pattern with a
programmable length from 1 to 15 bit times. If the preamble length is set to
'0
', the preamble waveform is not generated prior to any character. The
preamble pattern is chosen among the following sequences: ALL_ONE, ALL_ZERO, ONE_ZERO or
ZERO_ONE by configuring US_MAN.TX_PP. US_MAN.TX_PL is used to configure the preamble
length. Figure 45-8 illustrates and defines the valid patterns. To improve flexibility, the
encoding scheme can be configured using US_MAN.TX_MPOL. If TX_MPOL is set to
‘0
’ (default), a logic zero is encoded with a zero-to-one transition
and a logic one is encoded with a one-to-zero transition. If TX_MPOL is set to
‘1
’, a logic one is encoded with a one-to-zero transition and a logic
zero is encoded with a zero-to-one transition.
A start frame delimiter is configured using US_MR.ONEBIT. It
consists of a user-defined pattern that indicates the beginning of a valid data. Figure 45-9
illustrates these patterns. If the start frame delimiter, also known as the start bit, is
one bit, (ONEBIT = 1
), a logic zero is Manchester encoded and indicates
that a new character is being sent serially on the line. If the start frame delimiter is a
synchronization pattern also referred to as sync (ONEBIT = 0
), a sequence
of three bit times is sent serially on the line to indicate the start of a new character.
The sync waveform is in itself an invalid Manchester waveform as the transition occurs at
the middle of the second bit time. Two distinct sync patterns are used: the command sync
and the data sync. The command sync has a logic one level for one and a half bit times,
then a transition to logic zero for the second one and a half bit times. If US_MR.MODSYNC
is written to ‘1’, the next character is a command. If it is written to
‘0
’, the next character is a data. When direct memory access is used,
MODSYNC can be immediately updated with a modified character located in memory. To enable
this mode, US_MR.VAR_SYNC must be written to ‘1
’. In this case, MODSYNC is
bypassed and the sync configuration is held in US_THR.TXSYNH. The USART character format is
modified and includes sync information.