режима энергосбережения, запрещает внутрипроцессорную
периферию и очищает необработанные запросы на прерывание;
Перевод процессора в режим энергосбережения осуществляет команда
IDLE (см. п. 1.17.8.з) даже, если этот переход инициирован аппаратно.
Если в предопределенном фрагменте программы перед командой IDLE
будет стоять команда RTI, то процессор вернется из обработчика
прерывания powerdown без перехода в режим энергосбережения, т.е., в
принципе, это прерывание можно использовать, как немаскируемое
прерывание общего назначения.
Выход из режима энергосбережения могут инициировать два
внешний сигнала: PWD# (переход из низкого уровня в высокий) или
RESET#. Далее, в зависимости от различных факторов, переход на
выполнение программы может производиться различными путями.
Если выход из режима энергосбережения инициирован
дезактивацией сигнала PWD#, то программист может установить, по
крайней мере, два параметра выхода: длительность задержки и контекст.
Первый параметр зависит от значения бита XTALDELAY регистра
управления режимом энергосбережения (см. п. П1.5). Если этот бит
сброшен, то переход на программу составляет 100 периодов CLKIN.
Такое значение бита XTALDELAY устанавливается обычно, если
используется внешний тактовый генератор. Если бит XTALDELAY
установлен, то переход на программу составляет 4096 периодов CLKIN.
Такое значение XTALDELAY бита устанавливается обычно, если
используется внутренний тактовый генератор.
Контекст зависит от значения бита PUCR регистра управления
режимом энергосбережения (см. п. П1.5). Если этот бит сброшен, то
процессор перейдет на следующую команду (обычно RTI) после команды
IDLE. Если бит PUCR установлен, то при выходе из режима
энергосбережения очищаются стеки PC, STATUS, LOOP и CNTR,
регистры IMASK и ASTAT. В регистр SSTAT записывается 0х55.
Процессор начинает выполнять программу с адреса 0х0000.
Сигнал PWDACK (Power Down Acknowledge – подтверждение
режима энергосбережения) является ответным на сигнал PWD#. Сигнал
PWDACK устанавливается, когда выполняется команда IDLE, и
сбрасывается, когда начинает выполняться первая команда после выхода
процессора из режима энергосбережения. Низкий уровень этого сигнала
гарантирует наличие сигнала CLKOUT.
Если сигнал RESET# активизируется, когда процессор находится в
режиме энергосбережения, то начинается обычный процесс сброса
процессора (см. п. 1.14.1). Если этот сигнал используется только для
выхода из режима энергосбережения, то он должен иметь определенную
длительность. Расчет длительности сигнала RESET# для различных
вариантов работы процессора приводится в [1].
1.15. Контроллер прямого доступа к байтовой памяти (BDMA)