ISD91200 Series Technical Reference Manual
Release Date: Sep 16, 2019
- 286 -
Revision 2.4
5.13 UART Interface Controller
The I91200 includes a Universal Asynchronous Receiver/Transmitter (UART). The UART supports high
speed operation and flow control functions as well as protocols for Serial Infrared (IrDA) and Local
interconnect Network (LIN).
5.13.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.
The UART controller also supports LIN(Local Interconnect Network) master mode function and IrDA
SIR (Serial Infrared)function. The UART channel supports seven types of interrupts including
transmitter FIFO empty interrupt(THERINT), receiver threshold level interrupt (RDAINT), line status
interrupt (overrun error or parity error or framing error or break interrupt) (RLSINT), time out interrupt
(RXTOINT), MODEM status interrupt (MODEMINT), Buffer error interrupt (BUFERRINT) and LIN
receiver break field detected interrupt.
The UART has a 8-byte transmit FIFO (TX_FIFO) and a 8-byte receive FIFO (RX_FIFO) that reduces
the number of interrupts presented to the CPU. 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, overrun error,
framing error and break interrupt) that can occur while receiving data. The UART includes a
programmable baud rate generator that is capable of dividing master clock input by divisors to produce
the baud rate clock. The baud rate equation is Baud Rate = UART_CLK / M * [BRD + 2], where M and
BRD are defined in Baud Rate Divider Register (UART_BAUD). Table 5-115 UART Baud Rate
Equation lists the equations under various conditions.
The UART controller supports auto-flow control function that uses two active-low signals,/CTS (clear-to-
send) and /RTS (request-to-send), to control the flow of data transfer between the UART and external
devices (e.g. Modem). When auto-flow is enabled, the UART will not receive data until the UART
asserts /RTS to external device. When the number of bytes in the Rx FIFO equals the value of
UART_FIFO.RTSTRGLV, the /RTS is de-asserted. The UART sends data out when UART controller
detects /CTS is asserted from external device. If /CTS is not detected the UART controller will not send
data out.
The UART controller also provides Serial IrDA (SIR, Serial Infrared) function
(UART_FUNCSEL.IRDAEN =1 to enable 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 must be implemented by software.
The alternate function of UART controller is LIN (Local Interconnect Network) function. The LIN mode is
selected by setting the UART_FUNCSEL.LINEN bit. In LIN mode, one start bit, 8-bit data format with 1-
bit stop bit are generated in accordance with the LIN standard.