Baud rate generator – Silicon Laboratories C8051F347 User Manual

Page 214

Advertising
background image

C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D

214

Rev. 1.3

19.1. Baud Rate Generator

The UART1 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 SYSCLK frequencies.

The baud rate generator is configured using three registers: SBCON1, SBRLH1, and SBRLL1. The
UART1 Baud Rate Generator Control Register (SBCON1, SFR Definition 19.4) enables or disables the
baud rate generator, and selects the prescaler value for the timer. The baud rate generator must be
enabled for UART1 to function. Registers SBRLH1 and SBRLL1 contain a 16-bit reload value for the dedi-
cated 16-bit timer. The internal timer counts up from the reload value on every clock tick. On timer over-
flows (0xFFFF to 0x0000), the timer is reloaded. For reliable UART operation, it is recommended that the
UART baud rate is not configured for baud rates faster than SYSCLK/16. The baud rate for UART1 is
defined in Equation 19.1.

Equation 19.1. UART1 Baud Rate

A quick reference for typical baud rates and system clock frequencies is given in Table 19.1.

Table 19.1. Baud Rate Generator Settings for Standard Baud Rates

Target Baud

Rate (bps)

Actual Baud

Rate (bps)

Baud Rate

Error

Oscillator

Divide

Factor

SB1PS[1:0]

(Prescaler Bits)

Reload Value in

SBRLH1:SBRLL1

SY

SCLK =

12

MHz

230400

230769

0.16%

52

11

0xFFE6

115200

115385

0.16%

104

11

0xFFCC

57600

57692

0.16%

208

11

0xFF98

28800

28846

0.16%

416

11

0xFF30

14400

14388

0.08%

834

11

0xFE5F

9600

9600

0.0%

1250

11

0xFD8F

2400

2400

0.0%

5000

11

0xF63C

1200

1200

0.0%

10000

11

0xEC78

SYSCLK =

24

MHz

230400

230769

0.16%

104

11

0xFFCC

115200

115385

0.16%

208

11

0xFF98

57600

57692

0.16%

416

11

0xFF30

28800

28777

0.08%

834

11

0xFE5F

14400

14406

0.04%

1666

11

0xFCBF

9600

9600

0.0%

2500

11

0xFB1E

2400

2400

0.0%

10000

11

0xEC78

1200

1200

0.0%

20000

11

0xD8F0

SYSCLK =

48

MHz

230400

230769

0.16%

208

11

0xFF98

115200

115385

0.16%

416

11

0xFF30

57600

57554

0.08%

834

11

0xFE5F

28800

28812

0.04%

1666

11

0xFCBF

14400

14397

0.02%

3334

11

0xF97D

9600

9600

0.0%

5000

11

0xF63C

2400

2400

0.0%

20000

11

0xD8F0

1200

1200

0.0%

40000

11

0xB1E0

Baud Rate

SYSCLK

65536

(SBRLH1:SBRLL1)

---------------------------------------------------------------------------

1
2

---

1

Prescaler

----------------------

=

Advertising
This manual is related to the following products: