Preliminary
S3C2451 RISC MICROPROCESSOR
UART
15-19
Preliminary product information describe products that are in development,
for which full characterization data and associated errata are not yet available.
Specifications and information herein are subject to change without notice.
Baud-rate Generation
Each UART's baud-rate generator provides the serial clock for the transmitter and the receiver. The source clock
for the baud-rate generator can be selected with the S3C2451X's internal system clock or EXTUARTCLK. Clock
frequencies of 16 times the baud rate are used for sampling serial data to minimize error. Clock of 16 times baud-
rate is generated by dividing the source clock(PCLK or divided EPLL clock or EXTUARTCLK). (where dividend is
selectable by setting Clock Selection of UCONn). The baud-rate clock is generated by dividing the clock of 16
times baudrate by 16.
UART BAUD RATE DIVISOR REGISTER
There are four UART baud rate divisor registers including UBRDIV0, UBRDIV1, UBRDIV2 and UBRDIV3 in the
UART block. The value stored in the baud rate divisor register (UBRDIVn) and dividing slot register(UDIVSLOTn),
are used to determine the serial Tx/Rx clock rate (baud rate) as follows:
DIV_VAL = U (num of 1’s in UDIVSLOTn)/16
= (SRCCLK / (baud rate x 16 ) ) –1
(SRCCLK : PCLK, EXTUARTCLK or divided EPLL clock)
Where, Interger part of DIV_VAL should be from 1 to (2
16
-1), but can be set zero only using the EXTUARTCLK or
divided EPLL clock.
Using UDIVSLOT which is the factor of floating point divisor, you can make more accurate baud rate. (when
DIV_VAL is 0, floating part will not be affected)
For example, if the baud rate is 115200 bps and SRCCLK is 40 MHz, UBRDIVn and UDIVSLOTn are :
DIV_VAL = (40000000 / (115200 x 16)) -1
= 21.7 -1 (actual dividing value is 21.7)
= 20.7 (but for register setting, 20.7 is needed here)
* UBRDIVn = 20 ( integer part of DIV_VAL )
(num of 1’s in UDIVSLOTn)/16 = 0.7
(num of 1’s in UDIVSLOTn) = 11
* UDIVSLOTn = 0xEEEA(1110_1110_1110_1010b), 0xDDD5(1101_1101_1101_1010b) or etc.
( floating point part of DIV_VAL )
As a result, DIV_VAL = 20.6875
We recommend to select UDIVSLOTn as following table in next page.