OKW: приборные корпуса из Германии
РадиоЛоцман - Все об электронике

STM8L: энергосберегающее решение

STMicroelectronics STM8L

Кирилл Автушенко (КОМПЭЛ)

В семействе низкопотребляющих восьмибитных микроконтроллеров STM8L компании STMicroelectronics – пополнение: линейки STM8L101x и STM8L15x/162. Статья – своего рода инструкция для разработчиков по оптимальному использованию различных режимов энергосбережения, предусмотренных для этих микроконтроллеров.

Электромеханические реле Hongfa – надежность и качество 19 января 2023

Несмотря на постоянное удешевление 16- и 32-битных микроконтроллеров, 8-битные не сдают позиций, особенно в области систем с низким энергопотреблением. Очередным доказательством этого утверждения следует считать новую серию микроконтроллеров STM8L (рис. 1) компании STMicroelectronics.


Структура семейства МК STM8L

Рис. 1. Структура семейства МК STM8L

Микроконтроллеры серии STM8L обладают рекордно низкими токами утечки, а также рядом особенностей, позволяющих добиться в активном режиме потребления на уровне 150 мкА/МГц.

Особенности архитектуры

Несмотря на то, что изделия семейства STM8L являются микроконтроллерами с 8-битной Гарвардской архитектурой, их ядро имеет ряд особенностей, значительно повышающих конечную производительность:

  • 32-битный интерфейс памяти программ позволяет производить выборку большинства команд за один цикл;
  • 16-битные индексный регистр и регистр указателя стека обеспечивают повышенную плотность кода и скорость работы с табличными данными;
  • усовершенствованные механизмы работы с указателем стека, что обеспечивает улучшенную поддержку СИ-кода и операционных систем реального времени (RTOS);
  • 16 Мб линейное адресное пространство;
  • расширенный набор методов адресации позволяет добиться большей эффективности СИ-кода и обеспечивает высокую плотность исполняемого кода;
  • расширенный набор инструкций повышает скорость выполнения арифметических операций.

В ядре микроконтроллеров используется трехступенчатый конвейер, позволяющий выполнять большинство команд за один такт, что приводит к повышению пиковой производительности до 16 CISC MIPS при тактовой частоте 16 МГц.

Вся линейка STM8L производится по технологии 130 нм, позволяющей получать структуры с ультранизкими токами утечки. Встроенный регулятор напряжения позволяет микроконтроллерному ядру работать с максимальной производительностью при питании устройства в широком диапазоне входных напряжений от 1.65 до 3.6 В. Данная особенность позволяет значительно увеличить время работы микроконтроллера от батарейных элементов питания.

Режимы энергосбережения микроконтроллеров STM8L

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

Таблица 1. Режимы пониженного энергопотребления STM8L

Режимы пониженного
энергопотребления
Функциональные блоки Энергопотребеление, мкА
ЦПУ Периферия Основной
осцил. (HSI)
RTC LSI LSE Флэш-
память
RAM @ 3 В/25°C @ 3 В/85°C
Low power run* выборочно ВЫКЛ ВКЛ ВКЛ ВЫКЛ ВКЛ 5.4 6.8
Low power wait* ВЫКЛ выборочно ВЫКЛ ВКЛ ВКЛ ВЫКЛ ВКЛ 3.3 4.4
Active-halt (RTC тактир-ся HSI)* ВЫКЛ ВКЛ ВКЛ ВЫКЛ ВКЛ 1.0(1) 1.4
Active-halt (RTC тактир-ся LSI) ВЫКЛ ВКЛ ВЫКЛ ВКЛ 0.8(1) 1.2
Halt ВЫКЛ ВЫКЛ ВЫКЛ ВКЛ 0.35(1) 1.0
* только для STM8L15x/162
(1) — BOR и внутреннее опорное напряжение отключены
RTC – real time clock; HSI — High Speed Internal oscillator; LSI — Low Speed Internal oscillator; LSE — Low Speed External oscillator.

STM8L101

Микроконтроллеры данной линейки имеют три режима пониженного энергопотребления:

  • Wait- CPU остановлен, периферия работает;
  • Active-halt- CPU остановлен, AWU и WDT продолжают работать;
  • Halt- тактирование CPU и периферии прекращено.

STM8L15x/162

В этой линейке микроконтроллеров реализовано пять режимов энергосбережения:

  • Wait- CPU остановлен, периферия работает;
  • Low power run- программа выполняется из RAM с тактированием медленными осцилляторами (LSI, LSE), выбранная периферия активна;
  • Low power wait- CPU остановлен, выбранная периферия активна;
  • Active-halt- CPU остановлен, AWU, WDT и RTC продолжают работать, если включены;
  • Halt- тактирование CPU и периферии прекращено (все остановлено).

Особенности работы памяти

Flash-память всех линеек серии STM8L поддерживает режим низкого энергопотребления IDDQ, в котором память, по сути, является неактивной. Flash-память автоматически переходит в IDDQ-режим, когда микроконтроллер входит в Halt, Active-halt или Low power wait режимы.

Линейки STM8L15x/162 также имеют специальный флаг EEPM в регистре управления Flash-памятью FLASH_CR1. Если данный флаг установлен, то Flash-память автоматически входит в IDDQ-режим, когда программа исполняется из RAM-памяти или микроконтроллер находится в Wait-режиме.

Если Flash-память находится в IDDQ-режиме, то время восстановления и выхода из режимов пониженного энергопотребления увеличивается (вплоть до 2.8 мкс) и зависит от напряжения питания микроконтроллера и его температуры. Кроме того, из-за разницы в размерности шины данных и программ (Flash - 32 бита, RAM - 8 бит), программа из RAM выполняется медленнее, чем из Flash.

Далее рассмотрены особенности функционирования микроконтроллера в энергосберегающих режимах. На рисунке 2 проиллюстрировано потребеление МК линейки STM8L101x в различных режимах.


Энергопотребеление МК линейки STM8L101x

Рис. 2. Энергопотребеление МК линейки STM8L101x

Wait-режим

Предусмотрено 2 типа Wait-режима: WFI (wait-for-interrupt - ожидание прерывания) и WFE (wait-for-event - ожидание события). Вход в эти режимы осуществляется одноименными командами. Для успешного входа в режимы должно быть разрешено хотя бы одно прерывание или событие, соответственно.

Выход из режимов осуществляется:

  • для WFI - по прерываниям от интерфейсов, AWU/RTC, ADC, компаратора, таймеров, внешнего источника прерывания, по команде переключения тактового источника (см. «Управление тактированием»);
  • для WFE - по событиям от интерфейсов, ADC, компаратора, таймеров, внешнего источника прерывания.

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

Low power run-режим

Режим основан на выполнении программы из RAM-памяти с использованием низкочастотного источника тактовых импульсов. Flash-память при этом находится в режиме IDDQ. Работа АЦП не поддерживается данным режимом, т.к. АЦП требует для своей работы тактовой частоты не ниже 1 МГц. Обработка прерываний в данном режиме также недоступна - таблица векторов расположена во Flash, а она включена. Данный режим доступен только в линейках STM8L15x/162.

Low power wait

Переход в этот режим осуществляется из Low power run режима путем выполнения команды WFE. Обратный переход происходит только по внутреннему или внешнему событию. WFI-инструкция не может использоваться из-за невозможности разрешения и обработки прерываний.

Active halt-режим

В данном режиме тактирование ЦПУ и почти всей периферии прекращено. Активным остаются только LSI- и LSE-источники, которые используются для тактирования SWIM-, WDT-, RTC- или LCD-модулей. Вход в режим осуществляется командой HALT в случае, когда активен хоть один из перечисленных выше модулей периферии. Время выхода из режима в стандартный активный режим занимает около 4 мкс.

Halt-режим

В этом режиме системное тактирование прекращено. Это означает, что ЦПУ и все модули периферии неактивны, за исключением следующих случаев:

  • HSI активен, если он используется как тактовый источник для SWIM (однопроводной интерфейс);
  • системное тактирование не прекращается, если выполняется процедура записи в Flash или EEPROM;
  • LSI активен, если он используется для тактирования SWIM или WDT.

Вход в режим осуществляется командой HALT. Перед выполнением данной инструкции необходимо очистить флаги всех необработанных прерываний, иначе выход из Halt-режима произойдет сразу после входа в него.

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

На рисунке 3 проиллюстрировано потребление МК линеек STM8L15x/162 в различных режимах.


Энергопотребление МК линеек STM8L15x/162

Рис. 3. Энергопотребление МК линеек STM8L15x/162

Схема питания STM8L

Одной из особенностей микроконтроллеров семейства STM8L, позволяющей добиться дополнительного снижения энергопотребления, является наличие двух внутренних регуляторов напряжения - MVR и LPVR.

MVR-регулятор - это основной регулятор питания, обеспечивающий напряжение питания ядра микроконтроллера на уровне 1.8 В и ток до 25 мА. Регулятор используется только при стандартных режимах работы микроконтроллера, т.к. сам потребляет значительный ток.

LPVR-регулятор обладает очень низким собственным током потребления и обеспечивает питание ядра напряжением 1.55 В и током до 200 мкА. Этот регулятор используется для работы МК в различных режимах пониженного энергопотребления.

При сбросе МК включается MVR, который обеспечивает питание 1.8 В цифровой части микроконтроллера. В зависимости от текущего режима энергопотребления он может быть выключен, и тогда его функции примет LPVR. Напряжение питания ядра отслеживается системами POR/PDR (power-on-reset/power_down-reset), которые обеспечивают корректность запуска и сброса МК. Ниже приводится описание способов включения регуляторов для различных линеек микроконтроллеров серии STM8L:

  • в Run- и Wait-режимах напряжение питания ядра обеспечивается обоими регуляторами;
  • в LPR-(Low Power Run) и LPW-(Low Power Wait) режимах питание обеспечивает LPVR, MVR- выключен;
  • в Active halt-режиме в ходе halt-фазы пользователь сам может назначать активный регулятор;
  • в Halt-режиме автоматически используется LPVR-регулятор, MVR- выключен.

Микроконтроллеры STM8L15x/162 содержат детектор напряжения питания (BOR - Brownout detector), который гарантирует правильную работу аналоговой периферии. Этот детектор включен по умолчанию, но может быть отключен пользователем для того, чтобы дополнительно снизить энергопотребление микроконтроллера примерно на 2.8 мкА.


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

  • Энергопотребление микроконтроллера линейно зависит от тактовой частоты работы ядра и периферии: Idyn= CV2f, где

С - паразитная емкость транзисторов;
V - напряжение питания микросхемы;
f - тактовая частота.

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

STM8L101

Данная линейка микроконтроллеров имеет два возможных источника тактирования:

  • внутренний высокоскоростной осциллятор на 16 МГц (HSI - high speed internal), используемый для тактирования ядра микроконтроллера;
  • внутренний низкоскоростной осциллятор на 38 кГц (LSI- low speed internal), используемый для тактирования сторожевого таймера (IWDG) и устройства автоматического выхода из sleep-режимов (AWU - auto-wakeup unit).

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

  • выбрать делитель (/1, /2, /4 или /8) для внутреннего источника (HIS), используя HSIDIV[1:0] биты в регистре CLK_CKDIVR.

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

STM8L15x/162

Для тактирования системы в данной линейке используются несколько типов источников тактовых импульсов:

  • внешний высокоскоростной осциллятор 1...16 Мгц (HSE crystal);
  • внешний высокоскоростной генератор до 16 Мгц (HSE bypass);
  • внутренний высокоскоростной осциллятор 16 МГц (HSI);
  • внешний низкоскоростной осциллятор 32.768 кГц (LSE);
  • внутренний низкоскоростной осциллятор 38 кГц (LSI).

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

Таблица 2. Источники тактирования STM8L15x/162

  HSE осцил. HSE генер. HSI LSE генер. LSE резон. LSI
Цена Низ. – средн. Низ. – высок. Низ. – средн. Низ. – средн.
Точность ~ppm/% генератор ~% генератор ~ppm ~%
Потребление TBD Выс./средн. 100...200 мкA   TBD 100...400 нA
Установление 2 мс генератор 2 мкс генератор TBD TBD
Примечание кристалл или
керамический резонатор
внешний
генератор
внутренний внешний
генератор
часовой кварц внутренний

После сброса микроконтроллера в качестве системного сигнала тактирования автоматически выбирается HSI/8. После этого пользователь может назначить другой сигнал тактирования с помощью несложной процедуры:

  • выбрать делитель (/1, /2, ... /128) для внутреннего источника (HIS), используя CKM[2:0] биты в регистре CLK_CKDIVR;
  • изменить источник тактирования (HSE, LSE или LSI).

Перед тем, как отключить любой из источников тактовых импульсов (HSI, HSE и т.д.), пользователь должен убедиться в том, что данный источник больше не используется для тактирования ядра. Это означает, что источник может быть выключен только после того, как был установлен флаг SWIF. Если пользователь попробует отключить источник до того, как флаг будет установлен аппаратно, то отключения не произойдет, т.к. система до сих пор использует обозначенный источник для своего тактирования.

В связи с тем, что переключение тактового источника может производиться в Wait-режиме (например, если HSE выбран новым источником), исполнение процедуры переключения источников может вывести MCU из Wait-режима. Это позволяет синхронизировать AWU с новым источником.

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

Влияние тактирования на энергопотребление

В дополнение к переключению источников тактирования, микроконтроллеры предоставляют ряд возможностей для оптимизации энергопотребления:

  • любое тактирование периферии может быть включено или отключено настройками, производимыми в регистрах CLK_PCKENRx. Т.к. микроконтроллеры серии STM8L ориентированы на минимальное энергопотребление, то все тактирование периферии выключено по умолчанию. Для работы периферийных модулей тактирование всегда необходимо предварительно включать;
  • для линейки STM8L101x может быть выбран делитель в диапазоне от 1 до 8 (биты HSIDIV[1:0] в регистре CLK_CKDIVR);
  • для линейки STM8L15x/162 может быть выбран делитель в диапазоне от 1 до 128 (биты CKM[2:0] в регистре CLK_CKDIVR).

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

Методы снижения энергопотребления

Все микроконтроллеры симейства STM8L выполнены по CMOS-технологии. В устройствах такого типа полное энергопотребление является суммой статического и динамического потреблений:

  • статическое потребление- определяется энергией, затрачиваемой на поляризацию транзисторов, а также токами утечки транзисторов. Именно оно определяет потребление микросхемы в режиме, когда тактовый генератор выключен;
  • динамическое потребление- определяется энергией, затрачиваемой на перезарядку паразитной емкости подзатворного слоя при переключении транзисторов. Динамическое потребление определяется величиной емкости, напряжением питания транзисторов, а также частотой их переключения:

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

Как было сказано выше, микроконтроллеры STM8L выполнены по особой 130 нм технологии, обеспечивающей ультранизкие значения токов утечки. Таким образом, статическое потребление микроконтроллеров очень мало, а динамическое потребление может быть снижено следующими методами:

  1. снижение напряжения питания микроконтроллера - влияет на динамические потери. Для микроконтроллеров серии STM8L данный метод имеет малое значение, т.к. все линейки STM8L снабжены встроенными регуляторами напряжения (см. «Схема питания»), и выигрыш получается незначительным;
  2. снижение частоты тактирования ЦПУ для задач, не требующих высокой производительности;
  3. отключение питания и тактирования неиспользуемых модулей периферии - один из самых эффективных способов снижения энергопотребления;
  4. использование режимов пониженного энергопотребления;
  5. при работе с внешними сигналами, требующими подвязки к питанию для задания неактивного уровня, следует использовать встроенные резисторы подтяжки портов и отключать их в начале процедуры обработки прерывания

Средства отладки и программирования

Для быстрого освоения микроконтроллеров серии STM8L компания STMicroelectronics предлагает ряд отладочных наборов. Все отладочные наборы можно разделить на два типа:

  • оценочные платы- предназначены для знакомства с линейками STM8L101 и STM8L15x;
  • демонстрационная плата - для линейки STM8L15x.

Оценочные платы представлены тремя изделиями - STM8L-Discovery, STM8L101-EVAL и STM8L1526-EVAL. STM8L101-EVAL содержит в своем составе:

  • микроконтроллер соответствующей линейки;
  • микросхему EEPROM;
  • ЖКИ 122×32 с последовательным интерфейсом;
  • светодиоды;
  • механический джойстик;
  • разъем для micro-SD карты.

Блок-схема оценочной платы STM8L101-EVAL приведена на рисунке 4.

Блок-схема оценочной платы STM8L101-EVAL

Рис. 4. Блок-схема оценочной платы STM8L101-EVAL

Для начального знакомства с МК серии STM8L лучше всего подойдет оценочная плата STM8L-Discovery (рис. 5). Одним из достоинств этой платы является ее низкая цена (порядка 20$).

Внешний вид оценочной платы STM8L-DISCOVERY

Рис. 5. Внешний вид оценочной платы STM8L-DISCOVERY

Заключение

В статье была рассмотрена новая серия микроконтроллеров STM8L фирмы ST, обладающих очень низким энергопотреблением - 150 мкА/МГц (STM8L101x) и 192 мкА/МГц (STM8L15x/162) в активном режиме. Приведено описание различных стандартных режимов пониженного энергопотребления, а также даны рекомендации по методам обеспечения минимального энергопотребления.

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

40 предложений от 24 поставщиков
Плата разработки проектов и приложений STM8L-DISCOVERY. Построена на микроконтроллере STM8L152C6T6 16МГц с 32Кб Флеш, 2Кб оперативной и 1Кб EEPROM памяти. Имеется...
STM8L101K3T6
STMicroelectronics
от 101 ₽
AliExpress
Весь мир
STM8S003F3P6 STM8S103F3P6 STM32F030F4P6 STM32F042F4P6 STM8L051F3P6 SMD TSSOP-20 Новое хорошее качество Chipse
78 ₽
ЧипСити
Россия
STM8L-DISCOVERY
STMicroelectronics
929 ₽
МосЧип
Россия
STM8L1526PRIM-D
STMicroelectronics
по запросу
Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя