Как реализовать минимальное энергопотребление беспроводного микроконтроллера STM32WB55

30 декабря 2019

автомобильная электроникаучёт ресурсовсветотехникапотребительская электроникаинтернет вещейST Microelectronicsстатьяинтегральные микросхемыбеспроводные технологиисредства разработки и материалы

Александр Русу (г. Одесса)

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

Беспроводные датчики для интеллектуальных систем должны одновременно отвечать двум взаимоисключающим требованиям: обладать малым энергопотреблением из-за ограниченной емкости батареи и высокой функциональностью, связанной, в том числе, с необходимостью обеспечения требуемого уровня безопасности при использовании радиоинтерфейсов. Традиционные методы снижения величины потребляемого тока, применяемые в обычных микроконтроллерах, уже не могут обеспечить необходимый уровень энергоэффективности, поэтому разработчики электронных компонентов постоянно находятся в поисках. Одним из решений являются микроконтроллеры серии STM32WB55, разработанные одним из ведущих мировых производителей электронных компонентов – компанией STMicroelectronics.

STM32WB55 – это полнофункциональные системы-на-кристалле, состоящие из прикладного процессора, радиомодуля Bluetooth v5.0 с поддержкой IEEE 802.15.4-2011, работающего под управлением отдельного ядра на основе ARM® Cortex®‐M0, а также расширенного набора периферийных устройств. Прикладной процессор STM32WB55 реализован на основе ARM® Cortex®‐M4 и поддерживает работу с математическим сопроцессором (FPU) и цифровым сигнальным процессором (DSP). Особенностью этих микроконтроллеров является наличие специализированного модуля ART Accelerator (Adaptive Real-Time Memory Accelerator), ускоряющего выполнение команд за счет предварительной выборки необходимой информации из Flash-памяти и позволяющего повысить производительность процессора до уровня 1,25 DMIPS/МГц во всем диапазоне тактовых частот.

Однако микросхемы серии STM32WB55 имеют не только повышенный уровень интеграции, позволяющий без серьезного увеличения стоимости устройства перейти от существующих двухкристальных решений (STM32L4 + Bluetooth Low Energy/802.15.4) к однокристальным. Ключевой их особенностью является наименьший в своем классе уровень энергопотребления, достигаемый за счет применения целого ряда инновационных решений, о которых пойдет речь в данной статье. 

Энергоэффективные вычисления

Питание основных узлов STM32WB55 осуществляется от интегрированной подсистемы, состоящей из понижающего импульсного преобразователя (SMPS) и двух LDO-стабилизаторов (рисунок 1). Она позволяет динамически управлять выходным напряжением в зависимости от текущих потребностей высокоуровневых приложений, а следовательно – и оптимизировать относительный уровень энергопотребления (отношение потребляемого тока/мощности к тактовой частоте). Кроме этого, такое решение имеет еще одно преимущество: в системах с высоким питающим напряжением, необходимым, например, для работы АЦП или других аналоговых узлов, ядро микроконтроллера, имеющее собственный импульсный преобразователь, не будет напрасно расходовать заряд батареи.

Рис. 1. Подсистема питания ядра микроконтроллеров STM32WB

Рис. 1. Подсистема питания ядра микроконтроллеров STM32WB55

При нормальной работе (Run Mode) ядро подключается к основному стабилизатору (Main Regulator), поддерживающему выходное напряжение в одном из двух диапазонов: Range 1 или Range 2. Когда требуется повышенная производительность, напряжение питания увеличивается для величины 1,2 В (Range 1). В этом случае быстродействие всех модулей максимально, а тактовая частота может достигать 64 МГц.

Если столь высокая вычислительная мощность не требуется, а количество выполняемых операций все еще не позволяет перейти в энергосберегающие режимы, напряжение питания может быть снижено до уровня 1,0 В (Range 2). В этом режиме ядро сохраняет полную функциональность, в том числе и возможность стирания и записи во Flash-память, однако продолжительность рабочих процессов на аппаратном уровне уже будет несколько больше, поэтому тактовая частота в режиме Range 2 не может превышать 16 МГц. Тем не менее, в этом режиме относительное энергопотребление ядра будет приблизительно на 15% меньше, чем в режиме Range 1 (рисунок 2), ведь величина тока, потребляемого КМОП-логикой, пропорциональна квадрату напряжения питания.

Рис. 2. Зависимости потребляемого тока STM32WB55 от тактовой частоты

Рис. 2. Зависимости потребляемого тока STM32WB55 от тактовой частоты

При совсем малом количестве вычислений ядро можно подключить к малопотребляющему LDO-стабилизатору (режим LP Run) и еще более эффективно (на 20% по сравнению с режимом Range 2) тратить энергию батареи, хотя при этом максимальная тактовая частота не может превышать 2 МГц. Ну и, конечно, в микроконтроллерах STM32WB55 реализованы несколько режимов пониженного энергопотребления с полным или частичным отключением элементов ядра и периферийных устройств.

Обратите внимание, что при снижении напряжения питания часть функций микроконтроллера может оказаться недоступной. Так, например, минимальная тактовая частота, необходимая для работы радиоинтерфейса, должна быть не менее 32 МГц, поэтому, очевидно, что при его использовании микроконтроллер не может находиться, например, в режиме LP Run.

Однако величина напряжения питания не является единственным фактором, влияющим на энергопотребление. Серьезное влияние на его уровень оказывает место размещения прошивки. Ядро Cortex®-M4 может исполнять инструкции, находящиеся во внутренней Flash-памяти, ОЗУ (SRAM1 или SRAM2) или во внешнем хранилище. Логично предположить, что при предварительной загрузке прошивки в оперативную память система будет иметь не только максимальное быстродействие, но и наименьшее энергопотребление, ведь в этом режиме Flash-память и обслуживающие ее узлы (ART Accelerator) можно отключить. Однако из-за того что Flash-память и ART Accelerator являются общими для ядер Cortex®-M4 и Cortex®-M0, отключить их во время использования радиоинтерфейсов нельзя. Тем не менее, размещение исполняемого кода в оперативной памяти позволяет ощутимо уменьшить величину потребляемого тока, особенно в энергосберегающих режимах LP Run (рисунок 3).

Рис. 3. Зависимости потребляемого тока STM32WB55 от тактовой частоты при различных вариантах размещения прошивки

Рис. 3. Зависимости потребляемого тока STM32WB55 от тактовой частоты при различных вариантах размещения прошивки

Управление энергопотреблением

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

Рис. 4. Энергосберегающие профили питания STM32WB55 с вариантами переключения между ними

Рис. 4. Энергосберегающие профили питания STM32WB55 с вариантами переключения между ними

В случае, когда необходимости обмена данными по радиоинтерфейсу нет, а объем вычислений позволяет процессору работать на частотах, не превышающих 2 МГц, наименьшее энергопотребление обеспечивается в режимах LP Run и LP Sleep (аббревиатура LP является сокращением от Low Power). В этом случае основное питание ядра осуществляется от малопотребляющего LDO-стабилизатора. В режимах LP Run и LP Sleep ядро Cortex®-M4 может работать непрерывно или отключаться, если это необходимо. Прошивка при этом может располагаться как во Flash-памяти, так и в ОЗУ. В последнем случае Flash-память можно перевести в режим ожидания или отключить совсем, ведь радиомодуль в этом режиме из-за малого значения тактовой частоты работать не может. В качестве источника тактовых импульсов в режимах LP можно использовать внутренний низкочастотный RC-генератор (MSI), способный работать в диапазоне частот 100 кГц…48 МГц, поскольку его использование позволит системе работать с наименьшим расходом энергии (на частоте 100 кГц его ток потребления не превышает 48 мкА).

В случае, когда система ориентирована на сбор данных с внешних датчиков, можно использовать специализированный режим Batch Acquisition Sub-Mode (BAM), в котором основной прием информации осуществляется периферийными модулями, сконфигурированными на работу в режимах прямого доступа к оперативной памяти (DMA). В этом случае система большую часть времени находится в одном из спящих режимов (Sleep или LP Sleep), выходя из них лишь для обработки полученной информации. Если в этих режимах нет необходимости использовать радиоинтерфейс, а количество выполняемых операций позволяет ядру работать с частотой, не превышающей 2 МГц, то предварительно скопировав прошивку в ОЗУ, Flash-память вместе с модулем ускорителя, а также основной стабилизатор можно отключить. Обратите внимание, что тактовая частота периферийных устройств в этом режиме может отличаться от тактовой частоты ядра. Так, например, модули последовательных интерфейсов I2C и USART/LPUART могут тактироваться с частотой 16 МГц от внутреннего RC-генератора HSI, обеспечивая скорость передачи данных до 1 Мбит/с.

Если система не нуждается в контроле и/или управлении, тогда микроконтроллер можно перевести в один из трех режимов останова: Stop 0/1/2 Mode. В этих режимах все тактовые генераторы и ядро отключаются, а периферийные устройства и ОЗУ питаются от основного или малопотребляющего стабилизаторов. Содержимое ОЗУ и портов ввода/вывода при этом сохраняется, а переключение в нормальный режим работы при соответствующей настройке тактового генератора MSI может произойти всего за 1 мкс. Особенностью режимов останова микроконтроллеров STM32WB55 является возможность автоматического включения RC-генератора HSI приемниками последовательных интерфейсов (I2C или USART) при обнаружении активности на информационной шине. Это позволяет автоматически принять некоторое количество данных (например, байт по USART или адрес по I2C) без запуска ядра и, если эта информация совпала с условиями пробуждения, перевести систему в активный режим, а если нет – то автоматически выключить HSI по окончании приема.

Если система должна иметь возможность активизации по радиоинтерфейсу, то для уменьшения энергопотребления необходимо использовать режим ожидания (Standby Mode), являющийся самым экономичным из режимов, в которых активен приемник радиосигналов. Как и в режиме останова, содержимое оперативной памяти и портов ввода/вывода, в том числе и конфигурация подтягивающих резисторов, остаются без изменений, однако список событий, инициирующих пробуждение, в этом случае будет больше. Кроме радиомодуля, вывести микроконтроллер из режима ожидания могут порты ввода/вывода (изменение уровня сигнала на линиях), часы реального времени (RTC), тактируемые от низкочастотных генераторов (LSE или LSI), сторожевой таймер или монитор питания, который в этом режиме всегда включен.

Однако наименьшее энергопотребление микроконтроллеров STM32WB55 обеспечивается в режиме выключения (Shutdown Mode), при котором из всех узлов могут работать только часы реального времени (RTC). Именно этот режим и позволяет максимально продлить время работы от батареи в случаях, когда устройство не используется. К сожалению, выход из этого режима эквивалентен перезагрузке, поэтому при его активации принимать и передавать какие-либо данные не получится, а радиоинтерфейс придется заново проинициализировать. Вывести микроконтроллер из этого состояния могут только аппаратная перезагрузка, RTC и изменение состояния на определенных портах ввода-вывода.

Рис. 5. Система питания микроконтроллеров STM32WB55

Рис. 5. Система питания микроконтроллеров STM32WB55

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

Особенности периферийных устройств

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

Так, например, радиомодуль, являющийся одним из самых энергоемких узлов микросхемы, реализован таким образом, чтобы большую часть времени он находился в энергосберегающем режиме с тактированием от малопотребляющих генераторов LSI или LSE. Это позволяет активизировать его лишь в заранее определенные моменты времени с автоматическим возвратом в исходное (энергосберегающее) состояние по завершении сеанса обмена.

