Автономное питание? – выбираем STM32L

3 апреля 2011

При разработке устройств с автономным питанием обычно учитываются два основных параметра — энергопотребление в динамическом режиме и в режиме сна. Это обусловлено различными требованиями к работе конечных приложений. Например, одному приложению необходимо постоянно работать в активном режиме и потреблять при этом минимум энергии. Второму же наоборот, важно потребление не в динамическом режиме, а в режиме глубокого сна, поскольку к основным целям относятся активация микроконтроллера в редкие промежутки времени, выполнение некоторых действий и повторный переход в режим сна. Учитывая эти два параметра, компания STMicroelectronics разработала 32-разрядный микроконтроллер STM32L на основе ядра ARM Cortex-M3.

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

 

Режимы питания ядра

Линейка STM32L сочетает в себе высокую производительность и плотность кода, присущие всем микроконтроллерам на ядре ARM Cortex-M3, низкое энергопотребление в активном и спящем режимах. Однако за высокую производительность приходится расплачиваться высоким энергопотреблением. Для большинства приложений выигрыш заключается в меньших затратах времени на выполнение задачи после выхода МК в активный режим работы (режим «Run»). Если рассматривать энергопотребление в процессе обработки данных или работы микроконтроллера, то оно, выраженное в мА/DMIPS (benchmark Rev 2.0), у Cortex-M3 значительно лучше, чем в других архитектурах, в частности, 16-битных. Производительность в DMIPS/MГц задается ядром и интерфейсом памяти, энергопотребление в мА/DMIPS в процессе работы может быть максимизировано с помощью регулирования напряжения питания. Именно этот метод был применен в STM32L, а именно — динамическая адаптация напряжения питания в зависимости от необходимой частоты тактирования микроконтроллера. При работе МК на максимальной частоте (для полного использования всех его возможностей — производительности, периферии) обычно необходимо, чтобы верхняя граница питающего напряжения составляла 3…3,3 В. В случае если контроллеру необходимо переключиться в режим низких частот тактирования, это напряжение является избыточным и несет с собой излишние затраты по энергопотреблению. В этих целях в линейке STM32L реализовано динамическое изменение напряжения ядра микроконтроллера.

STM32L предоставляет возможность динамического изменения напряжения питания ядра в трех диапазонах: 1,8 В (Range 1); 1,5 В (Range 2) и 1,2 В (Range 3). Такая особенность позволяет добиться общего снижения энергопотребления более чем на 25%. Таким образом, конфигурирование напряжения питания ядра в совокупности с режимами ультранизкого энергопотребления позволяет подходить к регулированию потребления более гибко. Особенности возможностей тактирования и общего энергопотребления в зависимости от напряжения питания ядра отражены на рисунке 1.

 

Зависимость производительности STM32L от напряжения питания ядра

 

Рис. 1. Зависимость производительности STM32L от напряжения питания ядра

На рисунке 1 показаны зависимости частот тактирования от напряжения питания ядра и общего напряжения питания микроконтроллера. В первом диапазоне (Range 1) достигается максимальная производительность без каких либо ограничений. Во втором диапазоне (Range 2) максимальная частота тактирования ограничена 16 МГц. В третьем диапазоне (Range 3) максимальная частота контроллера ограничена 4 МГц. На рисунке приводятся цифры энергопотребления микроконтроллера со всей включенной периферией и исполнением программного обеспечения из FLASH и SRAM.

 

Режимы пониженного энергопотребления

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

Рассмотрим обобщенную схему энергопотребления линейки STM32L (рис. 2.)

 

Общая картина энергопотребления STM32L

 

Рис. 2. Общая картина энергопотребления STM32L

 

При более детальном рассмотрении рисунка видно, что потребление в активном режиме при выполнении программы из flash-памяти составляет порядка 230 мкА/МГц. Второй режим — flash-память отключена, программа исполняется только из SRAM-памяти, и потребление в этом случае составляет 186 мкА/МГц. Далее идут режимы пониженного потребления с различными характеристиками при работе от встроенного низкочастотного источника тактирования. Отметим лишь два последних режима. Потребление в стоп-режиме с активными и неактивными часами реального времени (RTC) составляет 1,3 мкА и 430 нА, соответственно, при этом важный момент — контекст SRAM-памяти сохраняется. Более детальная картина энергопотребления рассмотрена в таблице 3. Всего же в линейке STM32L доступно семь режимов пониженного энергопотребления, более подробная информация представлена в таблице 1.

