- •Введение
- •1. Омэвм avr семейства Mega
- •1.1. Технические характеристики микроконтроллера avr aTmega8515
- •1.2 Условное графическое обозначение (уго) микроконтроллера avr aTmega8515
- •1.3. Структура микроконтроллера аTmega8515
- •1.4. Организация памяти
- •1.4.1. Карта памяти
- •1.4.2. Память программ (Flash – пзу)
- •1.4.3. Память данных
- •Регистровая память (рон и рвв)
- •Файл регистров общего назначения
- •Регистр X, регистр y и регистр z
- •Регистр статуса – sreg
- •1.4.4. Оперативная память (озу или ram)
- •Регистр управления mcu - mcu Control Register - mcucr
- •1.4.5. Энергонезависимая память данных (eeprom)
- •1.5. Режимы адресации памяти данных
- •1.7. Стек. Указатель стека - Stack Pointer - sp
- •1.8. Тактирование. Режимы пониженного энергопотребления
- •1.8.1. Тактовый генератор
- •Система реального времени (rtc)
- •1.8.2. Сброс. Источники сброса
- •Сброс по включению питания
- •Внешнее управление сбросом
- •Сброс по сторожевому таймеру
- •1.8.3. Режимы энергосбережения (Sleep Modes)
- •1.9. Прерывания (interrupts)
- •Время отклика на прерывание
- •Обработка прерываний и сброса
- •Регистр флагов прерываний – gifr (General Interrupt Flag Register)
- •Регистр управления внешними прерываниями – gicr
- •Регистр масок прерывания по таймерам/счетчикам - timsk (Timer/Counter Interrupt Mask Register)
- •Регистр флагов прерываний по таймерам/счетчикам tifr
- •1.10. Таймеры/счетчики (timer/counters)
- •1.10.1. Таймер/счетчик t/c0
- •Регистр управления т/с0 - tccr0 (The Timer/Counter0 Control Register) Регистр tccr0 предназначен для управления модулем т/c0. Формат регистра tccr0:
- •Регистр сравнения выхода т/с0
- •Режимы работы т/с0
- •Изменение состояния ос0 определяется разрядами сом01:сом00 регистра tccr0 (состояние вывода ос0 изменяется в соответствии с таблицей 11).
- •1.10.2. Таймер/счетчик 1 – t/c1
- •1.11. Сторожевой таймер (Watchdog Timer)
- •Регистр управления сторожевым таймером – wdtcr
- •1.12. Универсальный синхронно-асинхронный приемопередатчик (usart)
- •Регистр данных usart - udr - (usart I/o Data Register)
- •Регистр ucsra
- •Регистр ucsrв
- •Регистр ucsrс
- •Формат кадра
- •Скорость обмена данными
- •Передача данных
- •Прием данных
- •1.13. Последовательный периферийный интерфейс spi
- •1.14. Аналоговый компаратор (Analog Comparator)
- •2. Система команд
- •Команды логических операций
- •Команды арифметических операций и сдвига
- •Команды операций с битами
- •Команды пересылки данных
- •Команды передачи управления
- •Теоретическая часть
- •1.1. Методические указания по выполнению лабораторной работы
- •1.1.1. Создайте новый проект.
- •1.1.2. Напишите и отладьте программу lab1
- •. Содержание отчета
- •3.2. Практическая работа №1 Изучение системы команд мк avr aTmega8515
- •2. Содержание отчета
- •3.3. Лабораторная работа №2 Изучение работы с портами ввода/вывода мк avr
- •Контрольные вопросы
- •Литература
Скорость обмена данными
Скорость приема и передачи данных задается контроллером скорости передач, функционирующим как делитель системного тактового сигнала с программируемым коэффициентом деления. Коэффициент деления определяется содержимым регистра UBRR блока тактирования. Rg UBRR – 12 разрядный регистр, физически размещен в двух регистрах ввода-вывода, причем этот регистр размещается по тому же адресу, что и Rg UCSRC, поэтому при обращении к нему необходимо выполнять определенные действия. Рассмотрим пример установок регистра UBRR при работе USART МК в асинхронном режиме.
Таблица 23. Установка в UBRR скорости обмена данных
Скорость передачи (бит/сек)-бод |
Содержимое UBRR при F=1МГц |
Содержимое UBRR при F=2МГц |
2400 |
25 |
51 |
4800 |
12 |
25 |
9600 |
6 |
12 |
Передача данных
Работа передатчика разрешается установкой разряда TXEN=1 в Rg UCSRB, после чего вывод TxD (PD1) подключается к передатчику USART и начинает функционировать как выход независимо от установок регистра управления портом.
Передача инициируется записью передаваемых данных в буферный регистр передатчика Rg UDR, затем данные поступают в сдвиговый регистр передатчика. Если используется 9 – разрядные данные, то до записи младших 8 разрядов в сдвиговый регистр, значение разряда TXB8 в Rg UCSRB копируется в девятый разряд сдвигового регистра.
После пересылки слова данных в сдвиговый регистр флаг опустошения регистра данных UDRЕ в Rg UCSRA устанавливается в 1, что означает готовность передатчика к получению нового слова данных. В этом состоянии флаг остается до следующей записи в буфер. Одновременно с пересылкой в регистре формируется служебная информация – старт-бит, возможный бит четности, а также один или два стоп-бита.
После загрузки сдвигового регистра его содержимое начинает сдвигаться вправо и поступать на вывод TxD. Скорость сдвига определяется настройками контроллера тактовых сигналов. При работе в синхронном режиме изменение состояния вывода TxD происходит по фронту сигнала XCK.
Если во время передачи в Rg UDR было записано новое слово данных, то после передачи последнего стоп-бита, оно пересылается в сдвиговый регистр. Если же к моменту окончания передачи кадра такой записи выполнено не было, то устанавливается флаг прерывания «Передача завершена» TxC=1 в Rg UCSRA. Сброс флага осуществляется аппаратно при входе в подпрограмму обработки соответствующего прерывания или программно, записью в этот разряд логической 1.
Выключение передатчика осуществляется сбросом разряда TXEN в Rg UCSRB. Если в момент выполнения этой команды осуществлялась передача, то сброс разряда произойдет только после завершения текущей и отложенной передачи, то есть после очистки сдвигового и буферного регистров передатчика.
При выключенном передатчике вывод TxD используется как контакт ввода/вывода общего назначения.
Прием данных
Работа приемника разрешается установкой разряда RXEN=1 в Rg UCSRB, после чего вывод RxD (PD0) подключается к приемнику USART и начинает функционировать как вход независимо от установок регистров управления портом.
Логика восстановления данных производит выборку состояний вывода RXD с частотой в 16 раз большей, чем частота бодов. При нахождении линии в пассивном состоянии одиночная выборка нулевого логического уровня будет интерпретироваться как падающий фронт стартового бита и будет запущена последовательность детектирования стартового бита. Считается, что первая выборка обнаружила первый нулевой логический уровень вероятного стартового бита. На выборках 8, 9 и 10 приемник вновь тестирует вывод RXD на изменение логических состояний. Если две или более из этих трех выборок обнаружат логические 1, то данный вероятный стартовый бит отвергается как шумовой всплеск и приемник начнет выявлять и анализировать следующие переходы из 1 в 0.
Если же был обнаружен действительный стартовый бит, то начинает производиться выборка следующих за стартовым битом информационных битов. Эти биты также тестируются на выборках 8, 9 и 10. Логическое состояние бита принимается по двум и более (из трех) одинаковым состояниям выборок. Все биты вводятся в сдвиговый регистр приемника с тем значением, которое было определено тестированием выборок.
Тестирование выборок битов принимаемых символов показано на Рис. 25.
Рис. 25. Тестирование выборок принимаемых данных
При поступлении стопового бита необходимо чтобы не менее двух выборок из трех подтвердили прием стопового бита (показали высокий уровень. Вне зависимости от того принят правильный стоповый бит или нет, данные пересылаются в регистр UDR и устанавливается флаг RXC в регистре (UСSRА). Регистр UDR фактически является двумя физически отдельными регистрами, один из которых служит для передачи данных и другой для приема. При считывании полученных данных из UDR обращение ведется к регистру приема данных, при записи обращение ведется к регистру передачи.
Если выбран режим обмена 9-разрядными словами данных, значение старшего разряда может быть определено по состоянию флага RXB8 регистра UCSRB. Причем содержимое старшего разряда данных должно быть считано до обращения к регистру UDR.
Если во время приема кадра включена схема контроля четности , то она вычисляет бит четности для всех разрядов принятого слова данных и сравнивает его с принятым битом четности. Результат проверки запоминается в буфере приемника вместе с принятым словом данных и стоп-битами. Наличие или отсутствие ошибки контроля четности может быть определено по состоянию флага PE Rg UCSRA. Этот флаг устанавливается в 1, если следующее слово, которое может быть прочитано из Rg UDR, имеет ошибку контроля четности.
Блок приемника имеет еще два флага
– флаг ошибки кадрирования FE,
– флаг переполнения DOR.
Для индикации состояния приемника в модулях USART используется флаг прерывания «Прием завершен» – RxC в Rg UCSRA. Этот флаг устанавливается в 1 при наличии непрочитанных данных в буфере приемника.
Выключение приемника осуществляется сбросом разряда RXENв Rg UCSRB. В отличии от передатчика, приемник выключается сразу же после сброса разряда, то есть кадр, принимаемый в этот момент, теряется, буфер приемника очищается, теряются все непрочитанные из Rg UDR данные.
При выключенном приемнике вывод RxD может использоваться как контакт ввода/вывода общего назначения.