ISD94100 Series Technical Reference Manual
Sep 9, 2019
Page
574
of 928
Rev1.09
IS
D
9
410
0
S
ER
IE
S
T
E
C
HN
ICA
L
RE
F
E
RE
NCE
M
AN
U
AL
6.12.5.3 UART Controller Auto-Baud Rate Function Mode
The ISD94100 Auto-Baud Rate function measures the baud rate of in-coming data from UART RX pin
automatically. When the Auto-Baud Rate measurement is finished, the measuring baud rate is loaded
into BRD (UART_BAUD[15:0]).
Both BAUDM1 (UART_BAUD[29]) and BAUDM0 (UART_BAUD[28]) are set to 1 automatically. UART
RX data from Start bit to 1
st
rising edge time is set by 2
ABRDBITS
bit time in Auto-Baud Rate function
detection frame.
2
ABRDBITS
bit time from Start bit to the 1
st
rising edge is calculated by setting ABRDBITS
(UART_ALTCTL[20:19]). Setting ABRDEN (UART_ALTCTL[18]) is to enable auto-baud rate function.
In beginning stage, the UART RX is kept at 1. Once falling edge is detected, START bit is received. The
auto-baud rate counter is reset and starts counting. The auto-baud rate counter will be stop when the
1
st
rising edge is detected. Then, auto-baud rate counter value divided by ABRDBITS
(UART_ALTCTL[20:19]) is loaded to BRD (UART_BAUD[15:0]) automatically. ABRDEN
(UART_ALTCTL[18]) is cleared. Once the auto-baud rate measurement is finished, the ABRDIF
(UART_FIFOSTS[1]) is set. When auto-baud rate counter is overflow, ABRDTOIF (UART_FIFOSTS[2])
is set. ABRDIF (UART_FIFOSTS[1]) or ABRDTOIF (UART_FIFOSTS[2]) cause the auto-baud rate flag
ABRIF(UART_ALTCTL[17]) is generated. If the ABRIEN (UART_INTEN[18]) is enabled,
ABRIF(UART_ALTCTL[17]) cause the auto-baud rate interrupt ABRINT (UART_INTSTS[31]) is
generated.
start
bit 1
bit 2
bit 0
bit 3
bit 4
bit 5
bit 6
UART_RX
0 1 2 3
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
... ...
...
...
...
...
...
... ...
bit 7
parity
stop
Auto Baud
Rate Counter
m
m÷ 2
n
keep old BRD
n = 00
n = 01
n = 10
n = 11
ABRDIF
(UART_FIFOSTS[1])
BRD
(UART_BAUD[15:0])
ABRDEN
(UART_ALTCTL[18])
n = ABRDBITS (UART_ALTCTL[20:19])
Figure 6.12-3 Auto-Baud Rate Measurement
Programming Sequence Example:
1.
Program ABRDBITS (UART_ALTCTL[20:19]) to determines UART RX data 1
st
rising
edge time from Start by 2
ABRDBITS
bit time.
2.
Set ABRIEN (UART_INTEN[18]) to enable auto-baud rate function interrupt.
3.
Set ABRDEN (UART_ALTCTL[18]) to enable auto-baud rate function.