Другим модулем, способным очень быстро разрядить батарею, является 12-разрядный АЦП. Обладая высокой точностью и впечатляющим быстродействием, достигающим 4,26 миллионов преобразований в секунду, этот узел потребляет ток, равный приблизительно 200 мкА/Мбит/с. Очевидно, что уменьшить энергопотребление АЦП можно лишь ограничив его использование. Однако меньшее количество преобразований можно делать как на высокой, так и на низкой скорости. В первом случае общий ток, потребляемый системой, примет ярко выраженный импульсный характер и при высоком внутреннем сопротивлении батареи это может привести к непредвиденному срабатыванию монитора питания и последующей перезагрузке системы. При увеличении времени преобразования ток, потребляемый АЦП, может уменьшиться на порядок, однако при этом ядро микроконтроллера в ожидании завершения оцифровки должно больше времени находиться или в активном (Run Mode), или в спящем (Sleep Mode) режимах, что также может отрицательно сказаться на общем энергопотреблении. В этом случае следует по возможности так организовать вычисления, чтобы во время преобразования ядро было максимально загружено полезной работой.

Как видно из примера с АЦП, для уменьшения энергопотребления желательно так спроектировать аппаратную часть периферийных модулей, чтобы они имели возможность функционирования в максимально возможном количестве энергосберегающих режимов, в том числе — в режимах останова (Stop Mode).

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

Еще одним узлом, который, в принципе, никогда не должен отключаться, являются часы реального времени (RTC), поэтому для минимизации их энергопотребления были использованы специализированные методы асинхронного проектирования. Следует отметить, что помимо своей основной функции – измерения времени и будильника системы, – часы реального времени микроконтроллеров STM32WB55 можно использовать для защиты от несанкционированного доступа, поскольку они имеют специализированные узлы, обнаруживающие нежелательное проникновение, а также 80 защищенных регистров для хранения конфиденциальной информации. Как известно, точность часов реального времени определяется стабильностью источника тактового сигнала, поэтому данный узел может работать как от генератора LSE с внешним кварцевым резонатором 32,768 кГц, так и от внутреннего RC-генератора LSI. В последнем случае точность хода будет ниже, однако энергопотребление этого узла будет наименьшим.

В любой системе особое внимание уделяется устройствам вывода информации, которые в наихудшем случае (с точки зрения энергопотребления) также должны работать постоянно. Среди устройств с батарейным питанием наибольшую популярность имеют жидкокристаллические индикаторы, поэтому в состав STM32WB55 включен специализированный LCD-драйвер, способный управлять дисплеями с разрешением 8 линий и 40 сегментов (или 4 линии и 44 сегмента). Ключевой особенностью данного узла является возможность индивидуального выбора портов ввода/вывода, позволяющая максимально эффективно использовать альтернативные функции микросхемы, а также наличие внутреннего повышающего преобразователя напряжения для увеличения контрастности дисплея. Ток собственного потребления этого узла при этом не превышает 5 мкА (без учета тока индикатора).

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

Источники тактовых сигналов

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

Основным источником стабильного тактового сигнала для ядер системы является генератор HSE, рассчитанный на работу с внешним кварцевым резонатором 32 МГц. Стабилизированная контуром фазовой автоподстройки частота 32 МГц является обязательной для работы радиомодуля, а ее вторая гармоника (64 МГц) может быть использована в качестве тактовой частоты для прикладного ядра. Кроме этого, данный генератор можно использовать в качестве источника тактовой частоты для приемопередатчика USB и аудиоподсистемы.

Другим генератором, способным работать с внешним кварцем, является LSE, частота которого обычно равна 32,768 кГц. Основным назначением этого генератора является формирование тактового сигнала для часов реального времени (RTC). Кроме этого, выходной сигнал LSE может быть использован для работы радиомодуля (в энергосберегающих режимах) а также LCD-драйвера.

