
MOTOROLA
Chapter 16. UART Modules
16-27
Operation
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 identied.
In either mode, reading the USRn does not affect the FIFO. The FIFO is popped only when
the receive buffer is read. The USRn should be read before reading the receive buffer. If all
24 receiver holding registers are full, a new character is held in the receiver shift register
until space is available. However, if a second new character is received, the character in the
receiver shift register is lost, the FIFO is unaffected, and USRn[OE] is set when the receiver
detects the start bit of the new overrunning character.
Visibility into the status of the FIFO is provided by various bits and interrupts, as shown in
To support ow control, the receiver can be programmed to automatically negate and assert
RTS, in which case the receiver automatically negates RTS when a valid start bit is detected
and the FIFO stack is full. The receiver asserts RTS when a FIFO position becomes
available; therefore, overrun errors can be prevented by connecting RTS to the CTS input
of the transmitting device.
NOTE:
The receiver can still read characters in the FIFO stack if the
receiver is disabled. If the receiver is reset, the FIFO stack, RTS
control, all receiver status bits, and interrupt requests are reset.
No more characters are received until the receiver is reenabled.
Table 16-17. Receiver FIFO Status Bits
Status Bit
Indicated Condition
Interrupt
USR[FFULL] = 1
All FIFO positions contain data
Yes
USR[RxRDY] = 1
At least one character is available to be read by the CPU.
Yes
USR[RxFIFO] = 1
The programmed level of fullness (UTF[RXS]) has been reached.
Yes
USR[RxFTO] = 1
The receiver FIFO holds unread data, and the FIFO status has not
changed in at least 64 receiver clocks.
Yes
URF[RXS]
Indicates the level of fullness of the receiver FIFO
URF[RXB]
Indicates the number of characters, 0–24, in the receiver FIFO.