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
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
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
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
. 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%