Кварцевые резонаторы позволяют значительно повысить точность измерения времени и формирования выходных сигналов. Однако для поддержки колебаний в кварце необходимо относительно большое количество энергии, поэтому в случаях, когда высокая стабильность тактового сигнала не требуется, вместо генераторов HSE и LSE можно использовать их RC-аналоги. Это позволит не только уменьшить общее энергопотребление, но и сократить размеры печатной платы и стоимость устройства, ведь внутренние RC-генераторы не требуют внешних компонентов.

Так, например, источником тактового сигнала для часов реального времени может стать генератор LSI1 32 кГц с ультрамалым энергопотреблением. Конечно, при его использовании точность часов будет ниже, однако энергопотребление системы в этом случае будет рекордно малым, дополнительно, к данному генератору можно также подключить драйвер ЖК-дисплея.

А вот для тактирования радиомодуля (в энергосберегающих режимах) лучше использовать генератор LSI2. Несмотря на то, что генераторы LSI1 и LSI2 имеют одинаковую выходную частоту, равную 32 кГц, их характеристики различны: LSI1 имеет более высокую точность и меньшее энергопотребление, а LSI2 – меньший уровень джиттера, благодаря чему он более предпочтителен для радиосистем, критичных к этому параметру.

Еще одна пара RC-генераторов с фиксированными частотами – HSI и HSI48, – способна обеспечивать периферийные устройства тактовыми сигналами со стабилизированными частотами, соответственно, 16 МГц и 48 МГц. Также они могут использоваться самыми разными узлами микроконтроллера, например, прикладным ядром или приемопередатчиком USB.

Последним из RC-генераторов является MSI, выходная частота которого может изменяться в диапазоне 100 кГц…48 МГц. Возможность перестройки делает его особенно привлекательным для использования в качестве источника тактового сигнала для прикладного ядра, ведь именно это свойство позволит реализовать описанные выше интеллектуальные вычисления с динамически изменяемой частотой. А вот для работы с периферийными модулями генератор MSI, скорее всего, не подойдет, поскольку изменение тактовой частоты в большинстве случаев потребует их перенастройки.

Анализ энергопотребления тактовых генераторов микроконтроллеров STM32WB55 (таблица 1) показывает, что RC-генераторы имеют приблизительно в два раза меньшее значение потребляемого тока по сравнению с узлами, стабилизированными кварцем. Это позволяет гибко конфигурировать систему под конкретную задачу, вплоть до динамического переключения между генераторами различных типов, и тем самым достигать максимально эффективного расхода ограниченного заряда батареи.

Таблица 1. Основные характеристики тактовых генераторов

Генератор Частота, МГц Ток потребления, мкА Варианты использования
HSE 32 260 Прикладное ядро, радиомодуль, LCD, RTC
LSE 0,32768 (типовая) 0,25 RTC, LCD, USART, LPUART, LPTIM, другие модули
HSI 16 0,15 Прикладное ядро, периферийные устройства
HSI48 48 0,38 USB, RNG
LSI1 0,032 0,11 RTC, LCD, IWDG
LSI2 0,032 0,2 Радиомодуль
MSI 0,1; 0,2; 0,4; 0,8; 1; 2; 4; 8; 16; 24; 32; 48 0,6; 0,8; 1,2; 1,9; 4,7; 6,5; 11; 18,5; 62; 85; 110; 155 Прикладное ядро

Заключение

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

•••

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

О компании ST Microelectronics

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

Товары
Наименование
STM32WB55CGU7 (ST)
STM32WB55CGU6TR (ST)
STM32WB55CGU6 (ST)
STM32WB55CСU6 (ST)
STM32WB55CEU6TR (ST)
STM32WB55CEU6 (ST)
STM32WB55CCU7 (ST)
STM32WB55CCU6TR (ST)
STM32WB55CCU6 (ST)
P-NUCLEO-WB55 (ST)