
UART Modules
MCF5272 ColdFire Integrated Microprocessor User’s Manual, Rev. 3
Freescale Semiconductor
16-25
The receiver detects the beginning of a break in the middle of a character if the break persists through the
next character time. If the break begins in the middle of a character, the receiver places the damaged
character in the Rx FIFO stack and sets the corresponding USRn error bits and USRn[RxRDY]. Then, if
the break lasts until the next character time, the receiver places an all-zero character into the Rx FIFO and
sets USRn[RB,RxRDY].
16.5.2.3
Transmitter FIFO
Whenever the CPU writes a character for transmission into UTB, the character is placed into the 24-byte
transmitter FIFO. UTB fills the last spot in the FIFO and holds the last character to be transmitted.
Visibility into the status of the FIFO is provided by various bits and interrupts, as shown in
Table 16-16.16.5.2.4
Receiver FIFO
The FIFO stack is used in the UART’s receiver buffer logic. The FIFO is 24 bytes deep. The receive buffer
consists of the FIFO and a receiver shift register connected to the RxD (see
Figure 16-24). Data is
assembled in the receiver shift register and loaded into the top empty receiver holding register position of
the FIFO. Similar to the transmitter, several status bits and interrupts provide visibility into the status of
the FIFO.
In addition to the data byte, three status bits, parity error (PE), framing error (FE), and received break (RB),
are appended to each data character in the FIFO; OE (overrun error) is not appended. By programming the
ERR bit in the channel’s mode register (UMR1n), status is provided in character or block modes.
USRn[RxRDY] is set when at least one character is available to be read by the CPU. A read of the receiver
buffer produces an output of data from the top of the FIFO stack. After the read cycle, the data at the top
of the FIFO stack and its associated status bits are popped and the receiver shift register can add new data
at the bottom of the stack. The FIFO-full status bit (FFULL) is set if all 24 stack positions are filled with
data. Either the RxRDY or FFULL bit can be selected to cause an interrupt.
The two error modes are selected by UMR1n[ERR] as follows:
In character mode (UMR1n[ERR] = 0), status is given in the USRn for the character at the top of
the FIFO.
In block mode, the USRn shows a logical OR of all characters reaching the top of the FIFO stack
since the last RESET ERROR STATUS command. Status is updated as characters reach the top of the
FIFO stack. Block mode offers a data-reception speed advantage where the software overhead of
error-checking each character cannot be tolerated. However, errors are not detected until the check
is performed at the end of an entire message—the faulting character in the block is not identified.
Table 16-16. Transmitter FIFO Status Bits
Status Bit
Indicated Condition
Interrupt
USR[TxEMP] = 1
The transmitter FIFO and shift register are empty and a data underrun occurred.
USR[TxRDY] = 1
At least one FIFO stage is available for a character to be transmitted. If this bit is cleared, the
FIFO is full and a subsequent write to the FIFO will be ignored.
Yes
USR[FFULL] = 1
The programmed level of emptiness (UTF[TXS]) has been reached.
Yes
UTF[TXS]
Indicates the level of emptiness of the transmitter FIFO
UTF[TXB]
Indicates the number of characters, 0–24, in the transmitter FIFO