Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
308
Добавлен:
20.06.2014
Размер:
1.06 Mб
Скачать
          1. Структура микроконтроллера aTmega8535

Рис. Структурная схема ATmega8535

Последние шесть из тридцати двух регистров могут быть использованы в качестве 16-разрядных указателей памяти данных. Они обозначаются как X, Y и Z. Z может быть использован как указатель на справочную таблицу во Flash-памяти программ.

АЛУ поддерживает однооперандные арифметические, логические и битовые операции над регистром или двухоперандные над двумя регистрами или регистром и константой. Результат операций отражается в регистре состояния (Status Register, SREG). Некоторые реализации поддерживают также операции умножения и деления знаковых и беззнаковых чисел.

Поток управления обеспечивают команды условных и безусловных переходов (jump) и вызовов подпрограмм (call), которые прямо могут адресовать все адресное пространство. Большинство команд AVR 16-битные, но есть и 32-битные.

Все пространства памяти в архитектуре AVR являются линейными регулярными картами памяти.

Память программ делится на две части: загрузочную (Boot Program section) и прикладную (Application Program section). Обе секции имеют биты блокировки для защиты по записи или чтению-записи.

При вызове подпрограмм и обработке прерываний адрес возврата сохраняется в стеке, который размещается в SRAM-памяти данных. Все пользовательские программы должны инициализировать указатель стека (SP) в reset-программе. SP доступен по чтению-записи в пространстве ввода-вывода.

В архитектуре AVR имеются пять способов адресации для доступа к SRAM-памяти данных.

Пространство ввода-вывода содержит 64 адреса, оно может быть доступно напрямую или как область данных, следующая за регистровым файлом, 0x20 - 0x5F.

Модуль прерываний включает управляющие регистры в пространстве ввода-вывода и глобальный флаг разрешения прерываний (Global Interrupt Enable Бит) в регистре состояния. Все прерывания имеют свой вектор (адрес) прерывания в таблице векторов прерывания (Interrupt Vector table). Приоритет прерывания определяется положением в таблице векторов прерывания. Чем меньше адрес, тем выше приоритет.

        1. Сброс микроконтроллера aTmega8535. Режимы пониженного энергопотребления. Сигналы запроса внешних прерываний. Регистры управления

          1. Сброс микроконтроллера aTmega8535

ATmega8535 имеет четыре источника сброса:

  • сброс по включении питания (Power-on Reset);

  • внешний сброс, происходит, когда на вход RESET# поступает сигнал низкого уровня в течение более чем одного такта;

  • сброс сторожевого таймера (Watchdog Reset);

  • Brown-out Reset, происходит, когда напряжение питания VCC падает ниже Brown-out Reset threshold (VBOT) и Brown-out Detector разрешен.

После сброса MCU начинает выполнение программы с Reset-вектора. Reset-вектор должен содержать команду RJMP на Reset-обработчик.

          1. Регистр mcucsr (mcu Control and Status Register)

Регистр MCUCSR содержит бит управления распознаванием сигнала внешнего прерывания INT2 и флаги сброса MCU:

  • бит 6 — ISC2 (Interrupt Sense Control 2), бит управления распознаванием сигнала внешнего прерывания INT2;

  • бит 3 — WDRF (Watchdog Reset Flag), флаг сброса сторожевого таймера;

  • бит 2 — BORF (Brown-out Reset Flag);

  • бит 1 — EXTRF (External Reset Flag), флаг внешнего сброса;

  • бит 0 — PORF (Power-on Reset Flag), флаг сброса по включению питания.

Биты 7, 5 и 4 зарезервированы.

Таким образом, регистр MCUCSR позволяет определить источник сброса MCU. Флаги сбросов устанавливаются при осуществлении соответствующих событий, но сброс по включению питания, устанавливая PORF, очищает все остальные флаги. Конечно, все флаги сбросов могут быть очищены программно, что и рекомендуется делать сразу после чтения MCUCSR для отслеживания источников сброса.