Всегда верное решение!
ГАММА-САНКТ-ПЕТЕРБУРГ
Поставки электронных компонентов и модулей на рынки
России, стран СНГ и Прибалтики
Russian English
(812) 493-51-15
197101, Санкт-Петербург, Певческий пер., 12
(ст.м. "Горьковская"), БЦ "LIGHTHOUSE"

посмотреть на карте

(812) 493-51-15

Технологии микропотребления nanoWatt и nanoWatt XLP от Microchip

Новая технология Microchip nanoWatt XLP– самые низкопотребляющие контроллеры в мире.

Введение.

Энергопотребление всегда является важной характеристикой любой электрической системы. В современных встроенных системах, от микроконтроллера требуется не только управление системой и собственное малое потребление, но и управление потреблением тока всей схемы. В данной статье рассмотрены возможности PIC-микроконтроллеров, выполненных по технологиям nanoWatt и nanoWatt XLP, по снижению энергопотребления.

Прежде чем вникать в особенности энергосберегающих режимов работы, необходимо разобраться – что влияет на потребление тока. Применительно к микроконтроллерам, важно выделить две составляющие – ток потребления в активном (динамическом) режиме и статическом режиме (режиме ожидания).

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

Статическое потребление тока имеет место при полной остановке тактирования ядра и состоит из токов утечки транзисторов, потребления супервизоров и тактирования схем, обеспечивающих дальнейшую работу контроллера (сторожевой таймер, часы реального времени и т.п.). Преимущественное влияние на статическое потребление имеет напряжение питания, температура

Напряжение питания существенно влияет на энергопотребление контроллера как в активном режиме, так и в режиме ожидания. Таким образом, существенную выгоду можно получить за счет пониженного питания ядра контроллера в сравнении с остальной схемой. Некоторые PIC-контроллеры имеют независимый вход для питания внутренней логики (VDDCORE), что позволяет выиграть как в активном, так и в статичном потреблении тока.

Технологии nanoWatt и nanoWattXLP

Начиная с 2003 года, компания Microchip Technology Inc. начала выпуск контроллеров с энергосберегающей технологией nanoWatt. Основным требованием к контроллерам технологии nanoWatt было энергопотребление в режиме ожидания (Sleep) порядка нВт. Также были добавлены следующие возможности по энергосберегающию:

  • Режим Idle
  • Встроенный высокоскоростной тактовый генератор (INTOSC) с PLL программируемым делителем
  • Сторожевой таймер (WDT) с увеличенным временем ожидания
  • Сверхмалопотребляющий модуль пробуждения (ULPWU)
  • Малопотребляющий Timer1 и второй осциллятор (SOSC, 32 кГц)
  • Малопотребляющий программноуправляемый модуль сброса (BOR)

Сегодня Microchip расширяет энергосберегающие возможности PIC-контроллеров. Новая технология nanoWatt XLP, являющаяся расширением отлично себя зарекомендовавшей nanoWatt, включает ряд новых возможностей, таких как сверхмалопотребляющий модуль пробуждения (ULPWU), специальные малопотребляющие модуль сторожевого таймера (DSWDT) и детектор снижения напряжения (DSBOR), энергосберегающий режим «глубокого сна» Deep Sleep, а также обеспечивает меньший ток потребления в режимах, унаследованных от nanoWatt. В следующих режимах технология nanoWattXLPобеспечивает ток потребления контроллера не более:

  • 100 нА - режим ожидания (Ipd)
  • 800 нА - сторожевой таймер (Iwdt)
  • 800 нА - часы реального времени с календарем (Irtcc)

Надо понимать, что в богатом портфолио контроллеров Microchip различные энергосберегающие режимы, специальные модули и настройки, а также токи потребления модулей контроллера варьируются от семейства к семейству, поэтому строго выделить отличия между технологиями nanoWattи nanoWatt XLP невозможно, да и не нужно - данная статья дает общее представление об энергосберегающих возможностях PIC-контроллеров.

Технологии энергосбережения nanoWattи nanoWattXLPпредоставляют разработчику различные режимы работы с гибкими возможностями по программному управлению аппаратным средствами, что позволяет минимизировать потребление тока при выполнении каждой текущей задачи. В таблице 1 приведен перечень энергосберегающих режимов PIC-контроллеров. В таблице 2 приведено сравнение по потреблению нескольких nanoWattPIC-контроллеров с конкурентами, производства других фирм.

 

Таблица 1.

Режим работы

Активно тактирование

Активная периферия

Варианты пробуждения

Потребляемый ток

Типичное применение

Deep Sleep(1)

Timer1/SOSC*

INTRC/LPRC

RTCC

DSWDT

DSBOR

INT0

RTCC

DSWDT

DSBOR

INT0

MCLR

< 50 нА

