Микроконтроллеры серии C8051F9xx, или Как обеспечить «пожизненную» работу микроконтроллера от одной батарейки

№ 7’2009
PDF версия
В 2008 году фирма Silicon Labs анонсировала новую линейку микроконтроллеров C8051F93x/92x, которые, по заявлению производителя, могут работать при напряжении питания от 0,9 В, то есть от одной практически полностью разряженной щелочной или солевой батарейки. В маркетинговых материалах компания также представляет значения энергопотребления в различных режимах работы, достойные того, чтобы назвать данную линейку лидирующей на рынке микропотребляющих 8-разрядных микроконтроллеров.

Общая информация

Микроконтроллеры C8051F93x/92x анонсированы со следующими функциональными особенностями, которые в комплексе, на одном кристалле, выгодно отличают эту линейку от микросхем других производителей:

  • Максимальная производительность 25 MIPS.
  • Повышающий DC/DC-преобразователь (DC/DC boost converter).
  • Встроенный регулятор напряжения (LDO).
  • Напряжение питания 0,9-3,6 В.
  • Выпускаются в корпусах QFN32 (5×5 мм) и LQFP32 (9×9 мм).
  • Три высокочастотных генератора:
    • малопотребляющий на 20 МГц с 10%-ной стабильностью частоты;
    • типовой генератор на 24,5 МГц со стабильностью 2% во всем диапазоне рабочих температур;
    • генератор с внешним кварцем.
  • Часы реального времени (блок smarRTClock). Возможность пробуждения из глубокого энергосберегающего режима от часов реального времени.
  • Возможность переключения источника тактового сигнала «на лету». Аппаратный блок вычисления контрольной суммы (CRC16, CRC32).
  • Два аналоговых компаратора с 23 каналами для реализации емкостных клавиш (Capacitive Touch Sense).
  • 10-разрядный АЦП с частотой дискретизации до 300 ksps с мультиплексором на 23/15 каналов.
  • Аппаратный механизм повышения эффективной разрешающей способности АЦП до 13 бит.
  • Программируемый источник опорного напряжения на 64 дискретных значения, инициализирующийся за 1,7 мкс.
  • Типовые значения энергопотребления:
    • 170 мкА/МГц на частоте 20-25 МГц/ 1,8 В/ядро включено;
    • 600 нА в режиме сна при запущенном RTC;
    • 50 нА в режиме сна с хранением данных в RAM.
  • Если рассмотреть более подробно последний пункт, то производитель указывает следующий комплекс параметров:
  • Низкое энергопотребление в активном режиме и режимах сна:
    • 170 мкА/МГц в активном режиме на частоте 25 МГц;
    • меньше 1 мкА в спящем режиме.
  • Быстрый выход из спящего режима и быстрое исполнение инструкций:
    • В режиме Suspend время «просыпания» — 400 нс при использовании микропотребляющего внутреннего генератора.
    • В спящем режиме время «просыпания» — меньше 2 мкс при работе от двух батарей и 10 мкс при работе от одной батареи.
    • Максимальная производительность составляет 25 MIPS на частоте 25 МГц.

Таблица. Режимы работы микроконтроллеров C8051F9xx

Режим работы Функциональность Источники сигналов, пробуждающие контроллер; время пробуждения Типовые значения токов потребления в режиме работыот двух батарей, соединенных последовательно Типовые значения токов потребления в режиме работы от одной батареи напряжением 1,5 В
Normal Микросхема полностью функциональна 4,1 мА на частоте 24,5 МГц; 3,5 мА на частоте 20 МГц; 90 мкА на частоте 32,768 кГц (±10 мкА при изменениях напряжения питания) 6,3 мА на частоте 24,5 МГц; 5,4 мА на частоте 20 МГц; 360 мкА на частоте 32,768 кГц
Idle Вся периферия включена. Выполнение программы ядром приостановлено Любое прерывание; пробуждение за 2-3 тактовых сигнала системной тактовой частоты 2,5 мА на частоте 24,5 МГц; 1,9 мА на частоте 20 МГц; 84 мкА на частоте 32,768 кГц (±10 мкА в зависимости от напряжения питания) 3,7 мА на частоте 24,5 МГц; 2,9 мА на частоте 20 МГц; 350 мкА на частоте 32,768 кГц
Stop Режим работы, унаследованный от архитектуры 8051 Сигнал сброса 75 мкА

