Научная статья на тему 'Советы по уменьшению энергопотребления контроллеров nanoWatt'

Советы по уменьшению энергопотребления контроллеров nanoWatt Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
195
70
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кузнецов Антон

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Советы по уменьшению энергопотребления контроллеров nanoWatt»

Компоненты и технологии, № 8'2003 Компоненты

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

микроконтроллеров nanoWatt

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

Антон Кузнецов

[email protected]

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

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

С2

3.3V —

10k R2

U1

Vdd

: Cl

R1 . 10k

R3

-EZh

ik

MCLR RAO RA1 RA2 RA3

RA4/TOCKI

OSC1/CLIGN

RB0/INT RBI RB2 RB3 RB4 RB5 RB6

п - сз 5 OSC2/CLKOUT RB7 VS5 t 1

Н" —22пФ

V PiCl 6F81 9 8Т

0.1 мкФ U2

8 VCC АО WP А1

7 6

5 SDA GND

hdi-4

768кГц|_Є

Serial EEPROM

32.768кГц[ C3 C5-J-g

Рис. 1. Схема без реализации режима Shutdown

С2

з.зу — |_L

10k R2

=ЬС1

R1

10k

U1

14

R3

Ik

C3 -Г22пф

Vdd

MCLR

RAO RB0/INT

RA1 RBI

RA2 RB2

RA3 RB3

RA4/TOCKI RB4

RB5

OSCI/CLKiN RB6

OSC2/CLKOUT RB/

VS5

4.71

R5

0.1 мкФ U2

8 VCC AO WP AT

7 6

5 SDA GND

tl

HD

Є І 32.768кГц| :3 C5

=j=C3

Serial EEPROM

Рис. 2. Схема c реализацией режима Shutdown

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

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

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

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

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

Компоненты и технологии, № а'2003

Компоненты

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

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

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

Таблица 2. Расчет времени жизни батареи

Таблица 1

Тип Емкость Время Время жизни

батареи (мАч) (ч) (в годах)

CR1212 18 3446808,511 393,47

CR1620 75 14361702,13 1639,46

CR2032 220 42127659,57 4809,09

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

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

1. Использовать прерывания.

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

WDT.

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

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

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

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

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

• емкость батареи;

Режим работы Длительность режима (мс) Потребление в данном режиме (мкА) мкАмс Описание

Sleep 1989 1 1989 1 Ожидание переполнения таймера |

Процессор 1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Датчик 0

EEPROM 0

Просыпание 1 166 166 1 Стабилизация датчика |

Процессор 1

Датчик 165

EEPROM 0

Измерение 1 213 213 1 Чтение значения с датчика |

Процессор 48

Датчик 165

EEPROM 0

Расчет 1 48 48 1 Пересчет измеренного значения |

Процессор 48

Датчик 0

EEPROM 0

Сохранение результатов в EEPROM 8 2048 16384 1 Запись в память

Процессор 48

Датчик 0

EEPROM 2000

• внутреннее сопротивление;

• габаритные размеры батареи;

• стоимость батареи;

• минимальное напряжение питания, необходимое для регулятора напряжения (если используется);

• ток потребления регулятора напряжения (если используется).

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

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

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

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

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

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

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

Компоненты и технологии, № 8'2003

иТ1081, вместе с конденсаторами должен быть расположен как можно ближе к выводам микроконтроллера. В границах генератора не должно быть никаких контактов, кроме Vdd и Vss. Если нет возможности избежать высокочастотной схемы рядом с генератором, то необходимо разместить защитное кольцо вокруг схемы генератора и соответствующих выводов микроконтроллера, как показано на рис. 3.

Компоненты

Таблица 3

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

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

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

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

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

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

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

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

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

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

Две скорости работы

Возможность двойного старта была добавлена в некоторые новые nanoWatt-микроконтроллеры семейства PIC-micro. Данная возможность позволяет выполнять код

Время выполнения команды Команда Пояснения

Сброс микроконтроллера

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 мкс выполняемый код

во время ожидания срабатывания ОвТ-тай-мера, предназначенного для стабилизации работы основного кварца (в режимах ЬР, ХТ и Ш). Данный модуль управляется через бит ІЕ80 в слове конфигурации. По умолчанию в режиме ожидания ОвТ таймера в регистре ОвССОЫ настройка включает внутренний ИС-генератор частоты 32 кГц. Переключив скорость внутреннего ИС-генератора, можно оптимизировать работу микроконтроллера. Небольшой пример кода для режима ГО кварц 20 МГц приведен в таблице 3.

Для микроконтроллеров семейства РІС16Р62х есть возможность уменьшить потребление энергии путем переключения на дополнительный внутренний ИС-генератор 37 кГц. Это возможно при режимах основного генератора: внутренний ИС-генератор 4 МГц (ЮТИС), внешний ИС (ЕХТИС) или внешний резистор (ЕЯ). Режим ЕИ доступен только для РІС16Б628, режим ЕХТИС — для РІС16Б628А. Необходимо учитывать, что частота дополнительного ИС-генератора на 37 кГц не откалибрована и имеет разброс 20-40%. Для переключения используется один бит 08СБ в регистре РСОМ

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

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

CVref

МОДУЛЬ

R(1)

—ПЙ

Voltage

Reference

Output

Impedance

RA2

CVref

Оідрід

Прим.1: к зависит от конфигурации битов СУКСОЫ<3:0> и СУкСОЫ<5>

Рис. 4. Внешний буффер для ЦАП

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

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

Результат:

AN0 — аналоговый вход AN4 — цифровой ввод/вывод

AN1 — аналоговый вход AN5 — цифровой ввод/вывод

AN2 — аналоговый вход AN6 — цифровой ввод/вывод

AN3 — аналоговый вход AN7 — цифровой ввод/вывод

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

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

Cl

ЗЗпФ

JT

т

I

PICD16F818/819 TIOSI

XTAL

32.768кГц

С2

ЗЗпФ

Рис. 5. Подключение часового кварца к таймеру 1

Калибровка основана на измерении частоты внутреннего генератора. Например, если выбрана частота 4 МГц, то время выполнения команды соответственно 1 мкс (4/4 МГц), а таймер ТМИ1 имеет период 30,3 мкс (1/32768). Это означает, что за один период таймера ТМИ1 ядро выполнит 30,5 команды. Если в регистры ТМК1И:ТМК1Ь загрузить начальное заданное значение и, ожидая переполнения таймера, подсчитать, сколько команд выполнилось, то получим реальную рабочую частоту. Если частота не совпадает с заданной, то с помощью регистра ОСвТиЫЕ мы можем подстроить частоту внутреннего ИС-генератора.

i Надоели баннеры? Вы всегда можете отключить рекламу.