Таблица 1. Сравнение производительности 32-битных микроконтроллеров на основе CoreMark  

Режимы пониженного энергопотребления Энергопотребеление Функциональные модули
ЦПУ FLASH/ EEPROM RAM DMA
и периферия
Тактиро вание LCD RTC
Sleep 100 мкА/МГц (Range 1) неактив. вкл вкл активна любое доступно
82 мкА/МГц (Range 2)
65 мкА/МГц (Range 3)
Low power run 10,4 мкА (FLASH выкл,
32 кГц частота)
активен вкл или выкл вкл активна MSI
Low power sleep 5,1 мкА (таймер выкл) неактив. выкл вкл активна MSI
6,1 мкА (таймер вкл.)
Stop
(RTC активен)
1,3 мкА (1,8 В) неактив. выкл вкл неактив. LSE, LSI
1,6 мкА (3 В)
Stop 500 нА неактив. выкл вкл неактив. LSE, LSI выкл выкл
Standby
(RTC активен)
1 мкА (1,8 В) выкл выкл выкл выкл LSE, LSI выкл вкл
1,3 мкА (3 В) выкл выкл выкл вкл
Standby 270 нА выкл выкл выкл выкл LSE, LSI выкл выкл

Рассмотрим приведенные в таблице 1 режимы более подробно.

  • Sleep- остановлено только ЦПУ. Вся периферия продолжает работать и может вызвать пробуждение процессорного ядра через прерывание или событие.
  • Low power run- вход в режим осуществляется установкой MSI-осциллятора на минимальную частоту (64 кГц), переводом внутреннего регулятора напряжения в энергосберегающий режим и выполнением программы из RAM или flash-памяти. В этом режиме можно добиться потребления в 10,4мкА, если исполнять программный код из RAM-памяти на частоте 32кГц.
  • Low power Sleep- вход осуществляется командой перехода в Sleep-режим при нахождении регулятора напряжения в энергосберегающем режиме. Типовой пример использования данного режима- работа на частоте 32кГц. При появлении прерывания или наступлении события система переходит в рабочий режим со включением регулятора. При выключенной периферии режим позволяет добиться потребления всего в 4 или 5мкА, если один из таймеров запущен на частоте 32кГц.
  • Stop (с активным RTC или без него)- позволяет добиться минимального энергопотребления при сохранении содержимого регистров и RAM. Вэтом режиме всё тактирование элементов ядра прекращено; PLL, MSI, HSI и HSE-осцилляторы остановлены; регулятор находится в энергосберегающем режиме. Микроконтроллер может выйти их режима за 8мкс по сигналу EXIT, источником которого могут быть различные события модулей RTC, USB или компараторов.
  • Standby (с активным RTC или без него)- позволяет добиться ультранизкого энергопотребления. Вэтом режиме внутренний регулятор напряжения выключен, и питание всех элементов ядра прекращено. Все прочие осцилляторы, кроме LSI и LSE, также отключены. Содержимое RAM-памяти и регистров, за исключением системных (логики пробуждения, независимого сторожевого таймера (IWDG), RTC, LSI, LSE, модуля управления сбросом (RCC)), теряется. Устройство выходит из Standby-режима за 60 мкс при наступлении одного из следующих событий:
    1. Внешний сброс (вывод NRST);
    2. Сброс IWDG;
    3. Появление прямого фронта на одном из выводов WAKEUP;
    4. Сигнал тревоги RTC, искажение данных в регистре RTC, сигнал пробуждения от RTC.

В данном режиме при выключенном модуле часов реального времени потребление микроконтроллера не превышает 270 нА.

По сравнению с основными режимами пониженного энергопотребления линейки STM32F, в линейке STM32L добавились два новых режима: «Low Power Run» и «Low Power Sleep». Они обеспечивают рабочий и спящий режимы для приложений с чрезвычайно низким потреблением в случаях, когда некоторые периферийные модули не могут быть отключены (например, модуль передачи данных или таймеры), а также при длительной работе ЦПУ на низких частотах. Для дальнейшего уменьшения энергопотребления можно использовать следующие рекомендации:

  • Регулятор напряжения можно перевести в энергосберегающий режим для снижения тока потребления;
  • Энергонезависимую память можно выключить, а исполнение программы проводить из RAM;
  • Внутренний RC-осциллятор можно использовать для формирования основного тактового сигнала.

 