при напряжении питания 1,8 В; 90 мкА
при напряжении питания 3,6 В

330 мкА
Suspend Режим, аналогичный Stop, но с очень быстрым пробуждением и выполнением следующей команды сразу после выхода из сна Часы реального времени (smaRTClock), заданный уровень сигнала на линиях ввода/вывода (Port Match), прерывание от Comparator0; время пробуждения 400 нс 75 мкА

при напряжении питания 1,8 В; 90 мкА
при напряжении питания 3,6 В

330 мкА
Sleep Самый малопотребляющий режим работы с широким набором
источников пробуждения. Программа начинает свою работу со следующей инструкции. Встроенный DC/DC-преобразователь отключается
smaRTClock, Port Match, Comparator0 (только в режиме работы от двух батарей); время просыпания 2 мкс в режиме работы от двух батарей,10 мкс — при работе от одной батареи 600 нА при включенных часах реального времени (SmaRTClock); 50 нА
при выключенных часах
600 нА при включенных часах реального времени (SmaRTClock); 50 нА
при выключенных часах
  • Малое время аналого-цифрового преобразования встроенного АЦП:
    • -Время готовности источника опорного напряжения при включении не превышает 1,7 мкс.
    • -Минимальное время при последовательном измерении аналогового напряжения на разных каналах не превышает 3,3 мкс на каждый канал.
  • Возможность работы на одной или двух дешевых щелочных или солевых батарейках:
    • -Микроконтроллер имеет встроенный DC/DC-преобразователь, благодаря чему обеспечиваются два диапазона рабочих напряжений: 1,8-3,6 В (без использования DC/DC-преобразователя) и 0,9-1,8 В (с использованием DC/DC-преобразователя).
    • -Режим работы в диапазоне напряжений от 0,9 до 1,8 В обеспечивает работу от одной батареи, напряжение которой при практически полном истощении падает до 0,9 В, в то время как у новой батареи напряжение не превышает 1,8 В.
    • -Режим работы в диапазоне напряжений от 1,8 до 3,6 В обеспечивает работу микроконтроллера от двух батарей, соединенных последовательно.

Почему данные характеристики важны в комплексе?

  1. У микроконтроллеров серии C8051F9xx показатели энергопотребления в активном режиме и в спящем режиме таковы, что время работы от одной батареи может исчисляться в годах. Если рассматривать в качестве примера систему сбора данных, в которой микроконтроллер просыпается 1 раз в секунду, находясь при этом 999 мс в режиме сна, а 1 мс — в активном режиме, расчетные данные от производителя таковы [1]:
    • Одной батарейки типа АА хватит более чем на 17 лет.
    • Одной батарейки типа ААА — почти на 11 лет.
    • «Таблетка» CR2032 проработает около пяти с половиной лет.

    Следует также учесть, что в поставленной задаче активный режим работы микроконтроллера длится 1 мс, а это для микроконтроллера с производительностью 25 MIPS — очень большой отрезок времени, так как если считать, что за это время все инструкции из набора команд контроллера будут использованы одинаковое количество раз, то будет выполнено порядка 15 000 инструкций.

  2. Указывая такие параметры, как производительность и время просыпания, производитель C8051F9xx сообщает о том, что потери энергии при «просыпании» минимальны, а в активном режиме микроконтроллер максимально эффективен. Такие параметры актуальны, так как в процессе пробуждения резко увеличивается энергопотребление микросхемы, а полезная работа еще не выполняется, поэтому время пробуждения должно быть минимально.
  3. При реализации системы сбора данных также важны временные характеристики аналоговой подсистемы. Например, время ожидания первого результата преобразования после выхода микроконтроллера из режима сна должно быть минимальным, так как микроконтроллер после старта АЦП вынужден ждать первого результата, потому что еще не имеет данных, которые он может начать обрабатывать, а, ожидая эти данные, уже работает на высокой частоте, потребляя максимальный ток. Здесь же время инициализации источника опорного напряжения не превышает задержку на накопление сигнала на входе АЦП, а значит, не вводит дополнительных задержек.
  4. Использование встроенного DC/DC-пре-образователя обеспечивает выигрыш в размере питающего элемента, а также позволяет задействовать все ресурсы батареи до практически полного ее истощения. Несмотря на выдающиеся параметры, выделяемые производителем, существует ряд методик, которыми необходимо пользоваться для того, чтобы эффективно задействовать предоставленные кристаллом возможности. Об этих методиках мы и поговорим далее.

Режимы работы C8051F9xx

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

Из режимов энергосбережения, пожалуй, самым интересным является спящий режим (Sleep). Микроконтроллеры C8051F9xx имеют уникальные возможности, которых не могут предложить другие производители подобных микросхем:

  1. Спящий режим с выключенными часами реального времени. Уникальность этого режима состоит в том, что при токе потребления 50 нА остается работоспособной логика ввода/вывода, которая может быть задействована для пробуждения микроконтроллера из этого глубокого режима сна. Также предусмотрена возможность пробуждения по сигналу от аналогового компаратора, но это возможно только в режиме работы от двух батарей и добавит к энергопотреблению еще 400 нА (всего 450 нА в спящем режиме), что в сумме является очень неплохим результатом.
  2. Спящий режим с включенными часами реального времени. Этот режим с потреблением порядка 600 нА предназначен для задач, где необходимо пробуждение микросхемы с заданной периодичностью, причем максимальное время сна может достигать 36 часов.

В этих двух режимах энергосбережения особенно важным является то, что при пробуждении микроконтроллер продолжает выполнение заданной программы с момента, с которого он ушел в режим сна, причем данные в ОЗУ и регистрах сохраняются даже при снижении напряжения питания до 0,9 В (при выключенном DC/DC-преобразователе).

Энергопотребление C8051F9xx в активном режиме

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

У микроконтроллеров C8051F9xx на частоте 1 МГц энергопотребление кристалла составляет 300 мкА, а на частоте 25 МГц на каждый мегагерц уже приходится всего по 170 мкА. Поэтому при выполнении заданного количества инструкций необходимо это делать на максимально возможной тактовой частоте. Если же выполнение задачи зависит от других факторов, требующих более длительной работы процессора (например, ожидание при приеме данных через медленный интерфейс UART), запуск микроконтроллера на максимальной частоте может оказаться неэффективным. В таких случаях желательно переключиться на невысокую тактовую частоту либо предусмотреть перевод микроконтроллера в режим Idle. На рис. 2 приведен график зависимости энергопотребления от частоты в режиме Idle, когда активирована вся периферия, а выполнение программы ядром приостановлено. На графике видно, что перевод в этот режим уменьшит ток потребления почти вдвое.

Рис. 1. Энергопотребление C8051F930 в зависимости от тактовой частоты в активном режиме

Следует отметить, что у микроконтроллера предусмотрен режим Oneshot, который на частотах до 10 МГц обеспечивает экономию энергии за счет включения питания Flash-па-мяти только на время выборки команды из памяти. На частотах более 10 МГц режим отключения Flash-памяти теряет свою эффективность, и для максимально эффективной работы ядра на больших частотах режим Oneshot должен быть программно запрещен. Эффективность включения и отключения этого режима можно увидеть на рис. 1, экстраполировав в смежные зоны прямые до и после 10 МГц.