Устройства с батарейным питанием, большую часть времени находящихся в режиме Sleep(3)

Sleep

Timer1/SOSC*

INTRC/LPRC

A/D RC

RTCC

WDT

АЦП

компараторы

CVref

INTx

Timer1

HLVD

BOR

Все источники пробуждения (см. в документации на соотв. контроллера)

50-100 нА

Большинство критичных к энергопотреблению устройств

Idle

Timer1/SOSC

INTRC/LPRC

A/D RC

Вся периферия

Все источники пробуждения (см. в документации соотв. контроллера)

25% тока потребления в активном режиме (Run)

Каждый раз, когда контроллер находится в ожидании (например, прерывания)

Doze(2)

Все источники тактирования

Вся периферия

Программно или по прерыванию

35-75% тока потребления в активном режиме (Run)

Приложения, требующие высокоскоростную периферию и малых ресурсов ЦП

Run

Все источники тактирования

Вся периферия

-

Согласно документации на соотв. контроллер

Обычный режим работы

  1. только для XLPконтроллеров PIC18 и PIC24
  2. только для PIC24, dsPICи PIC32
  3. более подробно ознакомиться с разницей и критериями выбора между Sleep и Deep Sleep можно в разделе «Выбор между Sleep и Deep Sleep»
    • * Timer1/SOSC– второй осциллятор (32 кГц)

Таблица 2.

Параметр

контроллер

PIC16LF72x

PIC18F46K20

PIC18LF46J11

PIC16LF193x

PIC18LF14K50

PIC24F16KA102

Atmel Atmega168P/328P

Deep Sleep (нА)

-

-

13

-

-

20

-

Sleep (нА)

20

100

54

60

24

25

100(1)

WDT (нА)

500

500

830

500

450

420

4200(1)

32 кГц осциллятор RTCC (нА)

600

500

820

600

790

520

800

Ток утечки портов ввода/вывода (нА)

±5

±5

±200(2)

±50

±5

±50

±1000(1,2)

Run 1МГц (мкА)

110

300

272

150

170

195

300

Минимальное напряжение питания Vdd(В)

1,8

1,8

2

1,8

1,8

1,8

1,8

  • указаны типичные значения при напряжении питания Vdd=1.8..2 В из описаний производителя на контроллер
  1. данные для Vdd=1.8В недоступны, указано для 3В
  2. типичное значение недоступно, указано максимальное согласно документации на контроллер

Режим Deep Sleep

Режим Deep Sleep – самый экономичный режим работы контроллера, когда все модули, которые могут остаться без питания – ядро контроллера, встроенный стабилизатор напряжения, большая часть периферии, ОЗУ – переводятся в энергосберегающий режим. Соответственно, остается только несколько источников пробуждения контроллера:

  • Схема сброса по включению питания POR
  • Сброс по MCLR
  • Будильник часов реального времени (RTCC)
  • Внешнее прерывание
  • Сторожевой таймер «WDT Deep Sleep»

В связи с тем, что тактирование ядра приостановлено – выход из режима DeepSleepвозможен только со сбросом контроллера. Программный счетчик и регистры специального назначения (SFR) также сбрасываются, и выполнение программы начинается с вектора сброса. При этом состояния портов ввода/вывода, Timer1/SOSCи RTCC сохраняются. Дополнительно, гибкая конфигурация Deep Sleep позволяет сохранить значения в некоторой области RAM, что позволяет программе правильно восстановиться после сброса.

После пробуждения программа должна подтвердить сброс, перенастроить периферию и регистры портов ввода/вывода, и затем продолжить выполнение кода. Общий алгоритм приведен на блок-схеме, рис. 1. Для более подробного описания необходимо документации соответствующего контроллера.

Рис. 1.

Очень важно иметь четкое представление о том, какой именно энергосберегающий режим необходимо использовать на каждом этапе работы контроллера. Deep Sleep – режим, актуальный для приложений, требующих длительного срока работы от батарейного питания. Обычно приложения, требующие использования DeepSleep, характеризуются следующими особенностями:

  • Длительное время пребывания в режиме ожидания (обычно от 1 секунды)
  • Не требуется работы периферии в режиме ожидания
  • Требуется точная привязка к времени при минимальном потреблении тока
  • Широкий диапазон рабочих температур

Режим Sleep

Режим Sleep имеется во всех PIC-контроллерах, выполненных по технологии nanoWatt. В режиме Sleep отключается тактирование ядра и большей части периферии. Потребление тока складывается из питания ОЗУ, SFR и программного счетчика.

Источники пробуждения различны для различных семейств, однако все  PIC-контроллеры имеют следующие: сторожевой таймер WDT, 32кГц таймер/осциллятор (для большинства контроллеров – Timer1) и внешние источники прерываний. Контроллеры PIC18, PIC24 и PIC32 имеют большое число периферийных модулей, обеспечивающих возможность пробуждения контроллера, такие как АЦП, компараторы, модули последовательных коммуникационных интерфейсов.

