English
Language : 

XR16C872 Datasheet, PDF (14/60 Pages) Exar Corporation – DUAL UART WITH 1284 PARALLEL PORT AND PLUG-AND-PLAY CONTROLLER
XR16C872
DISCONTINUED
FIFO Operation
The 128 byte transmit and receive data FIFOs are enabled by the FIFO Control Register (FCR) bit-0. The standard
16C550 provides only receive FIFO of 16 bytes with 4 selectable trigger levels and there is no transmit trigger level
selection. The 872 UART provides independent programmable trigger levels from 0 to 128 for both receiver and
transmitter. When receive or transmit data has reached the preset trigger level the UART generates an interrupt
to call for service. The receive FIFO section includes a time-out function to ensure data is delivered to the CPU.
A receive data time-out interrupt is generated when there is no receive data for a period of about 4-characters but
the Receive Holding Register (RHR) is full or data did not reached the receive trigger level. See in the timing diagram
area for TX and RX FIFO operation.
Hardware (RTS/CTS) Flow Control Operation
Automatic hardware or RTS and CTS flow control is used to prevent data overrun to the local receiver FIFO and
remote receiver FIFO. The RTS# output pin is used to request remote unit to suspend/restart data transmission
while the CTS# input pin is monitored to suspend/restart local transmitter. The auto RTS and auto CTS flow control
features are individually selected to fit specific application requirement and enabled through EFR bit-6 and 7. The
auto RTS function must be started by asserting RTS# pin (MCR bit-1=1) after it is enabled.
Local UART
UARTA
Receiver FIFO
Trigger Reached
Auto RTS
Trigger Level
Transmitter
RXA
RTSA#
TXA
TXB
CTSB#
RXB
Remote UART
UARTB
Transmitter
Auto CTS
Monitor
Receiver FIFO
Trigger Reached
Auto CTS
Monitor
CTSA#
RTSB#
Auto RTS
Trigger Level
RTSA#
CTSB#
TXB
Assert RTS# to Begin Transmission
1
ON
OFF
2
3
ON
7
OFF
8
Starts
4
RXA FIFO
Receive Data
INTA
(RXA FIFO
RX FIFO
5
Trigger Level
Interrupt)
6 Suspend
RTS High
Threshold
10
11
Restart
9
RTS Low
Threshold
ON
ON
RX FIFO
12 Trigger Level
The local UART (UARTA) starts data transfer by asserting RTSA# (1). RTSA# is normally connected to
CTSB# (2) of remote UART (UARTB). CTSB# allows its transmitter to send data (3). TXB data arrives and
fills UART-A receive FIFO (4). When RXA data fills to up its receive FIFO trigger level, UARTA activates its
RXA data ready interrupt (5) and continues to receive and put data into its FIFO. If interrupt service latency is
long and data is not being unloaded, UARTA monitors its receive data fill level to match the upper threshold of
RTS delay and de-assert RTSA# (6). CTSB# follows (7) and request UARTB transmitter to suspend data
transfer. UART-B stops or finishes sending the data bits in its transmit shift register (8). When receive FIFO
data in UARTA is unloaded to match the lower threshold of RTS delay (9), UARTA re-assert RTSA# (10)
CTSB# recognizes the change (11) and restarts its transmitter and data flow again until next RX trigger (12).
This same event applies to the reverse direction when UARTA sends data to UARTB with RTSB# and CTSA#
controlling the data flow.
Rev. 1.00
Visit Exar Web Site at www.exar.com
14