Режимы энергосбережения (Sleep Modes)
Для перевода в любой из трех режимов энергосбережения бит SE в регистре MCUCR должен быть установлен в состояние1. Биты SM1 и SM0 регистра MCUCR определяют какой из режимов Idle, Power Down или Power Save будет запущен командой SLEEP.
При возникновении разрешенного прерывания во время нахождения MCU в режиме энергосбережения, MCU активируется, выполняет подпрограмму обработки прерывания и продолжает работу до следующей команды SLEEP. Если во время режима энергосбережения происходит сброс, MCU активируется и начинает работу по вектору сброса. Содержимое регистрового файла, SRAM и памяти I/O в процессе активации не изменяется. В Таблице 4 представлен выбор режима энергосбережения.
Отметим, что если для возврата из режима энергосбережения Power Down или Power Save, используется запуск прерывания по уровню, то низкий уровень должен удерживаться несколько дольше, чем время задержки сброса tTOUT, иначе микроконтроллер не активируется.
РЕЖИМ Idle
Если биты SM1/SM0 находятся в состоянии 00 команда SLEEP переводит MCU в режим Idle, останавливая CPU но оставляя активными таймеры/счетчики, сторожевой таймер и систему прерываний. Это обеспечивает активацию MCU внешними прерываниями и такими внутренними прерываниями, как переполнение таймера и завершение приема UART. Если активация по аналоговому компаратору не требуется, то аналоговый компаратор может быть отключен установкой бита ACD в регистре управления и статуса аналогового компаратора ACSR. Это позволит дополнительно снизить потребление в Idle режиме. При активации MCU из Idle режима CPU начинает выполнять программу незамедлительно.
РЕЖИМ Power Down
При установке битов SM1/SM0 в состояние 10 команда SLEEP переводит MCU в режим Power Down. В этом режиме останавливается внешний генератор. Пользователь может разрешить работу сторожевого таймера. Если сторожевой таймер разрешен, то активация MCU произойдет по завершении установленного в сторожевом таймере периода времени. Если внешний источник тактового сигнала подключен к выводу XTAL1, то активация MCU из режима Power Down может происходить без ATMEL задержки, обычно необходимой для стабилизации XTAL генератора. Режим такой активации разрешается программированием перемычек SUT0/SUT1 в Flash памяти. См. раздел Режим параллельного программирования.
РЕЖИМ Power Save
При установке битов SM1/SM0 в состояние 11 команда SLEEP переводит MCU в режим Power Save. Этот режим, за одним исключением, аналогичен режиму Power Down. Если таймер/счетчик0 тактируется асинхронно, т.е. бит AS0 в регистре ASSR установлен, таймер/счетчик0 будет работать в режиме Power Save. MCU будет активироваться прерываниями по переполнению или совпадению выхода таймера/счетчика0.
|