Режим Sleep – наиболее востребованный, широкоприменимый и гибко настраиваемый энергосберегающий режим PIC-контроллеров, который характеризуется предельно быстрым входом и выходом из режима ожидания. Как следствие, данный режим предназначен для устройств, которые требуют частого перехода в статический режим на непродолжительные промежутки времени и быстрого пробуждения. Обычно приложения, предполагающие использование Sleep, характеризуются следующими особенностями:

  • Время пребывания в статическом режиме невелико (обычно не более секунды)
  • Требуется пробуждения от периферии
  • Требуется работа АЦП или компараторов в энергосберегающем режиме.

Выбор между Sleep и Deep Sleep

Чтобы выбрать оптимальный режим необходимо рассчитать характерное время пребывания контроллера в режиме ожидания (Tbe). На рис. 2 приведены формулы для расчета Tbe:

Рис. 2

Сначала рассчитывается потребление энергии в режимах Sleep (Qslp) и Deep Sleep (Qds) – если быть точнее, то рассчитывается протекающий заряд, т.к. напряжение постоянно и одинаково для обоих режимов. В режиме Sleepэнергопотребление определяется произведением тока потребления(Ipdslp) и времени пребывания в данном режиме (Tpd) (формула [1]).

В режиме DeepSleepнеобходимо учесть 3 составляющих (формула [2]):

  • потребление в режиме ожидания (ток потребления(Ipdds) на время пребывания в режиме DeepSleep(Tpd));
  • потребление в момент пробуждения по сбросу POR (с момента появления события, вызвавшего пробуждение, до начала выполнения первой инструкции). Обычно Tpor - значение из документации на контроллер, Ipor– замеряется экспериментально и зависит от условий работы контроллера. Также здесь учитывается время и ток, необходимые на зарядку конденсатора Vcap(если он разряжается в режиме DeepSleep) для контроллеров со встроенным стабилизатором напряжения;
  • потребление контроллера (Idd) на время исполнения кода инициализации (Tinit) до входа в основной цикл программы. Потребление контроллера в активном режиме указано в документации на контроллер, а время необходимое для инициализации удобно замерять при помощи секундомера Stopwatchв единой среде разработки MPLABIDE.

Характерное время пребывания в режиме ожидания (Tbe) соответствует равенству Qslpи Qds. Режим DeepSleepпредпочтительнее в случаях, когда ожидаемое время пребывания в энергосберегающем режиме превышает Tbe, Sleep– в обратном случае.

Режимы Idle и Doze

Режимы Idle и Dozeзанимают промежуточное положение между энергосберегающими режимами и основным (Run).

В режиме Idle тактирование ядра приостановлено, но большая часть, а то и вся периферия сохраняет свою функциональность и может продолжать работать (подробнее в документации на соответствующий контроллер). В контроллерах PIC24, PIC32 и dsPIC имеется возможность индивидуальной настройки периферийных модулей, задействованных в режиме Idle.

В режиме Doze (имеется только в PIC24, PIC32 и dsPIC) периферия может работать на полной скорости, а тактирование ядра возможно на пониженной частоте, полученной делением системной на программно заданный коэффициент.

Выбор между Idle и Doze

Режимы Idle и Doze позволяют сократить потребление тока в тех случаях, когда вход в режим ожидания невозможен, например:

  • необходимы длинные передачи посредством DMA;
  • требуется прием или передача данных по последовательным протоколам;
  • требуется работа высокоскоростного АЦП;
  • ожидание по синхронному таймеру;
  • сбор данных от внешних датчиков;
  • требуется работа модулей Захвата/Сравнения/ШИМ.

Каждый раз, когда контроллер находится в ожидании некоторого события (прерывания от периферии), обычно имеет смысл перейти в режим Idle или Doze. Правильный выбор оптимального энергосберегающего режима позволяет существенно снизить потребляемый конечным устройством ток.

Изменение частоты тактирования

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

Микроконтроллеры PIC позволяют гибко управлять тактированием ядра и периферийных модулей. Зачастую правильное управление тактированием позволяет получить потребление тока в активном режиме ниже, чем в режимах Idle и Doze!

Заключение

Новые технологии nanoWatt и nanoWattXLP предоставляют разработчикам целый ряд гибких возможностей по управлению энергопотреблением, что позволяет существенно снизить потребление тока. Благодаря технологии nanoWatt XLP, компании Microchipудалось создать PIC-контроллеры с самым низким потреблением тока в режиме Sleep. Последняя и более подробная информация о энергосберегающих возможностях PIC-контроллеров доступна на сайте www.microchip.com/lowpower.

Регистрация e-mail на получение новостей ::

Статьи для разработчиков

Новости производителей