English
Language : 

XR17V352IB-0A-EVB Datasheet, PDF (28/64 Pages) Exar Corporation – HIGH PERFORMANCE DUAL PCI EXPRESS UART
XR17V352
HIGH PERFORMANCE DUAL PCI EXPRESS UART
REV. 1.0.4
2.0 TRANSMIT AND RECEIVE DATA
There are two methods to load transmit data and unload receive data from each UART channel. First, there is
a transmit data register and receive data register for each UART channel as shown in Table 4 set to ease
programming. These registers support 8, 16, 24 and 32 bits wide format. In the 32-bit format, it increases the
data transfer rate on the PCI bus. Additionally, a special register location provides receive data byte with its
associated error flags. This is a 16-bit or 32-bit read operation where the Line Status Register (LSR) content in
the UART channel register is paired along with the data byte. This operation further facilitates data unloading
with the error flags without having to read the LSR register separately. Furthermore, the XR17V352 supports
32-bit read/write operation.
The second method is through each UART channel’s transmit holding register (THR) and receive holding
register (RHR). The THR and RHR registers are 16550 compatible so their access is limited to 8-bit format.
The software driver must separately read the LSR content for the associated error flags before reading the
data byte.
2.1 FIFO DATA LOADING AND UNLOADING IN 32-BIT FORMAT
The XR17V352 supports 32-bit Read and 32-bit Write transactions anywhere in the mapped memory region
(except reserved areas). In addition, to utilize this feature fully, the device provides a separate memory location
(apart from the individual channel’s register set) where the RX and the TX FIFO can be read from/written to, as
shown in Table 4. The following is an extract from the table showing the memory locations that support 32-bit
transactions:
Channel N: (for channels 0 through 1) where M = 4N + 1.
RX FIFO
:
0xM00 - 0xMFF (256 bytes)
TX FIFO
:
0xM00 - 0xMFF (256 bytes)
RX FIFO + status
:
0x(M+1)0 - 0x(M+2)FF (256 bytes data + 256 bytes status)
For example, the locations for channel 1 are:
Channel 1:
RX FIFO
:
0x0500 - 0x05FF (256 bytes)
TX FIFO
:
0x0500 - 0x05FF (256 bytes)
RX FIFO + status
:
0x0600 - 0x07FF (256 bytes data + 256 bytes status)
2.1.1 Normal Rx FIFO Data Unloading at locations 0x100 and 0x500
The RX FIFO data can be read out 32 bits at a time at memory locations 0x100 (channel 0) and 0x500
(channel 1). This operation is 4 times faster than reading the data in 256 separate 8-bit memory reads of RHR
register (0x000 for channel 0 and 0x400 for channel 1).
READ RX FIFO,
WITH NO ERRORS
Read n+0 to n+3
Read n+4 to n+7
Etc.
BYTE 3
FIFO Data n+3
FIFO Data n+7
BYTE 2
FIFO Data n+2
FIFO Data n+6
BYTE 1
FIFO Data n+1
FIFO Data n+5
BYTE 0
FIFO Data n+0
FIFO Data n+4
28