beautypg.com

5 auto-baud-rate detection, Equation 17. baud rate formula, Table 443. divisor values for typical baud rates – Intel CONTROLLERS 413808 User Manual

Page 666: 443 divisor values for typical baud rates, Equation 17.baud rate formula

background image

Intel

®

413808 and 413812—UARTs

Intel

®

413808 and 413812 I/O Controllers in TPER Mode

Developer’s Manual

October 2007

666

Order Number: 317805-001US

13.3.5

Auto-Baud-Rate Detection

Each UART supports auto-baud-rate detection. When enabled, UART counts the number

of 33.334 MHz clock cycles within the start-bit pulse. This number is then written into

the Auto-Baud-Count register (ACR) and used to calculate the baud rate. When ACR is

written, an Auto-Baud-Lock Interrupt is generated (when enabled), and the UART

automatically programs the Divisor Latch registers with the appropriate baud rate.

When preferred, the processor can read the Auto-Baud- Count register using this

information to program the Divisor-Latch registers with a baud rate calculated by the

processor. After the baud rate has been programmed, the processor is responsible to

verify that the predetermined characters (usually AT or at) are being received correctly.
When the UART programs Divisor Latch registers, users can choose between two

auto-baud calculation methods: table- and formula-based. The method is selected via

bit ABT of the Auto-Baud Control register (ABR). When the formula method is used, any

baudrate allowed in

Equation 17

can be programmed by the UART. This method works

well for higher baud rates, but could possibly fail below 28.8 kbps when the remote

transmitter’s actual baud rate differs by more than one percent of its target.

The table method is more immune to such errors since the table rejects uncommon

baud rates and rounds to the common ones. The table method allows any baud rate in

Equation 17

above 28.8 kbps. Below 28.8 kbps only baud rates of 19200, 14400, 9600,

4800, 1200, and 300 baud can be programmed by UART. Some typical values for

Divisor and corresponding baud rates are provided in

Table 443

. Baud rates above

3600 baud require only Divisor Latch Low Register to be programmed, since Divisor

Latch High Register would be 0.

When the baud rate is detected, auto-baud circuitry disarms itself by clearing bit ABE of

the Auto-Baud Control register (ABR). To rearm the circuitry, ABE bit must be rewritten.

Note:

For the auto-baud-rate detection circuit to work correctly, the first data bit transmitted

after the start bit must be a logic ‘1’. When a logic ‘0’ is transmitted instead, the

autobaud circuit counts the zero as part of the start bit, with an incorrect baud rate

being programmed into DLL and DLH registers.

Equation 17.Baud Rate Formula

BaudRate

33.334MHz

16XDivisor

(

)

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

=

Table 443. Divisor Values for Typical Baud Rates

Baud Rate

Divisor

UART Rate

Error

115.2K

18

115.74K

0.47%

57.6K

36

57.87K

0.47%

38.4K

54

38.58K

0.47%

33.6K

62

33.60K

0.01%

28.8K

72

28.94K

0.47%

19.2K

109

19.29K

0.47%

14.4K

145

14.47K

0.47%

9600

217

9645

0.47%

4800

434

4800

0.01%

3600

579

3600

0.01%

2400

868

2400

0.01%

1200

1736

1200

0.01%

600

3472

600

0.01%

300

6944

300

0.01%