Главная  Микроконтроллеры 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [ 18 ] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93]

Рис. 2.41. Регистр ввода/вывода UART (UDR)

Бит 76S43210 •

$0B($2B)r"RXC I ТХС I UDRE FE OR - - - USR

Чизап. R R/W R R R R R R

Нач. знач. О О 1 О О О О О

Рис. 2.42. Регистр состояния UART (USR)

Регистр USR доступен только для чтения, в нем хранится информация о состоянии UART.

Бит 7 - RXC - прием завершен. Этот бит устанавливается в 1, когда принятый символ переписывается из сдвигового регистра приемника в регистр UDR. Бит устанавливается независимо от обнаружения ошибки кадра. Если установлен бит RXC1E в регистре UCR, при установке бита выполняется прерывание по завершении приема

состоит из двух отдельных регистров, один используется для передачи данных, другой - для приема. При чтении UDR происходит доступ к регистру приемника, при записи - к регистру передатчика. При обмене 9-битовыми данными 9-й бит принятых данных записывается в бит RXB8 регистра UCR.

Если при приеме символа из регистра UDR не был прочитан предыдущий символ, в регистре UCR устанавливается флаг переполнения - OR. Установка этого бита означает, что последний принятый байт данных не переписывается из сдвигового регистра в регистр UDR и будет потерян. Бит OR буферирован и обновляется при чтении правильных данных из UDR. Таким образом, пользователь всегда может проверить состояние OR после чтения UDR и обнаружить происшедшее переполнение.

При сбросе бита RXEN в регистре UCR прием данных запрещается. При этом вывод PDO можно использовать для ввода/вывода общего назначения. При установке RXEN приемник подключен к выводу PDO независимо от состояния бита DDDO в регистре DDRD.

Управление UART

Бит 76S43210

$0С ($2С) I MSB I I I I I I I LSB I UDR

ЧтТзап. R/W RM RM R/W R/W R/W R/W R/W

Нач. знач 00000000



символа. RXC сбрасывается при чтении UDR. При использовании приема данных по прерыванию обработчик прерывания должен читать регистр UDR для сброса RXC, иначе при выходе из прерывания оно будет вызвано снова.

Бит 6 - ТХС - передача завершена. Этот бит устанавливается в 1, если символ из сдвигового регистра передатчика (включая стоповый бит) передан, а в регистр UDR не были записаны новые данные. Этот флаг особенно полезен при полудуплексной связи, когда передающее устройство должно перейти в режим приема и освободить линию связи сразу по окончании передачи. Если установлен бит TXIE в регистре UCR, при установке ТХС выполняется прерывания по окончании передачи. ТХС сбрасывается аппаратно при выполнении соответствующего вектора прерывания. Кроме того, бит можно сбросить, записав в него 1.

Бит 5 - UDRE - регистр данных UART пуст. Этот бит устанавливается в 1, когда данные, записанные в UDR, переписываются в регистр сдвига передатчика. Установка этого бита означает, что передатчик готов принять следующий символ для передачи. Если установлен бит UDRIE в регистре UCR, при установке этого бита выполняется прерывание окончания передачи. Бит UDRE сбрасывается при записи регистра UDR. При использовании передачи, управляемой прерыванием, подпрограмма обслуживания прерывания должна записывать UDR, чтобы сбросить бит UDRE, иначе при выходе из прерывания оно будет вызвано снова. При сбросе этот бит устанавливается в 1, чтобы показать готовность передатчика.

Бит 4 - FE - ошибка кадра. Этот бит устанавливается при обнаружении условия ошибки кадра, т. е. если стоповый бит принятого байта равен 0. Бит FE сбрасывается при приеме единичного стопового бита.

Бит 3 - OR - переполнение. Этот бит устанавливается при обнаружении условия переполнения, т. е. в том случае, когда символ из регистра UDR не был прочитан до того, как заполнился сдвиговый регистр приемника. Этот бит буферирован, т. е. остается установленным до тех пор, пока из регистра UDR не будут прочитаны правильные данные. Бит OR сбрасывается, когда принятые данные переписываются в UDR.

Биты 2...0 - в AT90S2313 зарезервированы и всегда читаются как 0.



Бит 7 - RXCIE - разрешение прерывания по окончании приема. Если RXC1E = 1, установка бита RXC в регистре USR приводит к выполнению прерывания по окончании приема (при условии, что прерывания разрешены).

Бит 6 - IXCIE - разрешение прерывания по окончании передачи. Если этот бит установлен, уста1ювка бита ТХС в USR приводит к выполнению прерывания по окончании передачи (при условии, что прерывания разрешены).

Бит 5 - UDRIE - прерывание по очистке регистра данных последовательного порта. Если этот бит установлен, установка бита UDRE в USR приводит к выполнению прерывания по очистке регистра данных UART (при условии, что прерывания разрешены).

Бит 4 - RXEN - разрешение приемника. При установке этого бита разрешается работа приемника UART. Если приемник выключен, флаги ТХС, OR и FE не устанавливаются. Если эти флаги установлены, сброс RXEN не очищает их.

Бит 3 - TXEN - разрешение передатчика. Прн установке этого бита разрешается работа передатчика UART. При запрещении работы передатчика во время передачи символа он продолжает работать, пока не будет очищен сдвиговый регистр и не будет передан символ, помещенный в UDR.

Бит 2 - CHR9 - 9-битовые посылки. Если этот бит установлен, принимаемые и передаваемые символы имеют длину 9 битов. Для передачи и приема 9-го символа используются биты RXB8 и ТХВ8 соответственно. 9-й бит мож1ю использовать как дополнтельный стоповый бит или как признак четности.

Бит 1 - RXB8 - 8 битов принимаемых данных. Если установлен бит CHR9, сюда записываегся 9-й бит принятых данных.

Бит О - ТХВ8 - 8 битов передаваемых данных. Ecjhi установлен биг CHR9, отсюда берется 9-й бит передаваемых данных.

Бит 7 6543210

$0А ($2А) I RXCIE I TXCIE UORIE RXEN TXEN CHR9 RXBB \ ТХВВ UCR

Чт./эап. RW RW RW fWl RW RW R W

Нач. знач. 00000010

Рис. 2.43. Регис rp управления U.-\RT (UCR)



[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [ 18 ] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93]

0.001