Рис. 2. Типовое значение энергопотребления в зависимости от тактовой частоты в режиме Idle

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

В любой КМОП-структуре, работающей на высокой частоте, энергопотребление сильно зависит от напряжения питания: чем ниже напряжение питания, тем меньше энергопотребление. В условиях плавающего напряжения питания на батарее, используемой в качестве источника, необходимо обеспечить минимально допустимое для данного кристалла напряжение питания. В микроконтроллерах C8051F9xx для этого интегрирован регулятор напряжения (LDO), который обеспечивает на входе микросхемы необходимые ей минимальные 1,8 В независимо от того, какой уровень в диапазоне 1,8-3,6 В получен от двух последовательно соединенных батарей, либо с выхода DC/DC-преобразователя. Благодаря встроенному регулятору напряжения, ток потребления не будет зависеть от того, новая или истощенная батарея используется в данный момент (рис. 3).

Рис. 3. Снижение тока потребления за счет встроенного регулятора напряжения

Энергопотребление микросхемы от температуры зависит слабо: при изменении температуры в диапазоне от -40 до +85 °C изменение тока не превышает ±5% от нормируемых при 25 °C значений.

Учитывая все вышесказанное, при написании кода программы для C8051F93x необходимо придерживаться следующих рекомендаций:

  1. При инициализации тактового генератора на частоту более 10 МГц необходимо запретить режим Oneshot установкой бита FLSCL.6 в значение 1. Если же генератор инициализируется на частоту менее 10 МГц, то необходимо разрешить режим Oneshot установкой бита FLSCL.6 в значение 0, а затем сразу же записать ненулевое значение в регистр FLWR (регистр защиты от случайного включения режима Oneshot). При активировании любого энергосберегающего режима также необходимо активировать режим Oneshot: это может уменьшить энергопотребление в шесть раз.
  2. Необходимо добавить команду перевода микроконтроллера в режим Idle либо Suspend во все функции, включающие ожидание прерываний в цикле while(1). Это могут быть, например, прерывание по изменению состояния на линиях ввода/вывода (функция Port Match) либо прерывание по окончании преобразования АЦП. Код программы в таком случае должен принять следующий вид
  3. Необходимо минимизировать «пустые» циклы, реализующие временные задержки. Это можно сделать, например, с помощью таймера, генерирующего прерывания, либо программно переключив системную тактовую частоту внутри этого цикла на пониженную частоту, что в микроконтроллерах C8051F93x можно делать «на лету».
  4. Необходимо также переключать частоту системного тактового сигнала, когда программа осуществляет обмен данными с медленной периферией. Для примера, передача одного байта по интерфейсу UART на скорости 115 200 бод требует ~86,8 мкс. Если в момент передачи данных нет других параллельных задач, самое время переключить процессор на пониженную частоту, такую, чтобы производительности процессора на этой частоте было достаточно для обеспечения заданной скорости обмена данными.
  5. При ожидании событий (прихода данных по UART, SPI либо SMBus/I2C) в режиме сна необходимо использовать функцию формирования прерывания при появлении заданного уровня на линиях ввода/вывода (Port Match). Так, например, если микроконтроллер находится в спящем режиме, для которого время «просыпания» 2 мкс, то, например, при получении по интерфейсу UART стартового бита, длина которого ~8,68 мкс на скорости 115 200 бод, микроконтроллер успеет «проснуться» и будет готов для приема посылки данных (рис. 4).
  6. Flash-память представляет из себя массив, каждая строка которого содержит 128 байт. При последовательном исполнении кода, после выборки команд из одной строки чтение переводится на следующую строку. При переходах между строками Flash-памя-ти происходит ощутимое увеличение энергопотребления, которое при выполнении очень коротких циклов, включающих частые переходы между строками, может привести к увеличению энергопотребления (в худшем случае на 30%). Для минимизации энергопотребления в циклах с малым количеством операций внутри, особенно в цикле while(1), необходимо убедиться, что все команды из этого цикла располагаются в одной строке Flash-памяти. Для совместимости с планируемыми к выпуску микросхемами C8051F90x и C8051F91x с меньшим размером строки желательно помещать такие циклы в первой или второй половине каждой строки по 128 байт.
  7. Для повышения эффективной разрешающей способности аналогово-цифрового преобразования на выходе встроенного 10-разрядного АЦП можно использовать методику передискретизации и усреднения. Для этого желательно задействовать режим Burst в АЦП. В этом режиме работы встроенного АЦП автоматически считывается и усредняется заданное количество отсчетов, а результат помещается в выделенный 16-разрядный регистр. Усреднение происходит автоматически, поэтому процессорное ядро на это время можно переключить на меньшую тактовую частоту или перевести в режим энергосбережения.

