- •Кузнецов в.Н., Лисютченков с.Н. Цифровые и микропроцессорные устройства
- •Часть 3
- •220301– Автоматизация технологических процессов и производств
- •Содержание
- •Предисловие
- •Лабораторная работа №1 «Освоение среды разработки vmlab 3.12»
- •1.2 Теоретическое введение
- •1.2.1 Общие сведения
- •1.2.2 Среда разработки vmlab
- •1.2.3 Описание пользовательского интерфейса
- •1.2.4 Команды меню
- •Save All − сохранить все файлы Save As − сохранить файл текущего окна под новым именем
- •1.2.5 Доступные окна
- •1.2.6 Аппаратные компоненты
- •1.2.7 Формат программы на ассемблере
- •1.3 Порядок выполнения лабораторной работы
- •1.3.1 Создание нового проекта
- •1.3.2 Редактирование файла ассемблера
- •1.3.3 Ассемблирование и выполнение программы
- •1.4 Задание на лабораторную работу
- •1.5 Контрольные вопросы
- •1.6 Содержание отчета по лабораторной работе
- •Лабораторная работа №2 «Изучение микроконтроллера aTmega128 и основы программирования»
- •2.2.1 Общие сведения о микроконтроллере aTmega128
- •Регистры ввода/вывода (рвв)
- •Организация памяти
- •Внешние прерывания
- •2.2.9 Директивы транслятора ассемблера
- •2.2.10 Выражения
- •2.2.11 Операнды
- •2.2.12 Функции
- •2.2.13 Операции
- •2.3 Порядок выполнения лабораторной работы
- •2.4 Задание на лабораторную работу
- •Задание для индивидуальной работы
- •2.5 Контрольные вопросы
- •2.6 Содержание отчета по лабораторной работе
- •3.2.2 Адресация в микроконтроллере
- •3.2.3 Команды пересылки данных
- •Mov Rd,Rr(пересылка между рон) – копирует содержимое регистра Rrв регистр Rd. Регистр-источник Rrне изменяется.
- •3.2.4 Команды передачи управления
- •3.3 Порядок выполнения лабораторной работы
- •3.4 Задание на лабораторную работу
- •3.5 Контрольные вопросы
- •3.6 Содержание отчета по лабораторной работе
- •Лабораторная работа №4 «Выполнение арифметических операций»
- •4.2 Теоретическое введение
- •4.3 Порядок выполнения лабораторной работы
- •4.4 Задание на лабораторную работу
- •4.5 Контрольные вопросы
- •4.6 Содержание отчета по лабораторной работе
- •Лабораторная работа №5 «Изучение логических операций»
- •5.2 Теоретическое введение
- •Управление энергопотреблением и режимы сна.
- •5.3 Порядок выполнения лабораторной работы
- •5.4 Задания на лабораторную работу
- •5.5 Контрольные вопросы
- •5.6 Содержание отчета по лабораторной работе
- •Лабораторная работа №6 «Изучение портов ввода/вывода и их программирование»
- •6.2 Теоретическое введение
- •6.2.1 Общие сведения
- •6.2.2 Порты в качестве универсального цифрового ввода-вывода
- •6.2.3 Настройка выводов
- •6.2.4 Неподключенные выводы
- •6.2.5 Альтернативные функции порта
- •6.2.5.1 Альтернативные функции порта a
- •6.2.5.2 Альтернативные функции порта в
- •6.2.5.3 Альтернативные функции порта c
- •6.2.5.4 Альтернативные функции порта d.
- •6.2.5.5 Альтернативные функции порта e
- •6.2.5.6 Альтернативные функции порта f
- •6.2.5.1 Альтернативные функции порта g
- •6.2.6 Описание регистров портов ввода-вывода
- •6.2.7 Обращение к портам ввода/вывода
- •6.3 Порядок выполнения лабораторной работы на симуляторе
- •6.4 Задание на лабораторную работу
- •Задания для индивидуальной работы
- •Контрольные вопросы
- •6.6 Содержание отчета по лабораторной работе
- •Лабораторная работа №7.
- •7.2.1 Общие сведения о Память
- •7.2.2 Статическое озу памяти данных
- •7.2.3 Организация памяти
- •7.2.4 Запоминающее устройство sram
- •7.2.5 Временная диаграмма доступа к памяти
- •7.3 Память данных на эсппзу
- •7.3.1 Чтение и запись эсппзу
- •7.3.2 Адресные регистры эсппзу
- •Порядок выполнения
- •7.4 Память ввода-вывода
- •Порядок выполнения
- •Порядок выполнения
- •7.5 Задание на лабораторную работу
- •Задание для индивидуальной работы
- •7.6 Контрольные вопросы
- •7.7 Содержание отчета по лабораторной работе
- •Генерация тактовых импульсов
- •Инициализация усапп
- •8.2.2 Передача данных - Передатчик усапп
- •8.2.3 Прием данных - Приемник усапп
- •Асинхронный прием данных
- •8.2.4 Многопроцессорный режим связи
- •8.2.5 Описание регистров усапп
- •8.2.6 Последовательный периферийный интерфейс - spi
- •8.2.7 Функционирование вывода ss
- •8.2.8 Связь двух мк
- •8.3 Задание на лабораторную работу
- •Задание для индивидуальной работы
- •8.6 Контрольные вопросы
- •Лабораторная работа №9 «Изучение принципа работы таймеров/счетчиков микроконтроллера»
- •9.2 Теоретическое введение
- •9.2.1 Общие сведения о таймерах/счетчиках
- •9.2.2 Назначение выводов таймеров/счетчиков
- •9.2.5 Выбор источника тактового сигнала
- •9.2.6 Режим таймера
- •9.2.7 Функция захвата (Capture)
- •9.2.8 Функция сравнения (Compare)
- •9.2.9 Режим шим
- •9.2.10 Сторожевой таймер
- •9.2.11 Общие сведения о работе клавиатуры
- •9.2.12 Ввод кода нажатой клавиши
- •9.2.13 Сканирование и идентификация
- •Листинг проектного файла №9
- •На эмуляторе
- •9.4 Задание на лабораторную работу
- •Задания для индивидуальной работы
- •9.5 Контрольные вопросы
- •10.2.2 Функционирование модуля ацп
- •10.2.3 Принцип действия
- •10.2.4 Каналы дифференциального усиления
- •10.2.5 Изменение канала или выбор опорного источника
- •10.2.6 Входные каналы ацп
- •10.2.7 Источник опорного напряжения ацп
- •10.2.8 Повышение точности преобразования
- •10.2.9 Методы компенсации смещения
- •10.2.10 Описание получения результата преобразования
- •10.2.5 Параметры ацп
- •10.2 Порядок выполнения работы на симуляторе
- •На эмуляторе
- •10.3 Задание на лабораторную работу
- •Задания для индивидуальной работы
- •10.4 Контрольные вопросы
- •Приложение
- •Список литературы
8.2.5 Описание регистров усапп
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
RXBn[7:0] |
UDRn (чтение) | |||||||
|
TXBn[7:0] |
UDRn (запись) | |||||||
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
|
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Рис 8.2 Регистр данных УСАПП - UDRn
Буферные регистры данных передатчика и приемника УСАППn расположены по одному и тому же адресу в области ввода-вывода, обозначенной как регистр данных УСАППn или UDRn. Если выполнять запись по адресу регистра UDRn, то записываемые данные помещаются в буферный регистр данных передатчика TXBn. По аналогии, при чтении регистра UDRn извлекается содержимое буферного регистра данных приемника RXBn.
При использования 5-, 6- или 7-битных форматов данных передатчик игнорирует, а приемник устанавливает нулевые значения неиспользуемых разрядов.
Запись в буфер передатчика можно выполнять, если установлен флаг UDREn в регистре UCSRAn. Данные записанные в UDRn при сброшенном флаге UDREn будут игнорированы передатчиком УСАППn. Если выполнена запись в приемный буфер и при этом работа передатчика была разрешена, то после освобождения сдвигового регистра передатчик загрузит в него значение из буферного регистра. После этого выполняется передача данных на выводе TxDn. Приемный буфер организован как двухуровневый буфер FIFO (первый пришел - последний вышел). Буфер FIFO изменяет свое состояние, если выполнено чтение из приемного буфера. Вследствие такой организации буфера необходимо следить, чтобы по данному адресу не использовались инструкции "чтение-модификация-запись" (SBI и CBI). Также нужно быть внимательным при использовании инструкций тестирования бита (SBIC и SBIS), т.к. их выполнение может также изменить состояние буфера FIFO.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
RXCn |
TXCn |
UDREn |
FEn |
DORn |
UPEn |
U2Xn |
MPCMn |
UCSRnA |
Чтение/запись |
Чт. |
Чт./Зп. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт./Зп. |
Чт./Зп. |
|
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Рис 8.3 Регистр А управления и статуса УСАПП - UCSRnA
Разряд 7 - RXCn: Флаг завершения приема УСАПП
Данный флаг устанавливается, если в приемном буфере содержатся несчитанные данные и сбрасывается, когда приемный буфер свободен (т.е., не содержит несчитанных данных). Если приемник отключается, то приемный буфер сбрасывается и, следовательно, флаг RXCn принимает нулевое значение. Флаг RXCn может использоваться для генерации прерывания по завершению приема (см. описание бита RXCIEn).
Разряд 6 - TXCn: Флаг завершения передачи УСАПП
Данный флаг устанавливается, если вся посылка из сдвигового регистра передатчика полностью передана и в передающем буфере UDRn нет новых данных для передачи. Флаг TXCn автоматически сбрасывается при переходе на вектор прерывания по завершению передачи или сбрасывается программно путем записи лог. 1 в позицию данного бита. Флаг TXCn может служить источником для генерации прерывания по завершению передачи (см. также описание бита TXCIEn).
Разряд 5 - UDREn: Флаг освобождения регистра данных УСАПП
Флаг UDREn индицирует о готовности приемного буфера UDRn к приему новых данных. Если UDREn=1, то буфер свободен и, следовательно, готов к записи. Флаг UDREn может служить источником для генерации прерывания по освобождению регистра данных (см. описание бит UDRIEn). UDREn устанавливается после сброса, индицируя о готовности передатчика.
Разряд 4 - FEn: Ошибка посылки
Данный бит устанавливается, если при приеме посылки, находящейся на выходе из приемного буфера, была определена ошибка в структуре посылки. Под ошибкой структуры в данном случае понимается нулевое значение первого стоп-бита в этой посылке. Значение данного бита действительно до чтения содержимого приемного буфера (UDRn). Флаг FEn принимает нулевое значение, если принятый стоп-бит имел правильное единичное значение. При записи в регистр UCSRnA в позиции данного бита необходимо указывать лог. 0.
Разряд 3 - DORn: Флаг переполнения данных
Данный бит устанавливает, если выявлено условие переполнения. Переполнение данных возникает, если заполнен приемных буфер (две посылки), новая посылка полностью принята в приемный сдвиговый регистр, а также обнаружен новый старт-бит. Значение данного бита действительно до чтения содержимого приемного буфера (UDRn). При записи в регистр UCSRnA в позиции данного бита необходимо указывать лог. 0.
Разряд 2 - UPEn: Ошибка паритета
Данный бит устанавливается, если следующая посылка в приемном буфере характеризуется ошибкой паритета, если во время приема этой посылки был разрешен контроль паритета (UPMn1 = 1). Данный бит имеет действительное значение до чтения приемного буфера (UDRn). При записи в регистр UCSRnA в позиции данного бита необходимо указывать лог. 0.
Разряд 1 - U2Xn: Удвоение скорости связи УСАПП
Данный бит оказывает влияние только в асинхронном режиме связи. В синхронном режиме в данный бит необходимо записать лог. 0. Запись в данный бит лог. 1 уменьшает в два раза значение коэффициента деления скорости связи с 16 до 8, тем самым удваивая скорость передачи данных в асинхронном режиме.
Разряд 0 - MPCMn: Режим многопроцессорной связи
Данный бит разрешает режим многопроцессорной связи. Если в бит MPCMn записать лог. 1, то все входящие посылки принимаемые приемником УСАПП будут игнорироваться, если они не содержат адресной информации. Установка бита MPCMn не влияет на работу передатчика.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
RXCIEn |
TXCIEn |
UDRIEn |
RXENn |
TXENn |
UCSZn2 |
RXB8n |
TXB8n |
UCSRnB |
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт. |
Чт./Зп. |
|
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Рис 8.4 Регистр B управления и статуса УСАППn - UCSRnB
Разряд 7 - RXCIEn: Разрешение прерывания по завершению приема
Запись в данный бит лог. 1 разрешает прерывание по флагу RXCn. Прерывание по завершению приема УСАППn генерируется, если RXCIEn=1, флаг общего разрешения прерываний I=1 (в регистре SREG), а также установлен бит RXCn в регистре UCSRnA.
Разряд 6 - TXCIE: Разрешение прерывания по завершению передачи
Запись в данный бит лог. 1 разрешает прерывание по флагу TXCn. Прерывание по завершению передачи УСАППn генерируется, если TXCIEn=1, флаг общего разрешения прерываний I=1 (в регистре SREG), а также установлен бит TXCn в регистре UCSRnA.
Разряд 5 - UDRIEn: Разрешение прерывания по освобождению регистра данных УСАПП
Установка данного флага разрешает прерывание по флагу UDREn. Прерывание по освобождению регистра данных генерируется, если бит UDRIEn=1, флаг общего разрешения прерываний I=1 (в регистре SREG) и установлен бит UDREn в регистре UCSRnA.
Разряд 4 - RXENn: Разрешение работы приемника
Запись в данный бит лог. 1 приводит к разрешению работы приемника УСАППn. При этом, приемник формирует отключающий сигнал, который разрешает альтернативную функцию вывода RxDn. Отключение приемника приводит к сбросу приемного буфера, теряя при этом значения флагов FEn, DORn и UPEn.
Разряд 3 - TXENn: Разрешение работы передатчика
Запись в данный бит лог. 1 разрешает работу передатчика УСАППn. После этого передатчик генерирует отключающий сигнал, который активизирует альтернативную функцию вывода TxDn. Отключение передатчика (запись лог. 0 в TXENn) вступит в силу только по завершении генерации посылки, т.е. когда освободятся и сдвиговый регистр и буфер передатчика. После отключения вывод TxDn возвращается к выполнению функции обычной линии ввода-вывода.
Разряд 2 - UCSZn2: Формат данных
Бит UCSZn2 вместе с битами UCSZn1:0 в регистре UCSRnC задают количество бит данных в посылке, как для приемника, так и для передатчика.
Разряд 1 - RXB8n: Значение 8-ого разряда принятых данных
RXB8n содержит значение 9-го бита принятой посылки с 9-битным форматом. Данный бит необходимо считать прежде, чем будут считаны младшие 8 бит из регистра UDRn.
Разряд 0 - TXB8n: 8-ой разряд передаваемых данных
TXB8n содержит значение 9-ого бита данных для передачи посылки с 9-битным форматом. Данный бит необходимо записать перед тем, как будут записаны младшие разряды данных в UDRn.
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
- |
UMSELn |
UPMn1 |
UPMn0 |
USBSn |
UCSZn1 |
UCSZn0 |
UCPOLn |
UCSRnC |
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
|
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Рис 8.5 Регистр С управления и статуса УСАПП - UCSRnC
Разряд 7 - Резервный бит
Данный бит зарезервирован для будущего использования. Однако для совместимости с будущими микроконтроллерами при записи в регистр UCSRnC в позицию данного бита необходимо записывать лог. 0.
Разряд 6 - UMSELn: Выбор режима УСАПП
Данный бит позволяет переключаться между синхронным и асинхронными режимами последовательной связи.
Таблица 8.1. Установки бита UMSELn
UMSELn |
Режим связи |
0 |
Асинхронный |
1 |
Синхронный |
Разряды 5:4 - UPMn1:0: Режим паритета
Данные бита разрешают и устанавливают тип генерируемого и контролируемого паритета. После разрешения паритета передатчик автоматически генерирует и передает бит паритета в каждой посылке. Приемник генерирует бит паритета для принятых данных и сравнивает его со значением принятого в этой посылке бита паритета, а по результату сравнения устанавливает флаг ошибки паритета UPEn в регистре UCSRnA.
Таблица 8.2. Установки бит UPMn
UPMn1 |
UPMn0 |
Режим паритета |
0 |
0 |
Отключен |
0 |
1 |
(Резерв) |
1 |
0 |
Четность |
1 |
1 |
Нечетность |
Разряд 3 - USBSn: Выбор числа стоп-бит
Данный бит определяет сколько стоповых бит вставляет передатчик при генерации посылки. Приемник игнорирует эту настройку.
Таблица 8.3. Установки бита USBSn
USBSn |
Число стоп-бит |
0 |
1 бит |
1 |
2 бита |
Разряды 2:1 - UCSZn1:0: Формат данных
Биты UCSZn1:0 вместе с UCSZn2 в регистре UCSRnB задают количество бит данных в посылке, как для приемника, так и для передатчика.
Таблица 8.4. Установки бит UCSZn
UCSZn2 |
UCSZn1 |
UCSZn0 |
Формат данных |
0 |
0 |
0 |
5 бит |
0 |
0 |
1 |
6 бит |
0 |
1 |
0 |
7 бит |
0 |
1 |
1 |
8 бит |
1 |
0 |
0 |
Резерв |
1 |
0 |
1 |
Резерв |
1 |
1 |
0 |
Резерв |
1 |
1 |
1 |
9 бит |
Разряд 0 - UCPOLn: Полярность синхронизации
Данный бит используется только в синхронном режиме. Если используется асинхронный режим, то в данный бит необходимо записать лог. 0. В синхронном режиме бит UCPOLn определяет соотношение между выборкой входящих данных и обновлением передаваемых данных и сигналом тактирования синхронной связи (XCKn).
Таблица 8.5. Установки бит UCPOLn
UCPOLn |
Изменение передаваемых данных на выходе TxDn |
Выборка принимаемых данных на входе RxDn |
0 |
Нарастающий фронт XCKn |
Падающий фронт XCKn |
1 |
Падающий фронт XCKn |
Нарастающий фронт XCKn |
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
- |
- |
- |
- |
UBRRn[11:8] |
UBRRnH | |||
|
UBRRn[7:0] |
UBRRnL | |||||||
Чтение/запись |
Чт. |
Чт. |
Чт. |
Чт. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
|
|
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
|
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Рис 8.6 Регистры скорости связи УСАПП - UBRRnL и UBRRnH
Разряды 15:12 -Зарезервированные разряды
Данные разряды зарезервированы для будущего использования. Для совместимости с последующими разработками необходимо записать лог. 0 в эти разряды во время записи в регистр UBRRnH.
Разряды 11:0 - UBRRn11:0: Регистр скорости связи УСАПП
UBRR - 12-разр. регистр, который задает значение скорости связи УСАПП. Регистр UBRRnH содержит 4 старших разряда, а UBRRnL 8 младших разрядов значения скорости УСАППn. Если во время передачи или приема изменить скорость связи, то сеанс связи будет нарушен. Запись в регистр UBRRnL инициирует обновление предделителя скорости связи.