Раздел: Документация
0 ... 28 29 30 31 32 33 34 ... 195 Структурная схема микроконтроллеров ATmega640x/1280x/1281x/2560x/2561x приведена на Рис. 2.11. Особенностями моделей ATmega 1281х/2561х являются: •7 портов ввода/вывода (порты A...F — 8-битные, порт G — 6-битный); •два 8-битных (ТО, Т2) и четыре 16-битных (Т1, ТЗ, Т4, Т5) таймера/счетчика; •6 каналов ШИМ; •8-канальный 10-битный АЦП; •два интерфейсных модуля USART, которые могут работать в режиме SPI; •по одному интерфейсному модулю SPI и TW1; •интерфейс JTAG. Особенности моделей ATmega 1280х/2560х: •11 портов ввода/вывода (порты A...F, Н, J...L — 8-битные, порт G — 6-битный); •два 8-битных (ТО, Т2) и четыре 16-битных (Т1, ТЗ, Т4, Т5) таймера/счетчика; •12 каналов ШИМ; •16-канальный 10-битный АЦП; •четыре интерфейсных модуля USART, которые могут работать в режиме SPI; •по одному интерфейсному модулю SP1 и TW1; •интерфейс JTAG. 2.2. Организация памяти В микроконтроллерах AVR семейства Mega реализована Гарвардская архитектура, в соответствии с которой разделены не только адресные пространства памяти программ и памяти данных, но также и шины доступа к ним. Способы адресации и доступа к этим областям памяти также различны. Такая структура позволяет центральному процессору работать одновременно как с памятью программ, так и с памятью данных, что существенно увеличивает производительность. Каждая из областей памяти данных (ОЗУ и EEPROM) также расположена в своем адресном пространстве. Обобщенная карта памяти микроконтроллеров AVR семейства Mega приведена на Рис. 2.12. Обратите внимание на следующее. Поскольку микроконтроллеры AVR имеют 16-битную систему команд, объем памяти программ на рисунке указан не в байтах, а в 16-битных словах. Символ «$» перед числом означает, что это число записано в шестнадцатеричной системе счисления. Память данных Память данных Память данных $000 F END 32 регистра общего назначения 64 регистра ввода -вывода 160/416 доп регистров ввода/вывода Внуфеннео скпичоскос; ОЗУ Внешнее статическое ОЗУ $0000 $001F $0020 $005F $0060 $00FF/$01FF $0100/$0200 S END IS END+1 I I I , 1 $FFFF EEPROM $000 E END
Рис. 2.12. Карта памяти микроконтроллеров семейства Mega 2.2.1. Память программ Память программ предназначена для хранения команд, управляющих работой микроконтроллера. Память программ также часто используется для хранения таблиц констант, не меняющихся во время работы программы. Как было сказано выше, память программ представляет собой электрически стираемое ППЗУ (FLASH-ПЗУ). В связи с тем, что длина всех команд кратна одному слову (16 бит), память программ имеет 16-битную организацию. Соответственно, объем памяти микроконтроллеров семейства составляет от 4К (4x1024) до 64К (64x1024) 16-битных слов. В подавляющем большинстве моделей микроконтроллеров семейства Mega память программ логически разделена на две неравные части: область прикладной программы и область загрузчика. В последней может располагаться специальная программа (загрузчик), позволяющая микроконтроллеру самостоятельно управлять загрузкой и выгрузкой прикладных программ. Подробно использование этой области и реализация программы-загрузчика будут рассмотрены в главе 14. Если же возможность самопрограммирования микроконтроллера не используется, прикладная программа может располагаться и в области загрузчика. Для адресации памяти программ используется счетчик команд (Program Counter — PC). Размер счетчика команд составляет от 11 до 17 бит, в зависимости от объема адресуемой памяти. По адресу $0000 памяти программ находится вектор сброса. После инициализации (сброса) микроконтроллера выполнение программы начинается с этого адреса (по этому адресу должна размещаться команда перехода к инициализационной части программы). Начиная с адреса $001 (модели с памятью программ 8 Кбайт и меньше) или $0002 (остальные модели) памяти программ располагается таблица векторов прерываний. Размер этой области зависит от модели микроконтроллера (подробнее о распределении области векторов прерывания см. раздел 5.2). При возникновении прерывания после сохранения в стеке текущего значения счетчика команд происходит выполнение команды, расположенной по адресу соответствующего вектора. Поэтому по данным адресам располагаются команды перехода к подпрограммам обработки прерываний. В моделях с памятью программ небольшого объема (8 Кбайт и менее) в таблицах векторов прерываний используются команды относительного перехода (rjmp), а в остальных моделях — команды абсолютного перехода (jmp). В большинстве микроконтроллеров семейства Mega положение вектора сброса и/или таблицы векторов прерываний может быть изменено. Они могут располагаться не только в начале памяти программ, как описано выше, но и в начале области загрузчика. Подробнее об этом будет сказано в 0 ... 28 29 30 31 32 33 34 ... 195
|