microchip

Портирование приложений с семейства PIC18 на PIC24F

1.8. Режимы пониженного энергопотребления
Режимы пониженного энергопотребления микроконтроллеров PIC18 и PIC24F практически полностью соответствуют в плане функциональности. Оба семейства допускают программное переключение источников тактирования, режимы IDLE и SLEEP, выход из режимов пониженного энергопотребления по прерыванию или событию сброса. Однако реализация этих функций в PIC24F несколько отличается от PIC18. Кроме того, добавлены дополнительные методы, увеличивающие гибкость системы и позволяющие значительно снизить среднее потребление энергии. Сравнение режимов пониженного потребления для микроконтроллеров PIC18 и PIC24F приведено в табл. 16.
Замечание: здесь и далее до конца пункта 1.8 под термином «семейство PIC18» будут подразумеваться микроконтроллеры с поддержкой технологии NanoWatt.
Таблица 16. Сравнение возможностей режимов пониженного энергопотребления семейств PIC18 и PIC24F


Режим

PIC18

PIC24F

Программное переключение источников тактирования

да

да

Переход в режим пониженного энергопотребления

инструкция и установка служебного бита

инструкция с аргументом

Режим IDLE
отдельно для каждой периферии

да
нет

да
да

Режим SLEEP

да

да

Режим DOZE

да

да

Полное отключение периферийных модулей (PMD Option)

нет

да

1.8.1. Программное переключение источников тактирования
Семейства PIC18 и PIC24F имеют одинаковые типы источников тактирования (первичный, вторичный и внутренний RC генератор). Режимы SLEEP и IDLE так же реализованы подобным образом. Различие присутствует только в терминологии. Так как PIC24F обеспечивает более гибкое переключение источников тактирования, названия энергосберегающих режимов PIC18 (PRI_RUN, SEC_IDLE, и т. п.) не используются. Однако полностью эквивалентные режимы так же доступны в PIC24F. Например, программная конфигурация битов NOSC2:NOSC0 для переключения на внутренний FRC генератор эквивалентна переключению в режим RC_RUN в семействе PIC18.
В семействе PIC18 переключение источников тактирования осуществляется с помощью конфигурации битов SCS1:SCS0 (OSCCON<1:0>). Для устройств PIC24F переключение источников тактирования осуществляется записью необходимого значения в биты NOSC2:NOSC0 совместно с процедурой записи защитной последовательности в OSCCON (см. п. 1.7.7 «Переключение источников тактирования»). Кроме того, в PIC24F возможность переключения тактовых источников может быть аппаратно запрещена установкой бита FCKSM1 в конфигурационном слове CW2.
Функционально переключение источников тактирования в PIC18 и PIC24F осуществляется аналогично с временными задержками одного порядка.

1.8.2. Режимы SLEEP и IDLE
Для перехода в режимы IDLE (x_IDLE) и SLEEP в семействе PIC18 используется инструкция SLEEP. Режим определяется значением бита IDLEN (OSCCON<7>), SLEEP – если бит сброшен и IDLE – если бит установлен.
Эквивалентная инструкция в семействе PIC24F – PWRSAV. Инструкция используется с аргументом (константой), определяющим в какой режим энергосбережения переходит микроконтроллер. Если аргумент равен ‘1’ – переход осуществляется в режим IDLE, если аргумент равен ‘0’ – пореход осуществляется в режим SLEEP.

1.8.3. Выборочное отключение периферии в режиме IDLE
В микроконтроллерах PIC18 невозможно отключение работающих периферийных модулей в режиме IDLE.
В семействе PIC24F большинство периферийных модулей может быть отключено в режиме IDLE. Для управления функцией используется бит xxxIDL (xxx – мнемоника периферийного модуля), состояние которого определяет, будет ли периферийный модуль автоматически частично отключен в режиме IDLE или будет продолжать работу. Эта функция позволяет значительно снизить потребление в критичных приложениях.

1.8.4. Выход из режимов энергосбережения
Выход из режимов энергосбережения в семействах PIC18 и PIC24F может осуществляться по разрешенному прерыванию или по сбросу. Сброс по переполнению сторожевого таймера WDT или прерывание выводит микроконтроллер из режима энергосбережения, при этом контроллер будет тактироваться от источника, используемого при входе в режим. Все остальные события переключают источник тактирования на внутренний RC 8 МГц тактовый генератор, если разрешен режим запуска с использованием двух источников, до тех пор, пока частота первичного генератора не стабилизируется.

1.8.5. Режим дозирования (DOZE)
Функция DOZE в микроконтроллерах PIC24F позволяет значительно снизить потребление при сохранении полезного функционирования приложения. В режиме DOZE ядро микроконтроллера тактируется уменьшенной тактовой частотой, в то время как периферийные модули работают на частоте тактового генератора. Режим DOZE включается установкой бита DOZEN (CLKDIV<11>). Отношение частоты, которой тактируется ядро, к частоте тактового генератора выбирается с помощью битов DOZE (CLKDIV<14:12>) и может составлять от 1:128 (наиболее низкая частота тактирования ядра) до 1:1 (делитель DOZE выключен). Возможно автоматическое отключение режима DOZE при входе в прерывание, для этого необходимо установить бит ROI (<CLKDIV<15>).
Семейство PIC18 не имеет режимов энергосбережения, эквивалентных DOZE в PIC24F.

1.8.6. Полное отключение периферийных модулей (PMD)
Функция полного отключения периферийных модулей позволяет уменьшить ток, потребляемый модулем до минимальной величины. Периферийные модули, поддерживающие функцию полного отключения, имеют управляющий бит в регистре специального назначения PMD. Когда режим используется, все источники тактирования отключаются от периферийного модуля и все регистры специального назначения, связанные с модулем становятся недоступными. Режим PMD отличается от режима выборочного отключения в режиме IDLE, так как в последнем случае периферийный модуль частично запитан и его регистры доступны.
Семейство PIC18 не имеет режима аналогичного PMD в микроконтроллерах PIC24F.

1.8.7. Дополнительные возможности PIC24F
Внутренний стабилизатор напряжения питания ядра может быть переведен в режим пониженного потребления установкой бита VREGS (RCON<8>). В этом режиме мощности внутреннего стабилизатора достаточно только для поддержания состояния ОЗУ. Если хотя бы один периферийный модуль активен, этот режим не доступен.

1.8.8. Портирование типового приложения
Для прямого портирования приложения, использующего режимы энергосбережения, с архитектуры PIC18 на PIC24F необходимо как минимум изменить инструкции входа в режим. При использовании переключения источников тактирования необходимо заменить обращение к битам SCS1:SCS0 на NOSC2:NOSC0, добавив защитную последовательность перехода.

1.8.9. Рекомендации по портированию приложения
Зависимости максимальной тактовой частоты от напряжения питания для семейств PIC18 и PIC24F значительно различаются. Семейство PIC24F имеет диапазон питающих напряжений от 2.0 В до 3.6 В, при этом максимальная производительность обеспечивается во всем диапазоне напряжений питания. Для микроконтроллеров PIC18 максимальная производительность зависит он напряжения питания прямо пропорционально. Приложения на PIC18, переключающие тактовую частоту в зависимости от напряжения питания не требуют этой функции при переносе на PIC24F. Примечание: микроконтроллеры семейства PIC18FxxJ имеют зависимость максимальной тактовой частоты от напряжения питания, аналогичную PIC24F.

Так как максимальное значение напряжения питания PIC24F составляет 3.6 В, большинство приложений, переносимых с PIC18 требуют аппаратной доработки.

©2007 Гамма-Санкт-Петербург