Управление тактированием

Для реализации всего спектра режимов пониженного энергопотребления микроконтроллеры семейства STM32L имеют блок управления сбросом и тактированием (RCC — Reset and Clock Control), дающий возможность настройки и выбора любого из пяти источников тактовых импульсов.

Для приложений, требующих высокой точности вычислений, доступны два типа внешних источников тактирования:

  • HSE (Hight Speed External clock)- внешний источник тактирования с частотой 4…24МГц, обычно используемый блоком PLL для тактирования ЦПУ на частоте до 32МГц и USB-модуля на частоте 48МГц;
  • LSE (Low Speed External clock)- часовой кварц с частотой 32,768 кГц, обычно используемый для тактирования часов реального времени (RTC), который может применяться в качестве тактового сигнала для LCD.

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

  • LSI (Low Speed Internal clock)- внутренний осциллятор с частотой 37кГц, являющийся низкоточным и сверхнизкопотребляющим источником тактовых импульсов, который может применяться для работы часов реального времени (с ограниченной точностью), LCD-контроллера или независимого сторожевого таймера (IWDG);
  • HSI (Hight Speed Internal clock)- высокоскоростной внутренний 16МГц осциллятор с компенсацией напряжения;
  • MSI (Multi-Speed Internal clock)- осциллятор средней точности с конфигурируемой частотой тактирования от 64кГц до 4МГц и низким потреблением. MSI был специально разработан для гибкого контроля энергопотребления в зависимости от частот тактирования микроконтроллера.

Приведенная ниже таблица 2 содержит характеристики всех описанных источников тактирования.

Таблица 2. Характеристики источников тактирования  

Источник
тактирования
Используется для: Частота Потребление
типовое, мкА
Точность Подстройка
завод потребитель
HSE задающий генератор
(Master Clock), RTC, LCD
1…24 МГц 500…700 зависит от кристалла, 10ppm не применяется
LSE RTC и LCD 32,768 кГц 0,45 (1,8 В) 0,6 (3 В) зависит от кристалла, 5 ppm
HSI задающий генератор
(Master Clock)
16 МГц 100 1% (тип.) есть есть
MSI задающий генератор
(Master Clock)
64 кГц 0,6 есть есть
128 кГц 0,9
256 кГц 1,4
512 кГц 2,2
1,02 МГц 4
2,1 МГц 7
4,1 МГц 12
LSI RTC, LCD, WDT 38 кГц 0,4 (3 В) -30%+50% нет нет, fLSI можно измерить

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

Несмотря на то, что встроенные источники тактирования (HSI и MSI) откалиброваны при изготовлении, они могут быть в дальнейшем программно откалиброваны до точности 0,5%, чтобы компенсировать частотную нестабильность, вызываемую изменениями напряжения питания и температуры кристалла. Точно так же исходное отклонение низкочастотного источника тактирования LSI может быть вычислено и скомпенсировано с помощью более точного внутреннего (HSI) или внешнего (LSE, HSE) источников тактирования. Например, в приложениях часто используются часы реального времени (RTC), а для их тактирования зачастую используется внешний источник на 37,768 КГц. Как правило, низкочастотные внешние источники тактирования (LSE) имеют довольно высокую точность параметров и могут использоваться для калибровки встроенных источников тактирования, например, MSI, во время выполнения программы.

 

Особенности использования периферии

Помимо разнообразных режимов регулирования энергопитания микроконтроллеров, немаловажными являются особенности периферийных модулей, которые также позволяют оптимизировать их для снижения энергопотребления. Некоторые из таких модулей требуют особого внимания по управлению питанием для достижения минимального потребления МК, например, модуль АЦП.

