46.4.1.2 Transmission bit order
When S2[MSBF] is set, the UART automatically transmits the MSB of the data word as
the first bit after the start bit. Similarly, the LSB of the data word is transmitted
immediately preceding the parity bit, or the stop bit if parity is not enabled. All necessary
bit ordering is handled automatically by the module. Therefore, the format of the data
written to D for transmission is completely independent of the S2[MSBF] setting.
46.4.1.3 Character transmission
To transmit data, the MCU writes the data bits to the UART transmit buffer using UART
data registers C3[T8] and D. Data in the transmit buffer is then transferred to the
transmitter shift register as needed. The transmit shift register then shifts a frame out
through the transmit data output signal after it has prefaced it with any required start and
stop bits. The UART data registers, C3[T8] and D, provide access to the transmit buffer
structure.
The UART also sets a flag, the transmit data register empty flag S1[TDRE], and
generates an interrupt or DMA request (C5[TDMAS]) whenever the number of
datawords in the transmit buffer is equal to or less than the value indicated by
TWFIFO[TXWATER]. The transmit driver routine may respond to this flag by writing
additional datawords to the transmit buffer using C3[T8]/D as space permits.
See
for specific programing sequences.
Setting C2[TE] automatically loads the transmit shift register with the following
preamble:
• 10 logic 1s if C1[M] = 0
• 11 logic 1s if C1[M] = 1 and C4[M10] = 0
• 12 logic 1s if C1[M] = 1, C4[M10] = 1, C1[PE] = 1
After the preamble shifts out, control logic transfers the data from the D register into the
transmit shift register. The transmitter automatically transmits the correct start bit and
stop bit before and after the dataword.
When C7816[ISO_7816E] = 1, setting C2[TE] does not result in a preamble being
generated. The transmitter starts transmitting as soon as the corresponding guard time
expires. When C7816[TTYPE] = 0, the value in GT is used. When C7816[TTYPE] = 1,
the value in BGT is used, because C2[TE] will remain asserted until the end of the block
transfer. C2[TE] is automatically cleared when C7816[TTYPE] = 1 and the block being
transmitted has completed. When C7816[TTYPE] = 0, the transmitter listens for a NACK
indication. If no NACK is received, it is assumed that the character was correctly
Chapter 46 Universal Asynchronous Receiver/Transmitter (UART)
K22F Sub-Family Reference Manual , Rev. 3, 7/2014
Freescale Semiconductor, Inc.
1175