
LM3S101 Data Sheet
March 22, 2006
186
Preliminary
All of the interrupt events are ORed together before being sent to the interrupt controller, so the
UART can only generate a single interrupt request to the controller at any given time. Software can
service multiple interrupt events in a single interrupt service routine by reading the
UART Masked
Interrupt Status (UARTMIS)
register (see page 204).
The interrupt events that can trigger a controller-level interrupt are defined in the
UART Interrupt
Mask (UARTIM
) register (see page 201) by setting the corresponding
IM
bit to 1. If interrupts are
not used, the raw interrupt status is always visible via the
UART Raw Interrupt Status (UARTRIS)
register (see page 203).
Interrupts are always cleared (for both the
UARTMIS
and
UARTRIS
registers) by setting the
corresponding bit in the
UART Interrupt Clear (UARTICR)
register (see page 205).
11.2.6
Loopback Operation
The UART can be placed into an internal loopback mode for diagnostic or debug work. This is
accomplished by setting the
LBE
bit in the
UARTCTL
register (see page 199). In loopback mode,
data transmitted on U0Tx is received on the U0Rx input.
11.3
Initialization and Configuration
This section discusses the steps that are required for using a UART module. For this example, the
system clock is assumed to be 20 MHz and the desired UART configuration is:
115200 baud rate
Data length of 8 bits
One stop bit
No parity
FIFOs disabled
No interrupts
The first thing to consider when programming the UART is the baud-rate divisor (BRD), since the
UARTIBRD
and
UARTFBRD
registers must be written before the
UARTLCRH
register. Using the
equation described in “Baud-Rate Generation” on page 184, the BRD can be calculated:
BRD = 20,000,000 / (16 * 115,200) = 10.8507
which means that the
DIVINT
field of the
UARTIBRD
register (see page 195) should be set to 10.
The value to be loaded into the
UARTFBRD
register (see page 196) is calculated by the equation:
UARTFBRD[DIVFRAC] = integer(0.8507 * 64 + 0.5) = 54
With the BRD values in hand, the UART configuration is written to the module in the following
order:
1.
Disable the UART by clearing the
UARTEN
bit in the
UARTCTL
register.
2.
Write the integer portion of the BRD to the
UARTIBRD
register.
3.
Write the fractional portion of the BRD to the
UARTFBRD
register.
4.
Write the desired serial parameters to the
UARTLCRH
register (in this case, a value of
0x00000060).
5.
Enable the UART by setting the
UARTEN
bit in the
UARTCTL
register.