STM32L имеет встроенный модуль 12-битного АЦП со скоростью семплирования до 1 MSPS (1 мкс). По сравнению с линейкой STM32F подход к работе модуля АЦП в STM32L был значительно изменен. В семействе STM32 АЦП является очень быстрым, тщательные измерения входных сигналов могут резко сократить срок жизни аккумулятора, т.к. требуют постоянного энергопитания модуля АЦП, потребляющего до 1,45 мА независимо от режима работы микроконтроллера. Соответственно, АЦП в STM32L должен затрачивать минимум времени на преобразование аналогового сигнала. Для реализации этого подхода система тактирования АЦП разделена на две части — аналоговую и цифровую с различными источниками тактирования (рис. 3).

 

Система тактирования модуля АЦП

 

Рис. 3. Система тактирования модуля АЦП

Сигнал тактирования на аналоговую часть поступает от высокоскоростного источника (HSI) независимо от тактирования ядра и остальной периферии микроконтроллера. Данный подход позволяет ядру микроконтроллера работать на низких частотах в экономичном режиме, тогда как процесс преобразования аналогового сигнала может происходить на высокой частоте. Тем самым минимизируется время работы АЦП в активном режиме, и соответственно, снижается общее потребление системы в целом. Реализованная в АЦП процедура самокалибровки, быстрый выход АЦП на рабочий режим при подаче на него питания (3,5 мкс) и малое время преобразования (1 мкс) позволяют выполнить шесть преобразований менее чем за 10 мкс. Это позволяет выключать АЦП сразу после завершения преобразования и включать его непосредственно перед проведением измерений. Такой подход при переключении питания АЦП с частотой, например, 1 кГц позволяет добиться среднего уровня энергопотребления АЦП не более 10,5 мкА. Модуль АЦП может активироваться либо по одному из сигналов от таймера, либо от внешнего источника. С помощью таймеров, которые могут работать в режимах пониженного энергопотребления, можно задавать разнообразные временные комбинации запуска АЦП.

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

Три модуля периферии были разработаны специально для постоянного использования в Stop-режиме, когда тактирование прекращено, а питание источника тактирования и памяти выключено:

  • Пара компараторов может использоваться для контроля уровня внешних напряжений, при этом их потребление составляет не более 3мкА. Компараторы могут выводить ядра из Stop-режима при достижении напряжением определенного значения и могут использоваться совместно для задания оконного режима контроля напряжения.
  • Модуль часов реального времени с функцией календаря может использоваться для выведения микроконтроллера из состояния сна. Работа RTC возможна даже в Standby-режиме, при котором большая часть питания микроконтроллера выключена. Этот модуль был разработан с применением технологии асинхронного дизайна, что позволило достичь минимального энергопотребления (менее 1мкА).
  • ЖК-индикатор является наиболее часто применяемым типом дисплея в приложениях с низким энергопотреблением благодаря малому току потребления, низкой стоимости и простоте изготовления индикаторов индивидуального вида. В линейке STM32L152хх интегрирован гибкий контроллер ЖК-дисплеев, который может работать с разрешением до 8х40 и имеет встроенный повышающий преобразователь для задания требуемого типа контрастности изображения в широком диапазоне напряжений питания системы. Потребление контроллера составляет не более 5мкА (потребление самого ЖК-индикатора не учитывается).

 

Контроль напряжения питания микроконтроллера

Система сброса является важной частью в работе любого микроконтроллера. В STM32L реализован улучшенный супервизор напряжения питания с несколькими программируемыми опциями, активный во всех фазах работы микроконтроллера. Процесс включения или сброса микроконтроллера важен, так как внутренняя схема должна быть автоматически проинициализирована в определенном порядке с применением критических параметров, извлекаемых из энергонезависимой памяти. Именно в этот момент времени важна стабильность питающего напряжения микроконтроллера. Схема сброса гарантирует, что контроллер перейдет в режим сброса (включится), если напряжение питания станет более 1,8 В вне зависимости от времени нарастания напряжения питания Vdd. После того как прошла первоначальная фаза включения микроконтроллера, разработчик может активировать или деактивировать модуль BOR (brown-out-reset) для постоянного мониторинга напряжения питания. Модуль BOR позволяет выбрать один из пяти уровней напряжения. Функционал этой опции располагается в энергонезависимой памяти для обеспечения независимости супервизора питания от программной реализации. Функциональность супервизора питания дополняется семиуровневым детектором напряжения PVD (programmable voltage detector). Модуль PVD может активироваться программно и генерировать прерывание в случае выхода напряжения питания за пределы заранее сконфигурированного порога напряжения.

