- •6.050702 «Електромеханвка»,
- •Создание нового проекта
- •Организация памяти
- •Сведения о портах ввода/вывода
- •Команды языка Assembler, необходимые для выполнения заданий
- •Контрольные вопросы
- •Описание stk500
- •Порядок выполнения работы
- •Индивидуальные задания
- •Контрольные вопросы
- •Организация памяти мк AtMega16
- •Введение
- •Команды работы с памятью
- •Индивидуальные задания
- •Контрольные вопросы:
- •Система прерываний AtMega16. Таймер/счетчик
- •Введение
- •Индивидуальные задания
- •Индивидуальные задания
- •Контрольные вопросы
- •Управление скоростью «бега» огонька по светодиодной панели микроконтроллера AtMega16
- •Порядок выполнения работы
- •Варианты заданий для студентов
- •Контрольные вопросы
- •Основы работы в среде разработки CodeVisionAvr. Широтно-импульсная модуляция (шим) микроконтроллера AtMega16
- •Введение
- •Среда разработки CodeVisionAvr. Пример генерации начального кода программы
- •Пример программы с комментариями
- •Индивидуальные задания
- •Usart: универсальный синхронный и асинхронный последовательный приемопередатчик микроконтроллера AtMega16
- •1. Введение
- •Генерация внутренней синхронизации – генератор скорости связи
- •Работа с удвоением скорости связи (u2x)
- •Режим синхронной связи
- •Форматы посылки
- •1.1.5 Бит паритета
- •1.1.6. Инициализация усапп
- •1.1.9. Передача данных
- •1.1.10. Передача посылок с 5…8 битами данных
- •1.2. Конфигурирование Atmega16
- •1.2.1. Конфигурирование порта d
- •1.2.2. Описание регистров усапп
- •1.3. Генерация начального кода программы в среде разработки CodeVisionAvr
- •1.4. Работа с терминалом
- •1.5. Описание и листинг программы
- •Контрольные вопросы:
Режим синхронной связи
Если используется режим синхронной связи (UMSEL = 1), то вывод XCK используется или как вход синхронизации (подчиненный режим) или как выход синхронизации (ведущий режим). Зависимость между тактовыми фронтами и выборкой данных или изменением данных одна и та же. Основной принцип работы заключается в том, что выборка вводимых данных (на RxD) осуществляется фронтом XCK, который противоположен фронту, по которому происходит изменение выходных данных (на TxD).
Бит UCPOL регистра UCRSC выбирает, какой фронт XCK используется для выборки данных, а какой – для изменения данных. На рис. 1 показано, что при UCPOL=0 изменение данных происходит по нарастающему фронту XCK, а выборка – по падающему фронту XCK. Если установлен бит UCPOL, то изменение данных происходит по падающему фронту XCK, а выборка – по нарастающему фронту XCK.
Рис. 1. Временная диаграмма для синхронного режима XCK
Форматы посылки
Последовательная посылка состоит из битов данных, битов синхронизации (старт и стоп-биты), а также опционального бита паритета для поиска ошибок. УСАПП поддерживает все 30 комбинаций следующих форматов посылок:
1 старт-бит,
5, 6, 7, 8 или 9 бит данных,
без паритета, с битом четности, с битом нечетности,
1 или 2 стоп-бита.
Формат посылки, который используется УСАПП, задается битами UCSZ2:0, UPM1:0 и USBS в регистрах UCSRB и UCSRC. Обратите внимание, что изменение установок любого из этих битов может привести к повреждению текущего сеанса связи как для приемника, так и для передатчика.
Биты выбора длины передаваемых данных (UCSZ2:0) определяют, из скольких битов данных состоит посылка. Биты режима паритета УСАПП (UPM1:0) разрешают передачу/контроля бита паритета и устанавливают тип паритета: четность, нечетность. Выбрать один или два стоп-бита позволяет бит выбора стоп-бита УСАПП (USBS). Флаг ошибки посылки FE позволяет выявить ситуацию, когда первый стоп-бит равен 0.
1.1.5 Бит паритета
Бит паритета вычисляется путем выполнения логической операции исключающего ИЛИ над всеми битами данных. Если используется нечетность, то результат этой операции инвертируется. Сказанное отражено в следующих выражениях:
,
,
где
PЧЕТН – бит четного паритета,
PНЕЧЕТН – бит нечетного паритета,
dn – n-й бит данных в посылке.
Генератор паритета вычисляет бит паритета для включения в состав последовательной посылки. Если бит паритета установлен (UPM1 = 1), то управляющая логика передатчика вставляет бит паритета между последним битом данным и первым стоп-битом в отправляемой посылке.
1.1.6. Инициализация усапп
Перед началом сеанса связи необходимо выполнить инициализацию УСАПП. Процесс инициализации обычно состоит из установки скорости связи, задания формата посылки и разрешения работы передатчика и приемника. Если используется управление связью по прерываниям, то во время инициализации необходимо, чтобы был сброшен флаг общего разрешения прерываний.
Если необходимо выполнить повторную инициализацию УСАПП, например, для изменения скорости связи или формата посылки, то необходимо убедиться, чтобы во время инициализации передача была приостановлена. Флаг TXC может использоваться для проверки завершения работы передатчика, а флаг RXC – для проверки отсутствия в приемном буфере несчитанных данных. Обратите внимание, что при использовании флага TXC он должен сбрасываться программно перед началом каждой передачи (перед записью в UDR).
