SN32F100 Series
32-Bit Cortex-M0 Micro-Controller
SONiX TECHNOLOGY CO., LTD
Page 127
Version 1.9
12.7 UART REGISTERS
Base Address: 0x4001 6000 (UART0)
0x4005 6000 (UART1)
12.7.1 UART n Receiver Buffer register (UARTn_RB) (n=0, 1)
Address Offset: 0x00
This register is the top byte of the UART RX FIFO, and contains the oldest character received and can be read via the
bus interface. The LSB (bit 0) contains the first-received data bit. If the character received is less than 8 bits, the
unused MSBs are padded with zeros.
The Divisor Latch Access Bit (DLAB) in the
register must be zero in order to access this register.
Since PE, FE and BI bits correspond to the byte on the top of the UART RX FIFO (i.e. the one that will be read in the
next read from this register), the right approach for fetching the valid pair of received byte and its status bits is first t o
read the content of the
register, and then to read a byte from this register.
Bit
Name
Description
Attribute
Reset
31:8
Reserved
R
0
7:0
RB[7:0]
Contains the oldest received byte in the UART RX FIFO.
R
0
12.7.2 UART n Transmitter Holding register (UARTn_TH) (n=0, 1)
Address Offset: 0x00
This register is the top byte of the UART TX FIFO. The top byte is the newest character in the TX FIFO and can be
written via the bus interface. The LSB represents the first bit to transmit.
The Divisor Latch Access Bit (DLAB) in
register must be zero in order to access this register.
Bit
Name
Description
Attribute
Reset
31:8
Reserved
R
0
7:0
TH[7:0]
The byte will be sent when it is the oldest byte in TX FIFO and the
transmitter is available.
W
0
12.7.3 UART n Divisor Latch LSB registers (UARTn_DLL) (n =0, 1)
Address Offset: 0x00
The UART Divisor Latch is part of the UART Baud Rate Generator and holds the value used (optionally with the
Fractional Divider) to divide the UARTn_PCLK clock in order to produce the baud rate clock, which must be the
multiple of the desired baud rate that is specified by the Oversampling Register (typically 16X).
The UARTn_DLL and UARTn_DLM registers together form a 16-bit divisor, and DLAB bit in
be one in order to access these registers.
DLL contains the lower 8 bits of the divisor and DLM contains the higher 8 bits. A zero value is treated like 0x0001.
Bit
Name
Description
Attribute
Reset
31:8
Reserved
R
0
7:0
DLL[7:0]
The UART Divisor Latch LSB Register, along with the DLM register,
determines the baud rate of the UART.
R/W
0
12.7.4 UART n Divisor Latch MSB register (UARTn_DLM) (n=0,1)
Address Offset: 0x04
Bit
Name
Description
Attribute
Reset
31:8
Reserved
R
0
7:0
DLM[7:0]
The UART Divisor Latch MSB Register, along with the DLL register,
determines the baud rate of the UART.
R/W
0