microchip

Советы по уменьшению энергопотребления NanoWatt PIC контроллеров


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

Пример 1. Отключение внешней цепи на определенный период

Все режимы низкого потребления энергии не помогут вам решить задачу наименьшего расхода электроэнергии, если у микроконтроллера не будет возможности управлять питанием внешних устройств и цепей. Когда вы разрабатываете схему, необходимо разделить во времени когда и какая внешняя цепь должна работать, а когда нет. Т.е. необходимо обеспечить отключение той части схемы, которая не нужна в данный момент времени, так называемый режим Shutdown.

Например, необходимо разработать автономный прибор снятия информации с датчика с определенным интервалом, например 2 секунды, и записи в энергонезависимую память EEPROM обработанной информации. Основная проблема – это обеспечить максимальное время работы прибора от батареи. Для решения этой проблемы необходимо получить как можно меньшее потребление питания всей схемы.

На рисунке 1, показано наиболее простое решение данной задачи. Микроконтроллер большую часть времени находится в режиме Sleep. При помощи таймера TMR1, включенного в режиме асинхронного счетчика с кварцем 32,768 кГц, каждые 2с контроллер выходит из режима Sleep по переполнению таймера TMR1, измеряет при помощи АЦП значение полученного от датчика сигнала, преобразует его и сохраняет в энергонезависимую память EEPROM, и снова «засыпает». Предполагается использование внешней энергонезависимой памяти EEPROM так как необходим больший объем чем имеет внутренняя EEPROM память самого контроллера. К сожалению, система, показанная на рис.1 имеет один большой недостаток – датчик и EEPROM память постоянно включены и потребляют энергию.

Для существенного снижения потребления энергии необходимо добавить режим Shutdown для цепи датчика и для микросхемы памяти EEPROM, чтобы микроконтроллер мог отключать датчик и внешнюю память, перед тем как войти в режим Sleep. Данное решение показано на рисунке 2.


Как показано на рис.2, для подачи питания на датчик и микросхему памяти EEPROM используются выводы самого контроллера. Так как линии вывода контроллера имеют нагрузочную способность 20 мА, то нет необходимости в дополнительных элементах для управления включением/отключением питания.

Пример 2. Расчет потребления энергии

Приведем пример подсчета срока жизни прибора для примера 1, с реализацией режима Shutdown для датчика и внешней памяти EEPROM. Расчетные значения показаны в таблице 1.

Для данного решения получим, что одно измерение с записью в EEPROM будет требовать 18800 мкА*мс, переведем в мА*час то получим 5,2 мкА*час. Теперь мы можем очень просто определить необходимую ёмкость батареи для нашей задачи. На рисунке 3 показано расчетное время жизни устройства (пример 1) при различных емкостях батареи.

Таблица 1.

Режим работы

Длительность режима (мс)

Потребление в данном режиме (мкА)

мкА*мс

Описание

Sleep

1989

1

1989

Ожидание переполнения таймера

Процессор

 

1

 

Датчик

0

EEPROM память

0

Просыпание

1

166

166

Стабилизация датчика

Процессор

 

1

 

Датчик

165

EEPROM память

0

Измерение

1

213

213

Чтение значения с датчика

Процессор

 

48

 

Датчик

165

EEPROM память

0

Расчет

1

48

48

Пересчет измеренного значения

Процессор

 

48

   

Датчик

0

EEPROM память

0

Сохранение результатов в EEPROM

8

2048

16384

Запись в память

Процессор

 

48

 

Датчик

0

EEPROM память

2000

Пример 3. Выход из режима Sleep с помощью сторожевого таймера WDT

В большинстве приложений для уменьшения потребления энергии, микроконтроллер периодически входит в режим микропотребления Sleep. Для выхода из этого режима есть два пути:

1. Использовать прерывания
2. Ждать переполнения сторожевого таймера WDT

Использование сторожевого таймера в предыдущих семействах микроконтроллеров PIC-micro было не совсем выгодно по двум причинам: относительно высокое потребление самого сторожевого таймера WDT и недостаточная временная точность срабатывания.

В новых «нановатт» микроконтроллерах PIC16F/18F сторожевой таймер работает от основного низкопотребляющего RC генератора (с потреблением 2-3 мкА) и имеет высокую временную стабильность. Дополнительно в микроконтроллерах семейства PIC18F сторожевой таймер WDT может динамически включаться и отключаться для сокращения потребления питания.

Еще одной важной особенностью нового модуля сторожевого таймера WDT это возможность увеличить время срабатывания до 2 минут. Это позволяет как можно реже выводить контроллер из режима Sleep и соответственно уменьшить потребление энергии. Итак, если вам требуется выводить контроллер из режима sleep не чаще чем через одну минуту, то используя сторожевой таймер WDT в новых «нановатт» микроконтроллерах (PIC18F1320) вы можете реализовать «просыпание» именно через одну минуту.

Пример 4. Выбор источника питания

При выборе источника питания для автономной низкопотребляющей системы необходимо учитывать некоторые особенности батарей разного типа. Выбор батарею включает много различных условий:

Емкость батареи
Внутреннее сопротивление
Габаритные размеры батареи
Стоимость батареи
Минимальное напряжения питание необходимое для регулятора напряжения (если используется)
Ток потребления регулятора напряжения (если используется)

Существует множество типов батарей, характеризующихся различными размерами и химическим наполнением. Маленькие батареи большой емкости обычно имеют большое внутреннее сопротивление, и соответственно не подходят для задач с высокими токами. Батареи пригодные для высокоточных задач имеют маленькую емкость и большой вес, чем аналогичные по размеру батареи с высоким внутренним сопротивлением. Например, батареи типа NiCd и NiMh, NiMh более легкие, имеют большую емкость и меньший размер. Однако они имеют более высокое внутреннее сопротивление, чем NiCd батареи. Высокое внутреннее сопротивление не мешает большинству низкопотребляющих решений, но если в схеме имеются пиковые нарастания потребляемой энергии, то возможны ситуации с перекосом напряжения и микроконтроллер может сбросится.

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

Пример 5. Управление устройством с помощью линий ввода-вывода

Если в разрабатываемом устройстве уровень потребления питания является критичным условием, то при разработке стараются снизить потребление насколько это возможно. Основные два пути для уменьшения потребления энергии микроконтроллером – это использование режима Sleep или уменьшение тактовой рабочей частоты. Если же в схеме есть другие устройства, то можно использовать линии ввода вывода микроконтроллера для включения и отключения данных устройств. Некоторые устройства для этого имеют специальный вход для включения режима Shutdown. Для тех устройств, которые не имеют специальных ресурсов для управления включением/отключением питания, можно применить управление питанием путем запитки непосредственно из выходов микроконтроллера, но при этом необходимо соблюдать ограничение по нагрузочной способности порта микроконтроллера. Если управляемое устройство имеет потребление выше нагрузочной способности вывода микроконтроллера, то необходимо применить ключевую схему.

Пример 6. Разводка платы для модуля таймера TMR1

При построении устройства с батарейным питанием модуль таймера TMR1 часто используется в асинхронном режиме с собственным кварцем. Новый модуль таймера TMR1 имеет очень низкое собственное потребление и очень низкий протекающий ток. Это делает цепь генератора чувствительной к помехам создаваемым соседними схемами. Кварц, подключаемый к ножкам T1OSO и T1OSI, вместе с конденсаторами должен быть расположен как можно ближе к выводам микроконтроллера. В границах генератора не должно быть никаких контактов кроме Vdd и Vss. Если нет возможности избежать высокочастотной схемы рядом с генератором, то необходимо разместить защитное кольцо вокруг схемы генератора и соответствующих выводов микроконтроллера, как показано на рисунке 4.

Пример 7. Конфигурация и инициализация портов

Все микроконтроллеры семейства PIC-micro имеют двунаправленные порты ввода-вывода. Некоторые из этих линий могут также работать как аналоговые входы для АЦП или компаратора. Очень важно обратить внимание на тип сигнала, который поступает на линии для получения минимальных потерь энергии.

Цифровые входы:

Цифровые входы имеют наименьшее потребление питания когда значение входного напряжения находится около значений Vdd или Vss. Если же значение входного напряжения находится где-то посередине между Vdd и Vss, то внутренний транзистор микроконтроллера нагружен в линейной области и существенно увеличивается потребление энергии. Эта утечка будет наиболее высокой, если использовать приемы с зарядкой разрядкой конденсатора для считывания многоканальных переключателей или для управления большим количеством светодиодов через несколько портов ввода/вывода. Иногда для уменьшения потребления даже лучше переконфигурировать линию на выход для получения четкой заданной нагрузки для выхода и минимизации потерь энергии.

Цифровые выходы:

Когда линии настроены на выход, то нет никаких дополнительных потерь энергии кроме тех, которые обусловлены внешней нагрузкой внешней цепи подключенной к данному выводу.

Аналоговые входы:

Аналоговые входы имеют очень большой входной импеданс и потребляют незначительную энергию. Они потребляют гораздо меньший ток по сравнению с цифровыми входами, если значение входного напряжения находится посередине между Vdd и Vss. Иногда можно переконфигурировать цифровой вход как аналоговый для получения низкопотребляющего режима для линии ввода, когда она не используется.

При работе с портами необходимо учитывать, что различные источники сигнала сброса микроконтроллера могут сбить настройки порта, поэтому необходимо вводить инициализацию портов, даже если устраивает значение по умолчанию.

Пример 8. Двухскоростной старт. Две скорости работы

Возможность двойного старта была добавлена в некоторые новые «нановатт» микроконтроллеры семейства PIC-micro. Данная возможность позволяет выполнять код во время ожидания срабатывания OST таймера, предназначенного для стабилизации работы основного кварца (в режимах LP, XT и HS). Данный модуль управляется через бит IESO в слове конфигурации. По умолчанию в OSCCON регистре настройка включает в режиме ожидания OST таймера внутренний RC генератор на частоте 32 кГц. Переключив скорость внутреннего RC генератора можно оптимизировать работу микроконтроллера. Небольшой пример кода приведен ниже, для режима HS кварц 20 МГц .

Время выполнения команды Команда Пояснения
  Сброс микроконтроллера  
125 мкс@ 32 кГц bsf STATUS,RP0 ; переключение банка 1
125 мкс@ 32 кГц bsf OSCCON,IRCF2 ; переключение на 1 МГц
4 мкс@ 1 МГц bsf OSCCON,IRCF1 ; переключение на 4 МГц
1 мкс@ 4 МГц bsf OSCCON,IRCF0 ; переключение на 8 МГц
0,5 мкс выполняемый код  
0,5 мкс выполняемый код  
ожидание окончания OST таймера и переключение на 20 МГц
0,2 мкс выполняемый код  

 

Для микроконтроллеров семейства PIC16F62x есть возможность уменьшить потребление энергии путем переключения на дополнительный внутренний RC генератор 37 кГц. Это возможно при режимах основного генератора: внутренний RC генератор 4 МГц (INTRC), внешний RC (EXTRC) или внешний резистор (ER). ER режим только для PIC16F628, для PIC16F628A режим EXTRC. Необходимо учитывать, что скорость дополнительного RC генератора на 37 кГц не откалибрована и имеет разброс 20%-40%. Для переключения используется один бит OSCF в регистре PCON.

Пример 9. Как использовать встроенный модуль опорного напряжения компаратора для получения простого ЦАП

Модуль опорного напряжения, предназначенный для получения опорного напряжения компаратора, может быть использован просто как выход с цифро-аналоговым преобразованием, с нагрузочной способностью лимитированной для вывода RA2. Для повышения нагрузочной способности выхода можно использовать внешний буфер, как показано на рисунке 5.

Пример 10. АЦП и регистр ANSEL

Большинство микроконтроллеров PIC16 со встроенным модулем АЦП имеют регистр ADCON1 предназначенный для конфигурирования каналов АЦП, т.е. настройки аналоговых линий и цифровых. В новых «нановатт» контроллерах для более гибкого управления добавлен регистр ANSEL, который позволяет настраивать вид режима работы непосредственно для каждой линии в отдельности. Каждый бит в регистре ANSEL отвечает за тип соответствующей линии - аналоговая/цифровая. Бит установленный в «1» задает аналоговый вход, «0» задает цифровую линию ввода/вывода. Ниже приведен пример задания регистра ANSEL:

banksel ANSEL ; настройка банка памяти ОЗУ
movlw 0x0f
movwf ANSEL

Результат:

AN0 – аналоговый вход
AN1 – аналоговый вход
AN2 – аналоговый вход
AN3 – аналоговый вход
AN4 – цифровой ввод/вывод
AN5 – цифровой ввод/вывод
AN6 – цифровой ввод/вывод
AN7 – цифровой ввод/вывод

Пример 11. Калибровка внутреннего RC генератора

В новых «нановатт» микроконтроллерах встроенный RC генератор калибруется непосредственно на заводе. Но в некоторых применениях требующих точности в расширенном температурном диапазоне необходимо подстраивать скорость работы генератора. Для этого используется модуль таймера TMR1 с кварцем на частоту 36,768 кГц, рисунок 6. Более подробно данный прием описан в примере AN244, который можно скачать с сайта фирмы Microchip www.microchip.com.

Калибровка основана на измерении частоты внутреннего генератора. Например, если выбрана частота 4 МГц, то время выполнения команды соответственно 1 мкс (4/4 МГц), а таймер TMR1 имеет период 30,3 мкс (1/32768). Это означает, что за один период таймера TMR1, ядро выполнит 30,5 команд. Если в регистры TMR1H:TMR1L загрузить начальное заданное значение, и ожидая переполнение таймера подсчитать сколько команд выполнилось, то получим реальную рабочую частоту. Если частота не совпадает с заданной, то с помощью регистра OCSTUNE мы можем подстроить частоту внутреннего RC генератора.

 

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