C8051F502-IMR Silicon Laboratories Inc, C8051F502-IMR Datasheet - Page 243

no-image

C8051F502-IMR

Manufacturer Part Number
C8051F502-IMR
Description
MCU 8-Bit C8051F50x 8051 CISC 64KB Flash 2.5V/3.3V/5V 32-Pin QFN EP T/R
Manufacturer
Silicon Laboratories Inc
Datasheet

Specifications of C8051F502-IMR

Package
32QFN EP
Device Core
8051
Family Name
C8051F50x
Maximum Speed
50 MHz
Ram Size
4.25 KB
Program Memory Size
64 KB
Operating Supply Voltage
2.5|3.3|5 V
Data Bus Width
8 Bit
Program Memory Type
Flash
Number Of Programmable I/os
25
Interface Type
I2C/SPI/UART
On-chip Adc
32-chx12-bit
Operating Temperature
-40 to 125 °C
Number Of Timers
4

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
C8051F502-IMR
0
24. 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 “24.1. Baud Rate Generator” on page 243). 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.
24.1. Baud Rate Generator
The UART0 baud rate is generated by a dedicated 16-bit timer which runs from the controller’s core clock
(SYSCLK) and has prescaler options of 1, 4, 12, or 48. The timer and prescaler options combined allow for
a wide selection of baud rates over many clock frequencies.
The baud rate generator is configured using three registers: SBCON0, SBRLH0, and SBRLL0. The
UART0 Baud Rate Generator Control Register (SBCON0, SFR Definition 24.4) enables or disables the
baud rate generator, selects the clock source for the baud rate generator, and selects the prescaler value
for the timer. The baud rate generator must be enabled for UART0 to function. Registers SBRLH0 and
SBRLL0 contain a 16-bit reload value for the dedicated 16-bit timer. The internal timer counts up from the
reload value on every clock tick. On timer overflows (0xFFFF to 0x0000), the timer is reloaded. The baud
rate for UART0 is defined in Equation 24.1, where “BRG Clock” is the baud rate generator’s selected clock
source. For reliable UART operation, it is recommended that the UART baud rate is not configured for
baud rates faster than SYSCLK/16.
SYSCLK
SBRLH0
Timer (16-bit)
Baud Rate Generator
SBRLL0
EN
SBCON0
Figure 24.1. UART0 Block Diagram
Overflow
(1, 4, 12, 48)
Pre-Scaler
Rev. 1.2
Data Formatting
Control / Status
Interrupt
UART0
SMOD0
SCON0
C8051F50x/F51x
TX Holding
RX FIFO
(3 Deep)
Register
SBUF0
Logic
Logic
RX
TX
Write to SBUF0
Read of SBUF0
TX0
RX0
243

Related parts for C8051F502-IMR