Принцип работы супервизора напряжения питания показан на рисунке 4.

 

Принцип работы супервизора напряжения питания

 

Рис. 4. Принцип работы супервизора напряжения питания

Энергопотребление модулей BOR и PVD составляет ниже 3 мкА в активном режиме работы микроконтроллера, но эта, на первый взгляд — небольшая, цифра может оказаться весомой в режимах глубокого сна. В STM32L существует возможность автоматически отключать модули BOR и PVD в режимах глубокого сна микроконтроллера и включать при переходе микроконтроллера в активный режим работы. Данный способ позволяет снизить энергопотребление микроконтроллера в спящих режимах при очень малом потреблении и избежать опасности при переходе в активный режим.

Линейка STM32L может работать при напряжении питания 1,65 В с очень малыми ограничениями: лишь модули USB, АЦП и ЦАП не могут использоваться во всем рабочем диапазоне напряжений (табл. 3).

Таблица 3. Зависимость работы периферии от напряжения питания  

Напряжение питания (Vdd), В АЦП USB Напряжение питания ядра (Vcore), В Максимальная частота тактирования ядра (Fcpu), МГц
1,65…1,8 Не работает Не работает Range 2 или Range 3 16 (1WS) 8 (0WS)
1,8…2 Время преобразования
до 2 мкс
Не работает Range 2 или Range 3 16 (1WS) 8 (0WS)
2…2,4 Время преобразования
до 2 мкс
Работает Range 1, Range 2, Range 3 32 (1WS) 16 (0WS)
2,4…3,6 Время преобразования
до 1 мкс
Работает Range 1, Range 2, Range 3 32 (1WS) 16 (0WS)

В диапазоне энергопитания 1,65…1,8 В модули USB и АЦП не могут использоваться; вся остальная периферия доступна разработчику. В диапазоне 1,8…2,0 В модуль USB все еще не может использоваться; модуль АЦП может использоваться, но с ограничением по скорости преобразования, которая в два раза меньше максимально доступной и составляет 2 мкс. В диапазоне 2…2,4 В уже можно использовать модуль USB, но модуль АЦП все еще работает на более медленной скорости. И наконец, в диапазоне 2,4…3,6 В достигается полная функциональность АЦП. Также стоить обратить внимание на четвертую колонку таблицы 3, где представлены возможные варианты конфигурации питания ядра микроконтроллера.

Определенные устройства из линейки STM32L с постоянно отключенным модулем BOR могут использоваться в приложениях с напряжением питания 1,8 В ±8%. В этом случае модуль POR/PDR (power-on reset / power-down reset) остается активным и осуществляет сброс микроконтроллера по установленному порогу. Если разработчик гарантирует, что нарастание напряжения питания Vdd во время старта работы микроконтроллера по меньшей мере достигает 1,65 В, то сработает прерывание сброса и микроконтроллер начнет работать.

 

Заключение

В статье были рассмотрены особенности микроконтроллеров линейки STM32L, позволяющие добиться ультранизкого энергопотребления. Семь режимов энергосбережения совместно с гибкой системой тактирования и питания ядра позволяют достичь потребления всего в 10,5 мкА при активном ядре и менее 270 нА в режиме глубокого сна, когда отключено питание практически всех модулей микроконтроллера, но сохраняется возможность выхода из режима по наступлению внешних событий. Линейка STM32L объединяет в себе накопленный опыт компании STMicroelectronics в разработке платформ с ультранизким энергопотреблением, плотностью кода и производительностью ядра ARM Cortex-M3 и значительно расширяет возможности применения микроконтроллеров STMicroelectronics с ультранизким энергопотреблением, дополняя ранее созданную 8-битную линейку STM8L.

 

Литература

1. Doc ID 17659 Rev 1 «STM32L151xx and STM32L151xx Prileminary», STMicroelectronics, July 2010.

2. AN3193 «STM32L15x ultralow power features overview», STMicroelectronics, April 2010.

Получение технической информации, заказ образцов, поставка — e-mail: mcu.vesti@compel.ru

 

 

•••

Наши информационные каналы

О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее