2.5.1. Переход в экономичный режим работы
Для перевода ядра Cortex в режим SLEEP необходимо выполнить инструкцию WFI (ожидание прерывания) или WFE (ожидание события). После выполнения инструкции WFI, ядро Cortex приостановит выполнение программы и обработку отправленных прерываний. Существует два сценария завершения выполнения процедуры обработки прерывания. По первому сценарию ЦПУ выходит из процедуры обработки прерывания и возвращается к дальнейшему выполнению фоновой программы. Однако, если установить бит SLEEPON EXIT в регистре системного управления, ядро Cortex после выхода из процедуры обработки прерываний автоматически перейдет в режим SLEEP. Такая возможность позволяет создавать управляемые прерываниями маломощные применения, в которых микроконтроллер после возобновления работы исполняет определенный код программы, а затем снова, не выполняя каких-либо инструкций для управления энергопотреблением, переходит в режим SLEEP.
Прерывание WFE позволяет возобновить работу ядра Cortex с того же места, с которого оно было переведено в режим SLEEP. Это прерывание не приводит к переходу к процедуре обработки прерывания. Возобновляющее работу событие - это обычная линия прерывания УВВ, но которая на активизирована как прерывание в КВВП. Благодаря этому, УВВ может сигнализировать ядру Cortex о необходимости возобновления работы и продолжения обработки, не прибегая к использованию процедуры обработки прерывания. Инструкции WFI и WFE не поддерживаются языком Си, однако компиляторы для набора инструкций Thumb-2 поддерживают встроенные макросы, которые можно использовать в программе, как стандартные Си-команды:
Помимо экономичных режимов работы SLEEPNOW и SLEEPONEXIT, ядро Cortex может генерировать сигнал SLEEPDEEP для остальной части микроконтроллерной системы.
Регистр системного управления конфигурирует режимы SLEEP процессора Cortex. STM32 поддерживают дополнительные экономичные режимы, которые используют генерируемый процессором Cortex сигнал DeepSleep
Благодаря этому появляется возможность реализации таких дополнительных функций, как приостановка ФАПЧ и УВВ, с помощью которых МК STM32 может переходить в режимы работы с наименьшим энергопотреблением.
|