| ||||||||
0Ch(2Ch) |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
MSB |
LSB |
|||||||
R\W |
R\W |
R\W |
R\W |
R\W |
R\W |
R\W |
R\W |
|
Начальное значение |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
Физически регистр UDR является двумя отдельными регистрами, доступ к которым происходит по одному адресу. При записи происходит запись в регистр передатчика, при чтении - читается регистр приемника.
РЕГИСТР УПРАВЛЕНИЯ И СОСТОЯНИЯ UART (UСSRA)
0Bh(2Bh)
7
6
5
4
3
2
1
0
RXC
TXC
UDRE
FE
OR
-
-
MPCM
R
R\W
R
R\W
R\W
R\W
R\W
R\W
Начальное значение
0
0
1
0
0
1
0
0
Бит 7 - RXC - прием завершен. Этот бит устанавливается в 1 когда принятый символ переписывается из сдвигового регистра приемника в регистр UDR. Бит устанавливается независимо от обнаружения ошибки кадра. Если установлен бит RXCIE в регистре UCR, при установке бита выполняется прерывание по завершению приема символа. RXC сбрасывается при чтении UDR. При использовании приема данных по прерыванию, обработчик прерывания должен читать регистр UDR для сброса RXC, иначе при выходе из прерывания оно будет вызвано снова.
Бит 6 - TXC - передача завершена. Этот бит устанавливается в 1 если символ из сдвигового регистра передатчика (включая стоповый бит) передан, а в регистр UDR не были записаны новые данные. Этот флаг особенно полезен при полудуплексной связи, когда предающее устройство должно перейти в режим приема и освободить линию связи сразу по окончанию передачи. Если установлен бит TXIE в регистре UCR, при установке TXC выполняется прерывания по окончанию передачи. TXC сбрасывается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, бит можно сбросить записав в него 1.
Бит 5 - UDRE - регистр данных UART пуст. Этот бит устанавливается в 1 когда данные, записанные в UDR переписываются в регистр сдвига передатчика. Установка этого бита означает, что передатчик готов принять следующий символ для передачи. Если установлен бит UDRIE в регистре UCR, при установке этого бита выполняется прерывание окончания передачи. Бит UDRE сбрасывается при записи регистра UDR. При использовании передачи управляемой прерыванием, подпрограмма обслуживания прерывания должна записывать UDR, чтобы сбросить бит UDRE, иначе при выходе из прерывания оно будет вызвано снова. При сбросе этот бит устанавливается в 1, чтобы проиндицировать готовность передатчика.
Бит 4 - FE - ошибка кадра. Этот бит устанавливается при обнаружении условия ошибки кадра, т.е. если стоповый бит принятого байта равен 0. Бит FE сбрасывается при приеме единичного стопового бита.
Бит 3 - OR - переполнение. Этот бит устанавливается при обнаружении условия переполнения, т.е. когда символ из регистра UDR не был прочитан до того, как заполнился сдвиговый регистр приемника. Этот бит буферирован, т.е. остается установленным до тех пор, пока из регистра UDR не будут прочитаны правильные данные. Бит OR сбрасывается когда принятые данные переписываются в UDR.
Биты 2..1 - зарезервированы. В AT90S2333/4433 эти биты зарезервированы и всегда читаются как 0.
Бит 0 - MPCM - режим мультипроцессорного обмена. Этот бит используется для перехода в режим мультипроцессорного обмена. Этот бит устанавливается когда ведомый процессор ожидает приема адресного байта. Когда ведомый процессор распознает свой адрес он должен сбросить бит MPCM и начать прием данных.
РЕГИСТР УПРАВЛЕНИЯ И СОСТОЯНИЯ UART (UСSRB)
0Ah(2Ah)
7
6
5
4
3
2
1
0
RXCIE
TXCIE
UDRIE
RXEN
TXEN
CHR9
RXB8
TXB8
R\W
R\W
R\W
R\W
R\W
R\W
R
W
Начальное значение
0
0
0
0
0
1
0
0
Бит 7 - RXCIE - Разрешение прерывания по окончанию приема. Если этот бит установлен (1), установка бита RXC в регистре UCSRA приводит к выполнению прерывания по окончанию приема (при условии что разрешены прерывания).
Бит 6 - TXCIE - Разрешение прерывания по окончанию передачи. Если этот бит установлен, установка бита TXC в UCSRA приводит к выполнению прерывания по окончанию передачи (при условии, что прерывания разрешены).
Бит 5 - UDRIE - Прерывание по очистке регистра данных последовательного порта. Если этот бит установлен, установка бита UDRE в UCSRA приводит к выполнению прерывания по очистке регистра данных UART (при условии, что прерывания разрешены).
Бит 4 - RXEN - Разрешение приемника. При установке этого бита разрешается работа приемника UART. Если приемник выключен, флаги TXC, OR и FE не устанавливаются. Если эти флаги установлены, сброс RXEN не очищает их.
Бит 3 - TXEN - Разрешение передатчика. При установке этого бита разрешается работа передатчика UART. При запрещении работы передатчика во время передачи символа, он продолжает работать пока не будет очищен сдвиговый регистр и не будет передан символ, помещенный в UDR.
Бит 2 - CHR9 - 9-битовые посылки. Если этот бит установлен, принимаемые и передаваемые символы имеют длину 9 бит. Для передачи и приема 9-го символа используются биты RXB8 и TXB8 соответственно. 9-й бит можно использовать как дополнительный стоповый бит или как признак четности.
Бит 1 - RXB8 - Бит 8 принимаемых данных. Если установлен бит CHR9, сюда записывается 9-й бит принятых данных.
Бит 0 - TXB8 - Бит 8 передаваемых данных. Если установлен бит CHR9, отсюда берется 9-й бит передаваемых данных.
ГЕНЕРАТОР СКОРОСТИ ПЕРЕДАЧИ
Генератор скорости передачи это делитель частоты, который генерирует скорости в соответствии с нижеприведенным выражением:
BAUD = Fck / (16*(UBRR+1))
здесь BAUD - скорость передачи (бод)
Fck - частота тактового генератора процессора
UBRR - содержимое регистров UBRRH и UBRR (0...4095)
В следующей таблице приведены значения регистра UBRR и процентное отклонение от стандартной скорости передачи для стандартных частот кварцевых генераторов.
Таблица.18
Скор.,
бод
1.0000
MHz
Ош.
%
Скор.,
бод
1.8432
MHz
Ош.
%
Скор.,
бод
2.0000
MHz
Ош.
%
2400
4800
9600
14400
19200
28800
38400
57600
76800
115200
25
12
6
3
2
1
1
0
0
0
0.2
0.2
7.5
7.8
7.8
7.8
22.9
7.8
22.9
84.3
2400
4800
9600
14400
19200
28800
38400
57600
76800
115200
47
23
11
7
5
3
2
1
1
0
0
0
0
0
0
0
0
0
33.0
0
2400
4800
9600
14400
19200
28800
38400
57600
76800
115200
51
25
12
8
6
3
2
1
1
0
0.2
0.2
0.2
3.7
7.5
7.8
7.8
7.8
22.9
7.8
Скор.,
бод
3.2768
MHz
Ош.
%
Скор.,
бод
3.6864
MHz
Ош.
%
Скор.,
бод
4.0000
MHz
Ош.
%
2400
4800
9600
14400
19200
28800
38400
57600
76800
115200
84
42
20
13
10
6
4
3
2
1
0.4
0.8
1.6
1.6
3.1
1.6
6.3
12.5
12.5
12.5
2400
4800
9600
14400
19200
28800
38400
57600
76800
115200
95
47
23
15
11
7
5
3
2
1
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
2400
4800
9600
14400
19200
28800
38400
57600
76800
115200
103
51
25
16
12
8
6
3
2
1
0.2
0.2
0.2
2.1
0.2
3.7
7.5
7.8
7.8
7.8
Скор.,
бод
7.3728
MHz
Ош.
%
Скор.,
бод
8.0000
MHz
Ош.
%
Скор.,
бод
9.2160
MHz
Ош.
%
2400
4800
9600
14400
19200
28800
38400
57600
76800
115200
191
95
47
31
23
15
11
7
5
3
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
2400
4800
9600
14400
19200
28800
38400
57600
76800
115200
207
103
51
34
25
16
12
8
6
3
0.2
0.2
0.2
0.8
0.2
2.1
0.2
3.7
7.5
7.8
2400
4800
9600
14400
19200
28800
38400
57600
76800
115200
239
119
59
39
29
19
14
9
7
4
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
6.7
0.0
РЕГИСТР СКОРОСТИ ПЕРЕДАЧИ (UBRR)
UBRRHI
03h(23h)
7
6
5
4
3
2
1
0
MSB
-
-
-
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
При использовании материалов активная ссылка на источник обязательна.