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

0 ... 85 86 87 88 89 90 91 ... 195

Аналого-цифровой преобразователь

Если функционирование АЦП разрешено, то он будет работать во всех «спящих» режимах. Соответственно, для снижения потребляемого тока модуль АЦП необходимо отключать перед переводом микроконтроллера в любой из энергосберегающих режимов.

Аналоговый компаратор

Если компаратор не используется, то при переводе микроконтроллера в режим Idle или ADC Noise Reduction его необходимо отключить. В других «спящих» режимах модуль аналогового компаратора отключается автоматически. Тем не менее, если в качестве одного из входных сигналов в компараторе используется сигнал от внутреннего ИОН, модуль аналогового компаратора необходимо отключать вручную перед переводом микроконтроллера в любой из «спящих» режимов. В противном случае ИОН останется включенным независимо от «спящего» режима, увеличивая суммарное потребление кристалла. Подробнее о конфигурировании аналогового компаратора будет рассказано в главе 8.

Детектор пониженного напряжения питания

Если детектор пониженного напряжения питания (Brown-Out Detector — BOD) в приложении не требуется, этот узел необходимо отключить. Если же работа этого узла разрешена, то он будет работать в любом из «спящих» режимов, увеличивая суммарное потребление кристалла.

Внутренний источник опорного напряжения

Внутренний ИОН будет работать, если включен хотя бы один из следующих узлов микроконтроллера: детектор снижения напряжения питания, аналоговый компаратор, АЦП. При отключении всех этих модулей ИОН выключится автоматически. Не забудьте, что при повторном включении ИОН его выходной сигнал можно будет использовать только спустя некоторый промежуток времени (см. раздел 4.4).

Сторожевой таймер

Если сторожевой таймер не требуется в приложении, его необходимо отключить. В противном случае он будет работать в любом из «спящих» режимов, увеличивая общее потребление кристалла.

Порты ввода/вывода

Перед переключением в «спящий» режим все выводы портов ввода/вывода необходимо сконфигурировать так, чтобы они потребляли наименьший ток. Главное — свести к минимуму количество линий, управляющих резистивной нагрузкой. Во всех «спящих» режимах, где прекращается


формирование тактовых сигналов clkl/0 и clkADC, входные буферы портов ввода/вывода отключаются. Исключение составляют только входные узлы тех линий ввода/вывода, которые используются для вывода микроконтроллера из «спящего» режима. Если же при включенном входном буфере вывод микроконтроллера останется неподключенным или на нем будет присутствовать аналоговый сигнал с напряжением, близким к Ксс/2, то буфер будет потреблять чрезмерный ток.

В моделях, позволяющих отключать цифровые входные буферы на аналоговых входах, они должны всегда быть выключены.

Модуль внутрисхемной отладки

Если внутрисхемная отладка разрешена, то при переходе микроконтроллера в «спящий» режим основной источник тактового сигнала не останавливается, продолжая потреблять ток. Отключить модуль внутрисхемной отладки можно тремя способами:

•записать 1 в конфигурационную ячейку OCDEN;

•записать 1 в конфигурационную ячейку JTAG EN;

•записать 1 в бит JTD соответствующего регистра ввода/вывода.

4.4. Сброс

Реинициализация, или так называемый «сброс», переводит микроконтроллер в определенное устойчивое состояние. Сброс может быть вызван следующими событиями:

•включение напряжения питания микроконтроллера;

•подача сигнала НИЗКОГО уровня на вывод RESET (аппаратный сброс);

•тайм-аут сторожевого таймера;

•падение напряжения питания ниже заданной величины;

•сброс по интерфейсу JTAG.

При наступлении любого из перечисленных событий во все регистры ввода/вывода заносятся их начальные значения, а в счетчик команд загружается значение адреса вектора сброса. По этому адресу должна находиться команда безусловного перехода (rjmp — для моделей ATmega8515x/8535x, ATmega8x и ATmega48x/88x, jmp — для остальных моделей) на начало программы. Если же прерывания в программе не используются, то она может начинаться непосредственно с адреса вектора сброса. Сказанное справедливо и для случая, когда вектор сброса располагается в области основной программы, а таблица векторов прерываний — в области загрузчика. Во всех моделях, кроме ATmega48x, значение адреса вектора сброса определяется состоянием конфигурационной ячейки BOOTRST. Если BOOTRST = 1 (до программирования), то вектор сброса располагается в са-


мом начале памяти программ по адресу $0000 (в моделях ATmega48x вектор сброса всегда располагается по этому адресу). После программирования ячейки вектор сброса располагается в начале области загрузчика. Конкретное значение этого адреса зависит от установок конфигурационных ячеек BOOTSZ1 и BOOTSZ0, определяющих в том числе и размер области загрузчика. Подробно использование этих ячеек будет рассмотрено в главе 14. Зависимость значения адреса вектора сброса от установок конфигурационных ячеек BOOTSZ1 и BOOTSZ0 для всех моделей семейства приведена в Табл. 4.21.

Таблица 4.21. Значения адреса вектора сброса

BOOTSZ1

BOOTSZ0

ATmega8515x/8535x,

ATmega8x,

ATmega88x

ATmega 16x, ATmega 162x, Annegal64x, ATmega 165x, ATmega 168x

ATmega32x,

ATmega324x,

ATmega325x/3250x

eg

IT)

. Д

* X X X X О Ю

3 s© sO s© я я я я

Sf §f gf

5555

ATmegal28x, ATmegal280x/1281x

ATmega2560x/2561x

1

1

$F80

$1F80

$3F00

$7E00

$FE00

$1FE001

1

0

$F00

$1F00

$3E00

$7C00

$FC00

$1FC00

0

1

$E00

$1E00

$3C00

$7800

$F800

$1F800

0

0

$C00

$1C00

$3800

$7000

$F000

$1F000

Обобщенная структурная схема подсистемы сброса приведена на Рис. 4.14. Элементы, выделенные пунктиром, в ряде моделей отсутствуют.

Логика схемы сброса всех микроконтроллеров семейства следующая. При наступлении события, приводящего к сбросу микроконтроллера, формируется внутренний сигнал сброса. Одновременно запускается таймер формирования задержки сброса. По истечении определенного промежутка времени внутренний сигнал сброса снимается и начинается выполнение программы.

Все микроконтроллеры семейства позволяют определить событие, в результате которого произошел сброс устройства. В зависимости от модели (Табл. 4.22) для этого используется либо регистр управления и состояния микроконтроллера MCUCSR, расположенный по адресу $34 ($54), либо регистр состояния микроконтроллера MCUSR, расположенный по тому же адресу. Эти регистры содержат набор флагов, состояние которых зависит от события, вызвавшего сброс устройства. Формат регистров MCUSR и MCUCSR приведен на Рис. 4.15 (биты, не относящиеся к подсистеме сброса, выделены серым цветом). Описание флагов, используемых для определения источника сброса, приведено в Табл. 4.23.



0 ... 85 86 87 88 89 90 91 ... 195