Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > AVR |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
21.15. Описание регистров21.15.1. DATA - регистр ввода-вывода данных модуля USART
Регистр буфера данных передатчика USART и регистр буфера данных приемника USART доступны по одному и тому же адресу - адресу регистра данных USART (DATA). Запись в регистр данных (DATA) фактически выполняется, как запись в регистр буфера данных передатчика (TXB). При чтении же регистра DATA фактически возвращается содержимое регистра буфера данных приемника (RXB). При работе с 5-, 6- или 7-битными данными, старшие неиспользуемые биты игнорируются передатчиком и обнуляются приемником. Буфер передачи можно записать только тогда, когда флаг DREIF в регистре STATUS равен единице. Запись в DATA, когда флаг DREIF равен нулю, игнорируется передатчиком USART. Передатчик, при условии разрешения его работы, после записи данных в буфер передачи выполняет загрузку данных в сдвиговый регистр передатчика сразу после освобождения последнего. После этого, данные передаются по линии TxD. Буфер приемника работает, как двухуровневый буфер FIFO. Состояние буфера FIFO и соответствующих флагов в регистре статуса (STATUS) изменяется при каждом чтении буфера приемника. Опрос флагов статуса необходимо делать только перед чтением DATA, в противном случае они будут некорректными. 21.15.2. STATUS - регистр статуса USART
Данный флаг становится равным единице, когда в приемном буфере имеются несчитанные данные, и нулю, если приемный буфер пуст (т.е. не содержит каких-либо несчитанных данных). После отключения приемника, приемный буфер опустошается, а флаг RXCIF становится равным нулю. При управлении приемом данных по прерываниям, сброс флага RXCIF происходит при выполнении чтения принятых данных из регистра DATA в процедуре обработки прерывания по завершению приема. Если этого не сделать, сразу после выхода из текущего прерывания будет инициировано новое прерывание. Альтернативно, данный флаг можно сбросить записью в него единицы.
Данный флаг становится равным единице по завершению сдвига данных сдвиговым регистром передатчика при условии, что в буфере передатчика (DATA) нет новых данных для передачи. Флаг TXCIF автоматически сбрасывается при переходе на вектор прерывания по завершению передачи. Альтернативно, флаг можно сбросить записью в него единицы.
Флаг DREIF сигнализирует о готовности буфера передатчика (DATA) к записи новых данных. Флаг равен единице, когда буфер передачи пуст, и нулю, когда в буфере есть подлежащие передаче данные и они еще не были перемещены в сдвиговый регистр. Данный флаг становится равным единице после сброса МК, чтобы сигнализировать о готовности передатчика. Выполняя запись в регистр STATUS, всегда записывайте нуль в данный бит. Флаг DREIF сбрасывается при записи в регистр DATA. При управлении передачей данных по прерываниям, в процедуре обработки прерывания по опустошению буфера данных необходимо, либо записать новые данные в регистр DATA для сброса флага DREIF, либо отключить прерывание по опустошению буфера. Если этого не сделать, сразу после выхода из текущего прерывания будет инициировано новое прерывание.
Флаг FERR указывает на состояние первого стоп-бита той посылки, которая в данный момент может быть считана из приемного буфера. Флаг равен единице, если первый стоп-бит принят с нулевым (ошибочным) значением, и равен нулю, если принятый первый стоп-бит равен единице. Флаг остается действительным до момента чтения данных из приемного буфера (DATA). Флаг FERR никак не зависит от настройки бита SBMODE в регистре CTRLC, т.к. приемник игнорирует все стоп-биты, кроме первого. Выполняя запись в регистр STATUS, всегда записывайте нуль в данный бит. В ведущем режиме SPI данный флаг не используется.
Установка флага BUFOVF сигнализирует о потери данных вследствие заполнения буфера приемника. Установка данного флага происходит при обнаружении условия переполнения буфера. Такое условие возникает, когда буфер приемника заполнен (двумя символами данных), в сдвиговом регистре приемника ожидает чтения новый символ данных и обнаруживается новый старт-бит. Флаг остается действительным до выполнения чтения буфера приемника (DATA). При выполнении записи в регистр STATUS всегда записывайте нуль в данный бит. В ведущем режиме SPI данный флаг не используется.
Данный флаг принимает единичное значение, если разрешена проверка паритета и при приеме посылки, которая в данный момент может быть считана из приемного буфера, обнаружена ошибка паритета. Если проверка паритета отключена, флаг PERR будет всегда считываться с нулевым значением. Данный бит остается действительным до выполнения чтения буфера приемника (DATA). Выполняя запись в регистр STATUS, всегда записывайте нуль в данный бит. Более детально о вычислении паритета см. в 21.4.1 "Вычисление бита паритета". В режиме ведущего SPI данный флаг не используется.
Данный бит является резервным и всегда считывается с нулевым значением. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нуль в резервный бит.
В бите RXB8 хранится значение девятого принятого бита данных при работе с 9-битными данными. Чтение данного бита необходимо выполнить перед чтением младших бит данных из регистра DATA. В режиме ведущего SPI данный бит не используется. 21.15.3. CTRLA - регистр управления А модуля USART
Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот в регистр, всегда записывайте нули в резервные биты.
Данные биты разрешают прерывание по завершению приема и задают его уровень в соответствии с описанием в разделе 12 "Прерывания и программируемый многоуровневый контроллер прерываний". Разрешенное прерывание генерируется в случае установки флага RXCIF в регистре STATUS.
Данные биты разрешают прерывание по завершению передачи и задают его уровень в соответствии с описанием в разделе 12 "Прерывания и программируемый многоуровневый контроллер прерываний". Разрешенное прерывание генерируется в случае установки флага TXCIF в регистре STATUS.
Данные биты разрешают прерывание по опустошению буфера и задают его уровень в соответствии с описанием в разделе 12 "Прерывания и программируемый многоуровневый контроллер прерываний". Разрешенное прерывание генерируется в случае установки флага DREIF в регистре STATUS. 21.15.4 CTRLB - регистр управления В модуля USART
Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.
Запись единицы в данный бит разрешает работу приемника USART. После разрешения работы, приемник перекрывает нормальную работу порта на линии RxD. Отключение приемника приводит к опустошению приемного буфера и делает недействительными флаги FERR, BUFOVF и PERR.
Запись единицы в данный бит разрешает работу передатчика USART. После разрешения работы, передатчик перекрывает нормальную работу порта на линии TxD. Отключение передатчика (запись нуля в бит TXEN) вступит в силу только тогда, когда завершатся выполняющаяся и подготовленная передачи, т.е. когда в сдвиговом регистре передатчика и буферном регистре передатчика не окажется данных для передачи. После отключения, передатчик более не перекрывает линию TxD порта ввода-вывода.
Запись единицы в данный бит снижает коэффициент деления скорости с 16 до 8, что приводит к удвоению скорости в асинхронных режимах работы. В синхронном режиме данный бит не оказывает никакого влияния и в него всегда необходимо записывать нулевое значение. Данный бит также должен быть равен нулю при работе в асинхронном режиме совместно с модулем IRCOM. Данный бит не используется в режиме ведущего SPI.
С помощью данного бита можно активизировать режим мультипроцессорной связи. Если в бит MPCM записать единицу, приемник USART будет игнорировать все входящие посылки, которые не содержат информацию об адресе. Настройка бита MPCM не влияет на работу передатчика. Более детально о работе в этом режиме см. в разделе 21.12.1 "Режим мультипроцессорной связи". В режиме ведущего SPI данный бит не используется.
В бит TXB8 необходимо записать девятый бит передаваемых данных при работе с 9-битными данными. Запись данного бита необходимо выполнить перед записью младших бит данных в регистр DATA. В режиме ведущего SPI данный бит не используется. 21.15.5. CTRLC - регистр управления С модуля USART
Прим.: 1. Для ведущего режима SPI.
От данных бит зависит режим работы USART (см. таблицу 21.6). Таблица 21.6. Настройка бит CMODE
С помощью данных бит можно разрешить генерацию паритета и выбрать его тип в соответствии с таблицей 21.7. После разрешения генерации паритета, передатчик автоматически генерирует и передает бит паритета вместе с битами данных каждой посылки. В свою очередь, приемник, с учетом настройки PMODE, вычисляет бит паритета для принятых данных и сравнивает его с принятым значением бита паритета. Если обнаруживается несовпадение, устанавливается флаг PERR в регистре STATUS. Данные биты не используются в режиме ведущего SPI. Таблица 21.7. Настройка бит PMODE
Данный бит задает количество генерируемых передатчиком стоп-бит в соответствии с таблицей 21.8. Приемник данную настройку игнорирует. В режиме ведущего SPI данный бит не используется. Таблица 21.8. Настройка бит SBMODE
Биты CHSIZE[2:0] задают количество бит данных в посылке в соответствии с таблицей 21.9. Данная настройка распространяется как на приемник, так и на передатчик. Таблица 21.9. Настройка бит CHSIZE
От данного бита зависит очередность передачи бит данных. Если он равен единице, то первым будет передаваться младший бит данных. Если же он равен нулю, то первым будет передаваться старший бит данных. Данная настройка распространяется и на приемник и на передатчик. Изменение UDORD приводит к нарушению выполняющейся передачи или выполняющегося приема.
От значения бита UCPHA зависит, по какому фронту XCKn, переднему (первому) или заднему (последнему), производится выборка данных. См. 21.3.5 "Генерация синхронизации для шины SPI". 21.15.6. BAUDCTRLA - регистр скорости USART
В этом регистре хранится младший байт 12-битного значения настройки скорости USART. Четыре старших бита этого значения хранятся в регистре BAUDCTRLB. Изменение настройки скорости во время выполняющейся передачи передатчиком и приемником приведет к нарушению этой передачи. Обновление настройки предделителя генератора скорости происходит сразу после записи регистра BAUDCTRLA. 21.15.7 BAUDCTRLB - регистр скорости USART
С помощью данных бит можно задать коэффициент масштабирования скорости. Его значение задается в двоичном дополнительном коде от -7 (0b1001) до 7 (0b0111). Настройка -8 (0b1000) является резервной. Положительные значения коэффициента масштабированию приводят к делению частоты генератора скорости с коэффициентом 2BSCALE. Задание отрицательных значений коэффициента инициирует дробный счет в генераторе скорости, что приводит к увеличению разрешающей способности. См. выражения в таблице 21.1.
В данных битах хранится четыре старших бита 12-битного значения настройки скорости USART. Младший байт этого значения хранится в регистре BAUDCTRLA. Изменение настройки скорости во время выполняющейся передачи передатчиком и приемником приведет к нарушению этой передачи. Обновление настройки предделителя генератора скорости происходит сразу после записи регистра BAUDCTRLA. 21.16. Обзор регистров 21.16.1. Описание регистров модуля USART
21.16.1. Описание регистров модуля USART, работающего в режиме ведущего интерфейса SPI
21.17. Обзор векторов прерываний Таблица 21.10. Векторы прерываний модуля USART и значения смещений их адресов
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|