while(1)
{
1.проверяем наличие события №1
2.проверяем наличие события №2
3.проверяем наличие события № 3
n. задаем источники пробуждения
n+1. вводим микроконтроллер в режим SLEEP

Энергопотребление C8051F9xx в режимах энергосбережения

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

Для приложений, где задействованы две батарейки, обеспечивающие напряжение питания в диапазоне 1,8-3,6 В, спящий режим необходимо выбрать, если время просыпания в 2 мкс не противоречит требованию поставленной задачи. В этом режиме энергопотребление системы не превысит 1 мкА. Если же 2 мкс превышает заданный порог, то можно задействовать режим Suspend, в котором время пробуждения не превышает 400 нс, обеспечив при этом ток потребления не более 75-90 мкА.

В приложениях, где задействована возможность работы от одной батареи (питание от 0,9 до 1,8 В), время пробуждения из самого малопотребляющего — спящего — режима составит порядка 10 мкс, а энергопотребление не превысит 1 мкА. Здесь важно, что при использовании спящего режима встроенныйDC/DC-преобразователь отключается, а это значит, что «единичные» значения на линиях портов ввода/вывода упадут ниже 1,8 В, поэтому проектировать свое изделие нужно таким образом, чтобы это снижение напряжения не вызвало утечек через подключенную к микроконтроллеру периферию. Если же спроектировать систему так не получается (либо время пробуждения велико), то можно задействовать режим Suspend. Здесь время пробуждения не превышает 400 нс, встроенный DC/DC-преобразователь не отключается, а ток потребления составляет от 250 до 500 мкА в зависимости от степени разряда батареи и КПД преобразователя, зависящего от входного напряжения питания и заданного выходного напряжения. Также нужно иметь в виду, что если от встроенного DC/DC-преобразователя питаются еще и внешние узлы изделия, то при активации спящего режима они лишатся обеспечиваемого им напряжения выше 1,9 В: оно упадет до напряжения на батарее.

Когда речь идет об энергопотреблении микроконтроллера в спящем режиме, которое меньше 1 мкА, схемотехнические ошибки вне микроконтроллера могут свести «на нет» выдающиеся показатели энергопотребления, обеспеченные разработчиками C8051F9xx.

Основным источником утечек является периферия, подключенная к портам ввода/вывода микросхемы. Silicon Labs дает следующие общие рекомендации:

  1. При подключении к линиям порта индикации (светодиода), необходимо подключать ее между плюсовой линией питания и линией порта ввода/вывода, то есть таким образом, чтобы активный режим (светодиод включен) соответствовал логическому значению «0» на линии порта ввода/вывода. Саму же линию порта необходимо сконфигурировать в режиме с открытым коллектором.
  2. Входные сигналы от внешних источников, подключенные к портам ввода/вывода, в основном своем состоянии должны иметь логическое значение «1» либо должны быть подтянуты внешним резистором к питанию. В противном случае перед переключением микроконтроллера в спящий режим порты микроконтроллера, которые не используются для пробуждения, должны быть сконфигурированы как аналоговые входы, иначе утечка через встроенную «подтяжку» может составить 0,2-20 мкА в зависимости от величины напряжения питания.
  3. Аналоговые сигналы (либо сигналы, уровень напряжения которых не определен) не должны подаваться на линии портов ввода/вывода, сконфигурированных как цифровой вход. Сигналы на входе, находящиеся в зоне неопределенного логического уровня, будут создавать «эффект перемычки», приоткрывая верхний и нижний транзистор входного цифрового буфера. На рис. 5 приведен пример, где на обоих транзисторах напряжение затвор-исток больше порогового напряжения их открытия, а значит, создается резистивная связь между питанием и «землей».
  4. Линии портов ввода/вывода, которые не использованы в текущей схеме, должны быть подключены к шине питания. Этим будет гарантировано, что наведенная помеха не создаст плавающего напряжения на свободных линиях, приводящего к «эффекту перемычки», который описан выше.
  5. Во время отладки программы в изделии с помощью внутрисхемного эмулятора/программатора USB Debug Adapter для оценки реального энергопотребления системы необходимо отключить эмулятор, так как он создаст дополнительный ток утечки порядка 2-4 мА. Дополнительная постоянная утечка может возникнуть и в цепях питания. Так, например, емкости, использованные для фильтрации питания, могут создавать немалые токи утечки. Далее приведены примеры значений токов утечек, создаваемых конденсаторами при напряжении питания 3 В:

Рис. 4. Пробуждение микроконтроллера при получении данных по UART

Керамический конденсатор:

  • емкость — 1 мкФ, ток утечки — 3 нА;
  • емкость — 10 мкФ, ток утечки — 30 нА.

Танталовый конденсатор:

  • -емкость — 1 мкФ, ток утечки — 1000 нА;
  • -емкость — 47 мкФ, ток утечки — 4000 нА. Поэтому необходимо использовать керамические конденсаторы с минимально допустимым номиналом, а танталовые конденсаторы необходимо исключить вовсе.

Для обеспечения прогнозируемого поведения и получения желаемого энергопотребления микроконтроллера процедуры входа в режим энергосбережения и выхода из него должны учитывать все рекомендации производителя по этому вопросу. «Заготовки» кодов на языке С предлагаются Silicon Labs в руководстве по применению AN358. Там предусмотрены оптимальные режимы работы микроконтроллера и продуманы сценарии пробуждения микроконтроллера по различным событиям.

Работа микроконтроллера от одной батареи

Запуск микроконтроллера от одной батареи предполагает, что напряжение питания у свежей батареи не превышает 1,8 В, а у практически истощенной батареи может снизиться до 0,9 В. Благодаря встроенному DC/DC-преобразователю, любое напряжение из этого диапазона повышается до значения, необходимого для полноценной работы микроконтроллера— 1,8-3,3 В.

Рис. 5. Возникновение утечки на цифровом входе

Потребляемый микроконтроллером ток, измеряемый в цепях после преобразователя напряжения, не будет отличаться от тока потребления в режиме с двумя батареями, соединенными последовательно. Ток нагрузки на батарею, в свою очередь, будет превышать ток, создаваемый на выходе DC/DC-преоб-разователя и будет зависеть от четырех параметров (1). Для минимизации тока, потребляемого от батареи, необходимо обеспечить следующие условия:

  • использовать батарейки с максимальным выходным напряжением;
  • программировать DC/DC-преобразователь на минимально возможное выходное напряжение;
  • минимизировать ток нагрузки на выходе преобразователя;
  • максимально повысить КПД преобразователя.

Выходное напряжение батарейки зависит от ее химического состава. Так, например, при 50%-ной потере емкости напряжение на выходе щелочной батареи составит порядка 1,25 В, в то время как литиевая батарея (Li-FeS2) при тех же условиях будет иметь напряжение на выходе порядка 1,5 В. В этом случае при запуске контроллера на максимальной частоте ток потребления (по расчетам производителя) составит 7,8 мА от щелочной батареи, а от литиевой — 6,3 мА, это значит, что щелочная батарея будет разряжаться еще активнее. Далее, рассматривая дополнительные плюсы и минусы различных батарей, необходимо принять решение об использовании батареи того или иного типа.

Рис. 6. КПД DC/DC-преобразователя при выходном напряжении 2 В

Выходное напряжение DC/DC-преобразователя может быть установлено программно в диапазоне 1,9-3,3 В. Наибольший КПД преобразователя и минимальный ток нагрузки на батарею обеспечиваются при выходном напряжении питания 1,9 В: на этом значении преобразователь инициализируется при включении. Большее выходное напряжение желательно использовать только в случаях, когда напряжение на выходе преобразователя задействовано для питания прочих элементов на плате изделия, либо напряжение логической «единицы» должно быть выше 1,9 В. Для примера, повышение выходного напряжения с 1,9 до 2,7 В увеличит ток нагрузки на батарею с 6,3 до 10 мА.

Ток нагрузки на выходе преобразователя задается цепями, подключенными к его выходу. Вопросы оптимизации энергопотребления описаны в двух предыдущих разделах. Ток потребления от батареи будет, как правило, на 30-50% выше, чем ток, потребляемый с выхода преобразователя.

КПД преобразователя — величина, зависящая от напряжения на батарее, выходного напряжения с преобразователя, выбора компонентов и настроек DC/DC-преобразовате-ля, которые устанавливаются программно. На рис. 6 приведены значения КПД DC/DC-преобразователя при заданном выходном напряжении, равном 2 В, и различных значениях остальных параметров. В документации на микросхему приведена аналогичная зависимость для выходного напряжения 3 В.

К внешним компонентам DC/DC-преоб-разователя (рис. 7) предъявляются следующие требования: катушка индуктивности должна иметь минимальное сопротивление по постоянному току и большой номинальный ток; входная и выходная емкости должны иметь малый ток утечки, то есть можно использовать только керамические конденсаторы.

Рис. 7. Функциональная схема DC/DC-преобразователя C8051F930

При проектировании печатной платы для цепей DC/DC-преобразователя необходимо выполнить следующий комплекс требований. Катушка индуктивности должна быть расположена как можно ближе к выводу DCEN, а создаваемая этим соединением паразитная емкость должна быть минимальной. Цепь, создаваемая между DCEN, катушкой индуктивности, емкостью и общим проводом, должна быть как можно короче, то есть связи между этими элементами и выводами C8051F930 должны быть минимальны. Дорожки, соединяющие конденсатор c выходом преобразователя, должны быть максимально короткими и широкими, чтобы минимизировать паразитную индуктивность. Производитель предоставляет пример дизайна печатной платы для того, чтобы можно было его повторить в своем изделии и не разбираться с этими далеко не простыми вопросами.

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

  • Выходное напряжение. Может устанавливаться в диапазоне от 1,8 до 3,3 В. Ранее уже было сказано, что чем меньше выходное напряжение, тем выше КПД преобразователя. Производитель рекомендует использовать значения напряжения не ниже 1,9 В для того, чтобы был запас для встроенного супервизора питания, который при небольших пульсациях напряжения может генерировать ложные срабатывания, если выходное напряжение установлено равным 1,8 В.
  • Выбор ключа. В блок DC/DC-преобразова-теля микроконтроллера C8051F930 встроено два ключа на разные токи нагрузки. Один ключ предназначен для работы на токах нагрузки до 8 мА при выходном напряжении 2 В (до 4 мА при выходном напряжении 3 В), а второй ключ, более мощный, предназначен для работы на токах нагрузки до 36 мА при выходном напряжении 1,8 В (до 19 мА при 3,3 В). Работая в своем режиме нагрузки, каждый из ключей имеет более высокий КПД, поэтому при переключении режимов работы микроконтроллера необходимо помнить о возможном пересечении границы эффективной работы одного либо другого ключа.
  • Минимальная длительность импульса. Программная настройка длительности рабочего импульса преобразователя напряжения необходима для обеспечения необходимой минимальной выходной мощности при текущей нагрузке. Так, например, при минимальной нагрузке со стороны микроконтроллера (в режимах энергосбережения) производитель предоставляет возможность снизить энергопотребление DC/DC-преобразователя, уменьшив длину импульса, тем самым увеличив КПД преобразователя в этом режиме работы.
  • Максимальный ток заряда катушки. Максимальный ток заряда катушки индуктивности может быть установлен 125 либо 500 мА. Для приложений с небольшим током нагрузки максимальный ток заряда катушки должен быть равен 125 мА, а при высоких нагрузках на выход DC/DC-пре-образователя максимальный ток заряда катушки необходимо увеличить.
  • Режим работы выхода преобразователя напряжения в спящем режиме. При переключении DC/DC-преобразователя в режим сна разработчику предоставляется возможность задать состояние выхода преобразователя: его можно оставить «в воздухе» либо подключить к входу батареи, обеспечив тем самым долговременную работу периферии, которая может функционировать при напряжении питания ниже 1,9 В. Если же оставить выход питания «в воздухе», то цепи, подключенные к выходу преобразователя, некоторое время будут питаться током разряда емкости на выходе преобразователя, поэтому при кратковременных переходах в спящий режим можно обеспечить дополнительную экономию заряда батареи.

Измерения аналоговых величин

Аналоговая периферия (АЦП и компараторы) могут создать заметную прибавку к общему энергопотреблению микроконтроллера. Для минимизации этих значений необходимо руководствоваться следующими правилами:

  1. Необходимо использовать АЦП с максимально возможной частотой преобразования. Это позволит выполнить необходимое количество преобразований и сразу отключить АЦП. При использовании методики передискретизации и усреднения необходимо задействовать режим Burst, в котором максимально быстро и эффективно (без участия ядра) аккумулируется и усредняется заданное количество отсчетов (до 64).
  2. При использовании встроенного температурного датчика необходимо разрешать его непосредственно перед запуском преобразования и запрещать сразу же после его окончания. Время установления сигнала на температурном датчике составляет 1,7 мкс, что не превышает время накопления сигнала на входе АЦП.
  3. Необходимо задействовать встроенный источник опорного напряжения (ИОН), который инициализируется менее чем за 1,7 мкс, что также не превышает время накопления сигнала на входе АЦП. Если встроенный ИОН задействован, он будет автоматически «разрешаться» перед началом аналого-цифрового преобразования и «запрещаться» после его окончания.
  4. При использовании аналогового компаратора с целью сравнения входного напряжения с половиной значения напряжения питания необходимо задействовать встроенный в кристалл резистивный делитель напряжения вместо делителя внешнего, так как внутренний делитель может быть программно отключен, в то время как внешний делитель будет создавать постоянную утечку.
  5. Аналоговый компаратор имеет 4 настройки по времени реакции на событие. При использовании компаратора в качестве источника пробуждения из сна необходимо установить максимальное время реакции, заметно уменьшив энергопотребление в этом режиме.
  6. При переключении микроконтроллера в спящий режим вся неиспользуемая для пробуждения аналоговая периферия должна быть отключена.

Заключение

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

Оценить время работы микроконтроллера в различных режимах работы можно задолго до покупки какого-либо «железа»: производитель предлагает программу Battery Life Estimator [1] — калькулятор расчета длительности работы микросхемы от различных элементов питания.

Литература

  1. https://www.silabs.com/Support%20Documents/ Software/BatteryLifeEstimator_Installer.zip
  2. AN358: Optimizing Low Power Operation of the ‘F9XX.
  3. Материалы тренинга «Designing Power Efficient Embedded Systems» фирмы Silicon Labs.
  4. Документация на серию микроконтроллеров C8051F92x-C8051F93x.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *