№11 / 2014 / статья 5

Особенности работы STM32L0 в режимах пониженного напряжения

Максим Мусиенко (г. Николаев), Роман Попов (КОМПЭЛ), Ярослав Крайнык (г. Николаев)

Сокращение потребления в динамических режимах работы, новая низкопотребляющая периферия – вот особенности новой линейки 32-разрядных микроконтроллеров STM32L0 производства STMicroelectronics по сравнению с предшествовавшей ей нижней линейкой 32-разрядных изделий STM32L1. Все это позволило новым изделиям достичь высоких показателей энергоэффективности, при этом приблизившись по цене к наиболее бюджетным 8-разрядным контроллерам.

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

Технология производства микроконтроллеров STM32L0

Компания STMicroelectronics уделяет много внимания технологиям производства микроконтроллеров STM32. В частности, год назад произошла смена технологии производства со 130 нм на 110 нм в линейке STM32L1 на базе ядра Cortex-M3, что повлекло за собой общее снижение потребляемой энергии. В STM32L0 также используется технология производства 110 нм. Ее особенность заключается в том, что микроконтроллеры STM32 c индексом L производятся по хорошо зарекомендовавшей себя EEPROM-технологии. Для конечного пользователя это имеет два основных плюса – повышение надежности и малая зависимость потребления от температуры (рисунок 1).

Рис. 1. Зависимость потребления от температуры

Рис. 1. Зависимость потребления от температуры

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

Средства достижения энергоэффективности STM32L0

В микроконтроллерах STM32L0 используется ядро ARM Cortex-M0+, обладающее характеристиками, необходимыми для использования в системах со сверхнизким энергопотреблением. Наличие специальных режимов, низкое потребление в активном режиме, малое время пробуждения, широкий диапазон допустимых рабочих температур с практически линейным изменением значения потребляемого тока и высокая производительность 32-битной архитектуры – все это обеспечивает оптимальный баланс по потреблению и производительности, столь необходимый для устройств с батарейным питанием. Данный фактор является важным, поскольку быстрое выполнение инструкций с последующим переходом в один из режимов низкого потребления позволяют сократить энергопотребление системы в целом (рисунок 2).

Рис. 2. Энергоэффективность архитектуры STM32L

Рис. 2. Энергоэффективность архитектуры STM32L

Также в STM32L реализована технология разделения на домены питания (voltage scalling) в зависимости от тактовой частоты микроконтроллера и напряжения питания.

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

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

Рис. 3. Технология Voltage Scalling

Рис. 3. Технология Voltage Scalling

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

То, что обеспечение максимальной энергоэффективности является основной задачей для линейки STM32L0, подчеркивается наличием периферийных устройств, предназначенных для использования в условиях ограниченных ресурсов напряжения питания. Таймер-счетчик, модуль UART с низким потреблением, компараторы, АЦП, часы реального времени способны выполнять функции с минимальным влиянием на общее потребление системы и могут работать без участия ядра.

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

Тактирование устройства

Перед тем, как рассмотреть режимы пониженного потребления энергии, рассмотрим систему тактирования устройства (см. рисунок 4).

Рис. 4. Система тактирования STM32L0

Рис. 4. Система тактирования STM32L0

Для микроконтроллеров STM32L0 доступны следующие внутренние источники тактирования:

  • MSI (Multi Speed Internal) – программно конфигурируемый источник тактирования. Способен обеспечить семь различных тактовых частот в диапазоне 0,065…4,2 МГц. Данный источник используется по умолчанию после сброса устройства на частоте 2,1 МГц. Также он рекомендован для использования в низкопотребляющих режимах из-за малого собственного потребления.
  • HSI (High Speed Internal) – встроенный высокочастотный источник тактирования на 16 МГц. Частота с помощью схемы ФАПЧ может настраиваться до максимальных 32 МГц. Отметим одну особенность: частота с данного источника может быть заведена на модуль АЦП. Это сделано специально, чтобы частота выборок АЦП не зависела от внутрисистемной частоты. Также АЦП может производить измерения от HSI за очень короткое время и уходить в спящий режим. При этом ядро может находиться в спящем режиме.
  • LSI (Low Speed Internal) – встроенный низкочастотный источник тактирования на 37 кГц, предназначенный для модуля часов реального времени, таймера с низким потреблением LPTIM, LCD и Watchdog-таймера.
  • RC 48 МГц – специальный источник тактирования с автоматической автоподстройкой частоты для модуля USB. Благодаря ему необходимость внешнего USB-генератора отпадает, это позволяет экономить место на плате и затраты на разработку.

Также имеется возможность подключения двух внешних кристаллов:

  • HSE (High Speed External) – внешние выводы для подключения внешнего кварцевого резонатора или генератора 1…24 МГц. Внешний источник используется в качестве основного источника тактирования для работы всего контроллера и его периферии, если внутренние генераторы по тем или иным причинам не могут быть использованы.
  • LSE (Low Speed External) – внешний интерфейс для подключения низкоскоростного (обычно – с частотой 32768 Гц) кварцевого резонатора, который удобно использовать в качестве источника тактирования для часов реального времени. Способен обеспечить работу других устройств (UART, LPUART, LPTIM, LCD).

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

Для модуля фазовой автоподстройки частоты PLL в качестве входных сигналов могут использоваться только высокоскоростные источники – HSE или HSI16. При этом допустимое максимальное значение тактовой частоты на выходе составляет 32 МГц.

В зависимости от используемого режима потребления, доступными являются различные источники (таблица 1).

Таблица 1. Доступность источников тактирования при различных режимах потребления

Режим работы Источник тактирования
HSE HSI MSI LSI LSE
Run + + + + +
Sleep + + + + +
Low Power Run + + +
Low Power Sleep + + +
Stop + +
Standby + +

Использование доступных относительно работы с периферией генераторов и их энергопотребление представлено в таблице 2.

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

Источник тактирования Назначение Частота, МГц Потребление, мкА
LSE RTC, LCD, USART, LPTIM, LPUART 32,768 0,45…0,6
LSI RTC, LCD, IWDG, LPTIM ~0,037 0,4
MSI Основная частота 65,5…4,2 0,75…15
HSE Основная частота 1…24 0,5…0,7
HSI16 Основная частота 16 100

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

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

Обобщенные данные по потреблению представлены на рисунке 5.

Рис. 5. Режимы потребления в STM32L0

Рис. 5. Режимы потребления в STM32L0

Run – режим, который используется по умолчанию после запуска устройства для микроконтроллеров. Данный режим, в котором выполняются программные инструкции, является наиболее затратным с точки зрения потребления, поэтому при построении энергоэффективных решений необходимо использовать режимы пониженного напряжения. Тем не менее, даже данный режим предоставляет возможности для управления напряжением. Например, доступен регулятор напряжения ядра, который при соответствии рабочей частоты можно перевести в диапазон 2 или 3, что обеспечит меньшее потребление. В активном режиме потребление зависит от используемой периферии и частоты тактирования микроконтроллера. Типичное значение в активном режиме, которое приводится производителем, составляет 87…140 мкА/МГц. Неиспользуемую периферию необходимо отключать.

В устройствах серии STM32L0 есть возможность использования пяти режимов пониженного потребления

Low Power Run – режим работы контроллера в режиме Run с пониженным потреблением. При его использовании регулятор напряжения ядра переходит в режим низкого напряжения, но при этом продолжается выполнение программных инструкций, и вся периферия доступна для использования. В данном режиме источником основного тактового сигнала может являться многоскоростной осциллятор MSI, однако его тактовая частота не должна превышать 131 кГц, что соответствует второму диапазону (домену) напряжению ядра. Пробуждение из данного режима производится переключением регулятора в состояние, которое обеспечивает напряжение ядра в диапазоне 1 (1,8 В). Данный режим позволяет понизить общее потребление до 8 мкА.

Sleep – режим сна, который предполагает остановку выполнения программных инструкций и тактирования ядра. Переход в данный режим затрагивает только ядро, а остальные модули могут выполнять работу без ограничений на используемые источники тактирования и их частоту. Соответственно, выход из данного режима и переход к дальнейшему выполнению программы может быть произведен по возникновению прерывания или события, в зависимости от того, какая инструкция использовалась для перехода в режим сна. Также следует отметить, что в данном режиме доступна опция динамического управления напряжением, то есть для регулятора можно задать любой из используемых диапазонов напряжения. Выбор используемого значения зависит от задач, которые необходимо выполнять. На потребление в данном режиме влияют используемая периферия, частота ее работы и выходное напряжение регулятора. Поскольку данный режим останавливает лишь работу ядра и не накладывает ограничений на остальные устройства, то с точки зрения потребления его можно назвать самым затратным среди всех. Это подтверждается и показателями, которые составляют около 35…40 мкА/МГц.

Low Power Sleep – симбиоз двух предыдущих режимов. При его использовании ядро останавливает свою работу, как и в режиме сна, частота системной шины, которая получена от источника MSI, не должна превышать значения в 131 кГц, а внутренний регулятор напряжения должен находиться в режиме низкого напряжения, как и при режиме Low Power Run. Такая комбинация позволяет получить лучшее от двух режимов. При этом есть небольшие ограничения на используемую периферию, но, тем не менее, большая часть устройств остается доступной. Потребление в данном режиме удается понизить до 4,7 мкА.

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

Stop – режим останова ядра, позволяющий значительно сократить потребление по сравнению с режимами, рассмотренными выше. Это достигается за счет ограничений на используемые источники тактирования, а также на доступную периферию. Недоступными становятся высокоскоростные источники (HSE, HSI) и внутренний многоскоростной источник MSI. При этом Flash-память переходит в режим низкого потребления. Несмотря на то, что многие периферийные модули становятся недоступными, пробуждение из режима остановки может происходить от модулей UART и I2C. Следует также отметить возможность автоматического пробуждения от аналоговых компараторов по изменению уровня входного напряжения. Автоматическое пробуждение происходит по возникновению событий или прерываний от внутренних устройств, сигналы которых воспринимаются как внешние прерывания (модуль EXTI). Такую возможность предоставляют и часы реального времени. Кроме того, для пробуждения может использоваться любой внешний вывод. Режим Stop позволяет добиться значения потребления всего 400 нА. При этом сохранность контекста оперативной памяти не теряется. Время пробуждения – 3,5 мкс. В определенном смысле данный режим является компромиссом между практически полным отключением системы в режиме ожидания (возможен небольшой проигрыш по потреблению) и другими режимами. В тех случаях, когда даже минимальное потребление критично и важно время пробуждения, целесообразно использовать данный режим.

Standby – режим полного останова, который способен обеспечить наименьшее потребление. Данный режим предполагает полное отключение питания области ядра и соответствующего регулятора, отключение Flash памяти и RAM. Доступными для использования остаются только низкочастотные источники тактирования. Устройствами, работа которых возможна в режиме ожидания, являются часы реального времени RTC, независимый сторожевой таймер IWDG, а также модули наблюдателей напряжения BOR (может быть отключен) и POR/PDR (работают всегда). Поскольку потребление модуля BOR является существенным по отношению к общему потреблению (около 3 мкА), то целесообразно производить его отключение при использовании режима ожидания. Ограниченный набор выводов может использоваться только для выполнения системного сброса. Следует обратить особое внимание на то, что выход из данного режима возможен только при выполнении системного сброса. Поскольку в таком случае необходима полная начальная инициализация устройства, пробуждение из режима ожидания занимает больше времени, чем требуется для остальных, и составляет около 50 мкс. Тем не менее, именно в режиме ожидания удается достичь наименьшего значения потребления, которое может составлять менее 300 нА.

Контроль входного напряжения

Рис. 6. Установка бита сброса по уровню напряжения

Рис. 6. Установка бита сброса по уровню
напряжения

Микроконтроллеры STM32L0 имеют широкие базовые возможности для контроля входного напряжения. Такой функционал реализуется модулем сброса по уровню напряжения BOR (Brown Out Reset), модулями сброса POR (Power On Reset/Power Off Reset) напряжения питания, а также программируемым детектором напряжения PVD (Power Voltage Detector)

Сброс по уровню позволяет определить минимальное пороговое значение, при котором будет выполняться сброс. Данное значение задается программно путем выбора одного из значений диапазона напряжений. Для использования доступно несколько диапазонов, а значение используемого определяется на основе конфигурационных битов в памяти устройства. Например, для микроконтроллеров STM32L053 доступны пять диапазонов, минимальный из которых соответствует значениям 1,69…1,8 В. Модуль BOR имеет собственное потребление порядка 3 мкА. Это значение может быть существенным в некоторых приложениях, поэтому данный модуль можно программно отключать. В этом случае уровень сброса будет определен в модуле POR, потребление которого равно нулю, а уровень сброса составляет 1,5 В. Данное действие может быть произведено либо программным путем, либо с использованием ПО STM32 ST LINK Utility (рисунок 6).

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

Потребление наиболее часто используемой периферии

Доступная периферия отличается в зависимости от устройства. Рассмотрим показатели потребления периферии на примере STM32L053R8. Наиболее интересными являются данные относительно коммуникационных интерфейсов, таймеров, устройств, которые позиционируются как устройства для режимов с низким потреблением, аналоговых компонентов. Данные представлены в таблице 3 [3].

Таблица 3. Потребление периферийных устройств

Наименование
периферийного устройства
Потребление, мкА/МГц
Диапазон 1; 1,8 В Диапазон 2; 1,5 В Диапазон 3; 1,2 В Режим выполнения и сна с низким
потреблением
I2C1 11 9,5 7,5 9
USART1 14,5 11,5 9,5 12
SPI1 4 3 3 2,5
TIM2 10,5 8,5 7 9
LPTIM1 10 8,5 6,5 8
LPUART1 8 6,5 5,5 6
ADC1 5,5 5 3,5 4

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

Таблица 4. Потребление периферии в режимах остановки и ожидания

Наименование
периферийного устройства
Потребление в режимах Stop и Standby при входном
напряжении 1,8…3 В, мкА
LPTIM1 0,01 (входная частота 100 Гц)…6 (1 МГц)
LPUART 0,2
RTC 0,3…0,48
LCD1 0,15…2,6

Также отметим потребление АЦП, так как это один из наиболее часто используемых модулей. По сравнению с более старшим семейством STM32L1 данный модуль был значительно переработан, потребление удалось снизить в несколько раз. Теперь потребление на максимальной частоте сэмплирования 1 МГц составляет порядка 200 мкА. Если спуститься до частот в несколько герц или килогерц, то можно достичь потребления в единицы микроампер.

 

Заключение

Микроконтроллеры новой линейки STM32L0 сочетают в себе две важные составляющие, более характерные для устройств с автономным питанием. Первая – высокая производительность, требования к которой возрастают с каждым годом. Вторая – низкое потребление в динамическом диапазоне работы и гибкая система малопортбляющих режимов. При сравнении новой линейки STM32L0 с более старшей линейкой микроконтроллеров STM32L1 на ядре Cortex-M3 можно отметить, что разработчики STMicroelectronics произвели много усовершенствований в данном продукте. Помимо сокращения потребления в динамических режимах работы, изменения коснулись и периферии. Например, это усовершенствованный АЦП с потреблением в пять раз ниже чем в STM32L1, малопотребляющие таймеры и UART, который может работать с потреблением меньше микроампера, пока остальная периферия «спит». Благодаря этим новшествам и агрессивной ценовой политике ST, микроконтроллеры STM32L0 вплотную приблизились к эффективности и бюджетности к самым дешевым малопотребляющим 8-битным микроконтроллерам, предоставляющим разработчику большую гибкость в разработке новых устройств с батарейным питанием.

 

Литература

  1. AN4445 Application note STM32L0xx ultra low power features overview;
  2. RM0367 Reference manual Ultra-low-power STM32L0x3 advanced ARM®-based 32-bit MCUs;
  3. Техническая документация на микроконтроллер STM32L05x.

Получение технической информации, заказ образцов, заказ и доставка.

ST_STM32L0_NE_12_14_opt

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

О компании ST Microelectronics

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