Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AVR.doc
Скачиваний:
17
Добавлен:
26.04.2019
Размер:
2.79 Mб
Скачать

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):

  1. регистром данных – PORTA, $1B($3B),

  2. регистром направления данных – DDRA, $1A($3A),

  3. регистром адресов выводов входа – 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 обеспечивают возможность и чтения и записи.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]