English
Language : 

C8051F326 Datasheet, PDF (119/140 Pages) List of Unclassifed Manufacturers – Full Speed USB, 16 kB Flash MCU Family
C8051F326/7
13. UART0
UART0 is an asynchronous, full duplex serial port offering a variety of data formatting options. A dedicated
baud rate generator with a 16-bit timer and selectable prescaler is included, which can generate a wide
range of baud rates (details in Section “13.1. Baud Rate Generator” on page 120). A received data
FIFO allows UART0 to receive up to three data bytes before data is lost and an overflow occurs.
UART0 has six associated SFRs. Three are used for the Baud Rate Generator (SBCON0, SBRLH0, and
SBRLL0), two are used for data formatting, control, and status functions (SCON0, SMOD0), and one is
used to send and receive data (SBUF0). The single SBUF0 location provides access to both transmit and
receive registers. Writes to SBUF0 always access the Transmit register. Reads of SBUF0 always
access the buffered Receive register; it is not possible to read data from the Transmit register.
With UART0 interrupts enabled, an interrupt is generated each time a transmit is completed (TI0 is set in
SCON0), or a data byte has been received (RI0 is set in SCON0). The UART0 interrupt flags are not
cleared by hardware when the CPU vectors to the interrupt service routine. They must be cleared manually
by software, allowing software to determine the cause of the UART0 interrupt (transmit complete or receive
complete). If additional bytes are available in the Receive FIFO, the RI0 bit cannot be cleared by software.
S Y SC LK
USBCLK
Baud Rate Generator
SBRLH0 SBRLL0
Overflow
Timer (16-bit)
EN
Pre-Scaler
(1, 4, 12, 48)
SBCON0
Data Formatting
SMOD0
Control / Status
SCON0
UART0
Interrupt
Figure 13.1. UART0 Block Diagram
TX
Logic
SBUF0
RX FIFO
(3 Deep)
RX
Logic
TX0
Write to SBUF0
Read of SBUF0
RX0
Rev. 0.5
119