8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

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

Модель

Память программ (FLASH)

Память данных (ОЗУ)

Память данных (EEPROM)

Верхняя граница [F END]

Объем [слов]

Верхняя граница [S END]

Объем [байт]

Кол-во доп регистров ввода/ вывода

Внешнее ОЗУ

Верхняя граница [E END]

Объем [байт]

ATmega48x

$007FF

2K

$02FF

512

160

$0FF

256

ATmega8515x

$00FFF

4K

$025F

512

0

$1FF

512

ATmega8535x

$00FFF

$025F

512

0

$1FF

512

ATmega8x

$00FFF

$045F

1 К

0

$1FF

512

ATmega88x

$00FFF

$04FF

1 К

160

$1FF

512

ATmega16x

$01FFF

$045F

1 К

0

$1FF

512

ATmega162x

$01FFF

$04FF/$045F

1 К

160/0

$1FF

512

ATmega164x

$01FFF

$04FF

1 К

160

$1FF

512

ATmega165x

$01FFF

$04FF

1 К

160

$1FF

512

ATmega168x

$01FFF

$04FF

1 К

160

$1FF

512

ATmega32x

$03FFF

16К

$085F

0

$3FF

1 К

ATmega324x

$03FFF

16К

$08PF

160

$3FF

1 К

ATmega325x

$03FFF

16К

$08FF

160

$3FF

1 К

ATmega3250x

$03FFF

16К

$08FF

160

$3FF

1 К

ATmega64x

$07FFF

32 К

$10FF

160

$7FF

ATmega640x

$07FFF

32 К

$21FF

416

$FFF

ATmega644x

$07FFF

32 К

$10FF

160

$7FF

ATmega645x

$07FFF

32 К

$10FF

160

$7FF

ATmega6450x

$07FFF

32 К

$10FF

160

$7FF

ATmega128x

$0FFFF

64 К

$10FF

160

$FFF

ATmega1280x

$0FFFF

64 К

$21FF

416

$FFF

ATmega1281x

$0FFFF

64 К

$21FF

416

$FFF

ATmega2560x

$1FFFF

128К

$21FF

416

$FFF

ATmega2561x

$1FFFF

128 К

$21FF

416

$FFF

Рис. 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