Смекни!
smekni.com

AVR микроконтроллер AT90S2333 фирмы Atmel (стр. 13 из 22)

РЕГИСТР УПРАВЛЕНИЯ И СОСТОЯНИЯ 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

-

-

-

R R R R R\W R\W R\W R\W

Начальное значение

0 0 0 0 0 0 0 0

UBRR

09h(29h)

7

6

5

4

3

2

1

0

LSB

R\W R\W R\W R\W R\W R\W R\W R\W

Начальное значение

0 0 0 0 0 0 0 0

Это 12-разрядный регистр, который задает скорость передачи последо­вательного порта в соответствии с выражением приведенным выше. В реги­стре UBRRHI хранятся 4 старших бита, в UBRR - 8 младших бит.