В приемопередатчик UART встроен специальный контроллер скорости передачи данных, представляющий собой делитель частоты для определения скорости передачи данных на основании такта системной синхронизации.
Скорость передачи может быть вычислена по следующему уравнению:
где fBaud – скорость передачи в бодах, Ф – такт системной синхронизации; UBRR –содержимое 8-разрядного регистра UBRR (0...255).
Значения, записываемые в регистр UBRR для наиболее распространенных скоростей передачи данных, представлены в табл. 7.1.
Таблица 7.1. Значения регистра UBRR для наиболее распространенных скоростей передачи данных и частоты работы кварцевого осциллятора
Скорость
передачи
данных,
бод
1,8432 МГц
Погрешность (%)
3,6864 МГц
Погрешность (%)
4 МГц
Погреш ность
(%)
UBRR = 95
0,0
UBRR = 191
0,0
UBRR = 207
0,2
UBRR = 47
0,0
UBRR = 95
0,0
UBRR = 103
0,2
UBRR = 23
0,0
UBRR = 47
0,0
UBRR = 51
0,2
UBRR = 11
0,0
UBRR = 23
0,0
UBRR = 25
0,2
UBRR=7
0,0
UBRR=15
0,0
UBRR = 16
2,1
UBRR=5
0,0
UBRR = 11
0,0
UBRR=12
0,2
UBRR = 207
0,2
UBRR = 287
–
UBRR = 312
–
UBRR = 103
0,2
UBRR = 143
0,0
UBRR = 155
0,2
UBRR = 51
0,2
UBRR = 71
0,0
UBRR = 77
0,2
UBRR = 34
0,8
UBRR = 47
0,0
UBRR = 51
0,2
UBRR = 25
0,2
UBRR = 35
0,0
UBRR = 38
0,2
Значения, выделенные курсивом, превышают 255, и потому не могут быть установлены в регистре UBRR, имеющем длину всего 8 разрядов. Если потребуется соответствующая скорость передачи данных, то необходимо переходить на более низкие частоты колебаний кварцевого осциллятора.