- •Введение
- •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
- •Контрольные вопросы
- •Литература
1.4.5. Энергонезависимая память данных (eeprom)
Для долговременного хранения различной информации, которая может изменяться в процессе функционирования микроконтроллерной системы, используется EEPROM-память. Все AVR имеют блок энергонезависимой электрически перезаписываемой памяти данных EEPROM от 64 Байт до 4 КБайт. Микроконтроллер ATmega8515 имеет объем EEPROM 512 байт. Этот тип памяти, доступный программе микроконтроллера непосредственно в ходе ее выполнения, удобен для хранения промежуточных данных, различных констант, коэффициентов, серийных номеров, ключей и т.п. EEPROM может быть загружена извне как через SPI интерфейс, так и с помощью обычного программатора. Доступ к EEPROM осуществляется с помощью определенных регистров спецфункций.
1.5. Режимы адресации памяти данных
При обращении к памяти данных (SRAM, регистровому файлу и памяти I/O) AVR Enhanced RISC микроконтроллерами ATmega используются мощные и эффективные режимы адресации. В данном разделе описываются режимы адресации, поддерживаемые AVR архитектурой. На рисунках OP обозначает часть слова команды, соответствующую операционному коду.
Можно выделить два типа адресации:
– прямая (адреса операндов находятся в формате команды),
– косвенная (адреса ячеек памяти находятся в косвенных регистрах X, Y,Z)
Прямая адресация, одиночный регистр Rd
Рис. 7. Прямая адресация одного регистра
Операнд содержится в регистре d (Rd). Команды INC, DEC, POP, PUSH
Прямая адресация, два регистра Rd и Rr
Рис. 8. Прямая адресация двух регистров
Операнды содержатся в регистрах r (Rr) и d (Rd). Результат сохраняется в регистре d (Rd). Команда MOV.
Прямая адресация I/O
Рис. 9. Прямая адресация I/O
Адрес операнда содержится в 6 битах слова команды. Величина n определяет адрес регистра источника или регистра назначения. Команды IN, OUT.
Прямая адресация данных
Рис. 10. Прямая адресация данных
16-разрядный адрес данных содержится в 16 младших разрядах 32-разрядной команды. Rd/Rr определяют регистр источник или регистр назначения. Команды LDS, STS.
Косвенная адресация данных со смещением
Рис. 11. Косвенная адресация данных со смещением
Адрес операнда вычисляется суммированием содержимого регистра Y или Z с 6 битами адреса, содержащимися в слове команды.
Команды ST Y+q,Rg; ST Z+q,Rg; LD Rg,Y+q; LD Rg,Z+q.
Косвенная адресация данных
Рис. 12. Косвенная адресация данных
Адрес операнда содержится в регистре X, Y или Z. Команды ST X,Rg; ST Y,Rg;
ST Z,Rg; LD Rg,X; LD Rg, Y; LD Rg,Z.
Косвенная адресация данных с преддекрементом0
Рис. 13. Косвенная адресация данных с преддекрементом
Перед выполнением операции регистр X, Y или Z декрементируется. Декрементированное содержимое регистра X, Y или Z является адресом операнда. Команды ST -X,Rg; ST -Y,Rg; ST -Z,Rg; LD Rg,-X; LD Rg, -Y; LD Rg,-Z.
Косвенная адресация данных с постинкрементом
Рис. 14. Косвенная адресация данных с постинкрементом
После выполнения операции регистр X, Y или Z инкрементируется. Адресом операнда является содержимое X, Y или Z регистра предшествовавшее инкрементированию. Команды ST X+,Rg; ST Y+,Rg; ST Z+,Rg; LD Rg,X+; LD Rg, Y+; LD Rg,Z+.
1.6. Порты ввода/вывода (I/O)
МК ATmega8515 имеет четыре 8-разрядных порта (A,B,C,D) и один 3-разрядный порт E. Порты ввода/вывода МК AVR ATmega8515 имеют независимые линии "вход/выход" (каждая линия порта может быть запрограммирована независимо от других линий на вход или на выход). Мощные выходные драйверы обеспечивают токовую нагрузочную способность 20 мА на линию порта (втекающий ток) при максимальном значении 40 мА, что позволяет, например, непосредственно подключать к микроконтроллеру светодиоды и биполярные транзисторы. Общая токовая нагрузка на все линии одного порта не должна превышать 80 мА (все значения приведены для напряжения питания 5 В). Архитектурная особенность построения портов ввода/вывода у AVR заключается в том, что для каждого физического вывода (пина) существует 3 бита контроля/управления, а не 2, как у распространенных 8-разрядных микроконтроллеров (Intel, Microchip, Motorola и т.д.). Это позволяет избежать необходимости иметь копию содержимого порта в памяти для безопасности и повышает скорость работы микроконтроллера при работе с внешними устройствами, особенно в условиях внешних электрических помех.
Порт A
Порт A является 8-разрядным двунаправленным I/O портом и оснащен встроенными нагрузочными резисторами.
Взаимодействие с портом A осуществляется тремя расположенными в пространстве I/O памяти данных регистрами (см. Таблицу 1):
регистром данных – PORTA, $1B($3B),
регистром направления данных – DDRA, $1A($3A),
регистром адресов выводов входа – PINA, $19($39).
Регистр адресов выводов входа порта A (PINA) обеспечивает возможность только чтения, регистры данных и направления данных порта A (PORTA, DDRA) обеспечивают возможность и чтения и записи. Все выводы порта A оснащены индивидуально подключаемыми встроенными нагрузочными резисторами.
Выходные буферы выводов порта A обеспечивают втекающий ток до 40 мА, что достаточно для прямого управления LED дисплеями. Если выводы с PA0 по PA7 используются в качестве входов и внешним сигналом удерживаются на низком уровне, то вытекающий ток обеспечивается подключением внутренних нагрузочных резисторов. Выводы порта A могут выполнять, дополнительную к основной функции, функцию обеспечения взаимодействия с внешней дополнительной SRAM данных – они могут быть сконфигурированы как младшие разряды шины адреса/данных внешней SRAM данных.
Дополнительная функция включается установкой бита SRE (разрешение внешней SRAM) в регистре управления MCU (MCUCR), при этом установки регистра направления данных игнорируются.
Регистр PINA – адрес выводов входа порта A не является регистром в полном смысле этого слова, и эти адреса обеспечивают считывание физического состояния каждого вывода порта. При считывании PORTA считывается состояние фиксаторов данных порта A , а при считывании PINA считываются непосредственно логические состояния выводов.
Порт B
Порт B является 8-разрядным двунаправленным I/O портом и оснащен встроенными нагрузочными резисторами. Взаимодействие с портом B осуществляется тремя расположенными в пространстве I/O памяти данных регистрами: регистром данных - PORTB, $18($38), регистром направления данных - DDRB, $17($37) и регистром адресов выводов входа - PINB, $16($36). Регистр адресов выводов входа порта B обеспечивает возможность только чтения, регистры данных и направления данных порта B обеспечивают возможность и чтения и записи.
Порт C
Порт C представляет собой 8-разрядный двунаправленный I/O порт. Кроме основной функции выводы порта C выполняют дополнительную функцию обеспечения взаимодействия с внешней дополнительной SRAM. При использовании внешней SRAM через выводы порта C выводится старший байт адреса внешней SRAM. Взаимодействие с портом С осуществляется тремя расположенными в пространстве I/O памяти данных регистрами: регистром данных - PORTС, $15($35), регистром направления данных - DDRС, $14($34) и регистром адресов выводов входа - PINС, $13($33). Регистр адресов выводов входа порта С обеспечивает возможность только чтения, регистры данных и направления данных порта С обеспечивают возможность и чтения и записи.
Порт D
Порт D является 8-разрядным двунаправленным I/O портом и оснащен встроенными нагрузочными резисторами. Взаимодействие с портом D осуществляется тремя расположенными в пространстве I/O памяти данных регистрами: регистром данных - PORTD, $12($32), регистром направления данных - DDRD, $11($31) и регистром адресов выводов входа - PIND, $10($30). Регистр адресов выводов входа порта D обеспечивает возможность только чтения, регистры данных и направления данных порта D обеспечивают возможность и чтения и записи.
Порт E
Порт E является 3-разрядным двунаправленным I/O портом и оснащен встроенными нагрузочными резисторами. Взаимодействие с портом E осуществляется тремя расположенными в пространстве I/ O памяти данных регистров: регистра данных - PORTE, $07($27), регистра направления данных - DDRE, $06($26) и регистра адресов выводов входа - PINE, $05($25). Регистр адресов выводов входа порта E обеспечивает возможность только чтения, регистры данных и направления данных порта E обеспечивают возможность и чтения и записи.