NUC970 Technical Reference Manual
Publication Release Date: Dec. 15, 2015
- 411 -
Revision V1.30
NUC97
0
T
E
CHNIC
A
L
RE
F
E
RE
N
CE
MA
NUA
L
UART Interface Controller (UART)
5.16
This chip equips up to eleven channels of Universal Asynchronous Receiver/Transmitters (UART).
UART1/2/4/6/8/10 supports High-speed UART and UART0/3/5/7/9 perform Normal Speed UART,
besides, all the UART channels support flow control function. The UART controller also supports IrDA
(SIR), LIN Master/Slave and RS-485 function modes.
5.16.1 Overview
The Universal Asynchronous Receiver/Transmitter (UART) performs a serial-to-parallel conversion on
data received from the peripheral, and a parallel-to-serial conversion on data transmitted from the
CPU.
Each UART channel supports seven types of interrupts including (1). transmitter FIFO empty interrupt
(INT_THRE), (2). receiver threshold level reaching interrupt (INT_RDA), (3). line status interrupt (parity
error or framing error or break interrupt) (INT_RLS), (4). receiver buffer time-out interrupt (INT_TOUT),
(5). MODEM/Wake-up status interrupt (INT_MODEM), (6). Buffer error interrupt (INT_BUF_ERR), and
(7). LIN interrupt (INT_LIN).
The UART1/ 2/ 4/ 6/ 8/ 10 is built-in with a 64-byte transmitter FIFO (TX_FIFO) and a 64-byte receiver
FIFO (RX_FIFO) that reduces the number of interrupts presented to the CPU and the UART0/ 3/ 5/ 7/
9 are equipped 16-byte transmitter FIFO (TX_FIFO) and 16-byte receiver FIFO (RX_FIFO). The CPU
can read the status of the UART at any time during the operation. The reported status information
includes the type and condition of the transfer operations being performed by the UART, as well as 4
error conditions (parity error, framing error, break interrupt and buffer error) probably occur while
receiving data.
The UART includes a programmable baud rate generator that is capable of dividing clock input by
divisors to produce the serial clock that transmitter and receiver need.
All of the controllers support auto-flow control function that uses two low-level signals, /CTS (clear-to-
send) and /RTS (request-to-send), to control the flow of data transfer between the UART and external
devices (ex: Modem). When auto-flow is enabled, the UART is not allowed to receive data until the
UART asserts /RTS to external device. When the number of bytes in the RX FIFO equals the value of
RTS_TRI_LEV (UA_FCR [19:16]), the /RTS is de-asserted. The UART sends data out when UART
controller detects /CTS is asserted from external device. If a valid asserted /CTS is not detected the
UART controller will not send data out.
The UART controllers also provides Serial IrDA (SIR, Serial Infrared) function (The IrDA mode is
selected by setting the (FUN_SEL(UA_FUN_SEL[2:0]) = 010) to select IrDA function). The SIR
specification defines a short-range infrared asynchronous serial transmission mode with one start bit,
8 data bits, and 1 stop bit. The maximum data rate is 115.2 Kbps (half duplex). The IrDA SIR block
contains an IrDA SIR Protocol encoder/decoder. The IrDA SIR protocol is half-duplex only. So it
cannot transmit and receive data at the same time. The IrDA SIR physical layer specifies a minimum
10ms transfer delay between transmission and reception. This delay feature must be implemented by
software.
The alternate function of UART controllers is LIN (Local Interconnect Network) function. The LIN mode
is selected by setting the (FUN_SEL(UA_FUN_SEL[2:0]) = 001) to select LIN mode. In LIN mode, one
start bit and 8-bit data format with 1-bit stop bit are required in accordance with the LIN standard.
For the NUC970 series, another alternate function of UART controllers is RS-485 9-bit mode function,
and direction control provided by RTS pin to implement the function by software. The RS-485 mode is
selected by setting the (FUN_SEL(UA_FUN_SEL[2:0]) = 011) to select RS-485 function. The RS-485
driver control is implemented using the RTS control signal from an asynchronous serial port to enable
the RS-485 driver. In RS-485 mode, many characteristics of the RX and TX are the same as UART.