STM32L5 – новый виток развития малопотребляющих микроконтроллеров

6 ноября

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

Святослав Зубарев (г. Смоленск)

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

Основные разделы статьи:

Появление нового продукта от именитого производителя компонентов всегда вызывает интерес не только у матерых разработчиков, но и у рядовых инженеров, особенно когда речь идет о микроконтроллерах. Новое семейство микроконтроллеров STM32L5 – это то решение, которое если не перевернет рынок IoT-устройств, то, по меньшей мере, привнесет в него много новых идей и продуктов на их основе.

При разработке STM32L5 инженеры компании STMicroelectronics пытались достичь наиболее оптимального баланса между производительностью, энергопотреблением и безопасностью. Теперь можно смело сказать, что во многом им это удалось. Благодаря новому ядру ARM Cortex-M33, которое на 20% производительнее предшественника Cortex-M4, а также новому ускорителю ST ART Accelerator, в который, помимо прочего, интегрирована функция поддержки внешней памяти, микроконтроллеры STM32L5 достигают уровня 443 CoreMark, имея до 512 кбайт Flash-памяти (Dual Bank) и 256 кбайт SRAM. Немаловажным также является возросший уровень безопасности, обеспечиваемый, главным образом, интегрированной в ядро функцией TrustZone.

На сегодняшний день микроконтроллеры семейства STM32L5 доступны в 7 видах корпусов (48…144 выводов) с поддержкой рабочей температуры вплоть до 125°C. Давайте рассмотрим новое семейство STM32L5 более подробно. Начнем со сравнения его возможностей с решениями предыдущих поколений.

Место STM32L5 в семействе микроконтроллеров STM32

Компания STMicroelectronics начала выпуск 32-битных микроконтроллеров еще в 2007 году, и на сегодняшний день семейство STM32 состоит из 16 серий: F0, F1, F2, F3, F4, F7, L0, L1, L4, L4+, L5, G0, G4, H7, WB и WL, каждая из которых базируется на одном из ядер ARM: Cortex-M33, Cortex-M7F, Cortex-M4F, Cortex-M3, Cortex-M0+, Cortex-M0 (рисунок 1).

Рис. 1. Номенклатура микроконтроллеров STM32

Рис. 1. Номенклатура микроконтроллеров STM32

Все семейства можно разделить на 4 сегмента:

  • высокопроизводительные: STM32F2 (ядро Cortex-M3), STM32F4 (ядро Cortex-M4F), STM32F7 (ядро Cortex-M7F), STM32H7 (ядро Cortex-M7F, Cortex-M4F);
  • семейства общего назначения: STM32G0 (ядро Cortex-M0+), STM32F0 (ядро Cortex-M0), STM32F1 (ядро Cortex-M3), STM32F3 (ядро Cortex-M4F), STM32G4 (ядро Cortex-M4F);
  • семейства с малым энергопотреблением: STM32L0 (ядро Cortex-M0+), STM32L1 (ядро Cortex-M3), STM32L4 (ядро Cortex-M4F), STM32L4+ (ядро Cortex-M4F) и рассматриваемое в статье STM32L5 (ядро Cortex-M33);
  • семейства для беспроводных решений: STM32WB (ядро Cortex-M4F, Cortex-M0+) и STM32WL (ядро Cortex-M4).

Новые микроконтроллеры превосходят своих предшественников (семейства L0, L1, L4, L4+) не только по параметрам производительности, что во многом обеспечивается за счет использования нового ядра Cortex-M33, но и по возможностям работы с периферией и степенью обеспечения безопасности (таблица 1).

Таблица 1. Сравнение микроконтроллеров семейств STM32Lx

Наименование Ядро Максимальная частота, МГц CoreMark Объем
Flash-памяти, кбайт
Объем RAM, кбайт Энергопотребление Подключение периферии
STM32L0 Cortex-M0+ 32 75 До 192 До 20 1,65…3,6 В,
76 кмА/МГц
USB, LCD, Analog
STM32L1 Cortex-M3 32 93 32…512 4…80 1,65…3,6 В,
200 кмА/МГц
USB, LCD, AES, Rich Analog
STM32L4 Cortex-M4F 80 273 64…1024 40…320 1,71…3,6 В,
80 кмА/МГц
5-MSPS ADC, PGA, Compar., DAC, Op Amp, USB OTG, LCD, AES
STM32L4+ Cortex-M4F 120 409 512…2048 320…640 1,71…3,6 В,
110 кмА/МГц
5-MSPS ADC, PGA, Compar., DAC, Op Amp, USB OTG, LCD, AES
STM32L5 Cortex-M33 110 442 256…512 256 1,71…3,6 В, 62 кмА/МГц (при использовании встроенного SMPS) 5-MSPS ADC, PGA, Compar., DAC, Op Amp, USB Type C, AES

Номенклатура STM32L5

На данный момент в семейство STM32L5 входят 17 моделей, которые различаются между собой типом корпуса, количеством выводов, размерами Flash, а также наличием или отсутствием встроенной защиты HW crypto (рисунок 2).

Рис. 2. Доступные пакеты семейства STM32L5

Рис. 2. Доступные модели семейства STM32L5

Ключевые различия существующих моделей приведены в таблице 2. Более подробное описание каждой модели также доступно на сайте компании.

Таблица 2. Ключевые различия существующих моделей STM32L5

Наименование Корпус Размер Flash, кбайт Количество входов/выходов Шифрование
STM32L552CC LQFP
48 7x7x1.4,
UFQFPN 48
7x7x0.55
256 38 HMAC, MD5, SHA
STM32L552QC UFBGA
7x7x0.6
132L P 0.5 R 12×12
256 106 HMAC, MD5, SHA
STM32L552RC LQFP 64
10x10x1.4
256 52 HMAC, MD5, SHA
STM32L552VC LQFP 100
14x14x1.4
256 79 HMAC, MD5, SHA
STM32L552ZC LQFP 144
20x20x1.4
256 111 HMAC, MD5, SHA
STM32L552CE LQFP
48 7x7x1.4,
UFQFPN 48
7x7x0.55
512 36, 38 HMAC, MD5, SHA
STM32L552ME WLCSP 81L P0.4 DIE 472 512 58, 61 HMAC, MD5, SHA
STM32L552QE UFBGA
7x7x0.6
132L P 0.5 R
12×12
512 106, 110 HMAC, MD5, SHA
STM32L552RE LQFP 64
10x10x1.4
512 47, 50, 52 HMAC, MD5, SHA
STM32L552VE LQFP 100
14x14x1.4
512 79, 83 HMAC, MD5, SHA
STM32L552ZE LQFP 144
20x20x1.4
512 111, 115 HMAC, MD5, SHA
STM32L562ZE LQFP 144
20x20x1.4
512 111, 115 AES, HMAC, MD5, OTFDEC, PKA, SHA
STM32L562CE LQFP
48 7x7x1.4,
UFQFPN 48
7x7x0.55
512 36, 38 AES, HMAC, MD5, OTFDEC, PKA, SHA
STM32L562ME WLCSP 81L P0.4 DIE 472 512 58, 61 AES, HMAC, MD5, OTFDEC, PKA, SHA
STM32L562QE UFBGA
7x7x0.6
132L P 0.5 R 12×12
512 106, 109 AES, HMAC, MD5, OTFDEC, PKA, SHA
STM32L562RE LQFP 64
10x10x1.4
512 47, 50, 52 AES, HMAC, MD5, OTFDEC, PKA, SHA
STM32L562VE LQFP 100
14x14x1.4
512 79, 83 AES, HMAC, MD5, OTFDEC, PKA, SHA

Cortex-M33 vs Cortex-M4

Микроконтроллеры STM32L5 построены на базе процессорного ядра Cortex-M33. Данное ядро на 20% производительнее ядра Cortex-M4, на котором были построены микроконтроллеры предыдущего поколения STM32L4. Оно ориентировано на приложения, в которых требуется повышенный уровень безопасности и защиты данных, в частности – приложения интернета вещей (IoT). Если сравнить функциональные схемы двух ядер, нетрудно также заметить и другие особенности (рисунок 3): наличие интерфейса сопроцессора, подсистемы трассировки Micro Trace Buffer (MTB), а также функции TrustZone.

Рис. 3. Блок-схемы ядер Cortex-M33 и Cortex-M4

Рис. 3. Блок-схемы ядер Cortex-M33 и Cortex-M4

В таблице 3 приведен более полный список ключевых параметров Cortex-M33 и Cortex-M4.

Таблица 3. Сравнение параметров ядер Cortex-M33 и Cortex-M4

Параметр Cortex-M33 Cortex-M4
Архитектура набора команд Armv8-M Mainline Armv7-M
TrustZone +
Поддержка цифровой обработки сигналов (DSP) + +
Аппаратное деление + +
Пользовательские инструкции ARM +
Сопроцессорный интерфейс +
DMIPS, МГц 1,5 1,25
CoreMark, МГц 4,02 3,42
Максимум внешних прерываний 480 240
Максимум областей MPU 16 8
Протокол шины AHB AHB Lite
Кэш инструкций
Кэш данных
Инструкции TCM
Данные TCM
Dual Core Lock-Step (DCLS) +
Сертификация Common Criteria ISO 15408 standard +

Рассмотрим ключевые существующие отличия более подробно.

TrustZone

Пожалуй, одной из главных особенностей Cortex-M33 является повышенный уровень безопасности и защиты данных. Такой уровень защиты во многом обеспечивается за счет особой функции TrustZone, позволяющей разделить память, интерфейсы и периферию на два изолированных сегмента. Концепция технологии TrustZone не нова, данная технология была доступна еще на процессорах серии ARM Cortex-A. В обоих примерах процессор имеет защищенные и незащищенные сегменты, причем незащищенное программное обеспечение может получить доступ только к незащищенным сегментам памяти. Однако есть несколько различий в реализации TrustZone на ARM Cortex-A и Cortex-M33. Одним из них является то, что TrustZone для Cortex-M33 поддерживает несколько точек входа, в то время как в TrustZone для процессоров Cortex-A единственной точкой входа является обработчик Secure Monitor. При наличии TrustZone, защищенное и незащищенное ПО могут работать вместе, но незащищенные приложения не могут напрямую обращаться к защищенным ресурсам. Вместо этого любой доступ к защищенным ресурсам осуществляется через специальные API, предоставляемые защищенным программным обеспечением. Данный принцип разделения позволяет защитить важные области данных даже в тех случаях, когда код в незащищенных областях был скомпрометирован.

Пользовательские инструкции ARM

Другим немаловажным новшеством Cortex-M33 является возможность добавления собственных инструкций. Анонс данной функции для процессоров с архитектурой ARMv8 состоялся еще в 2019 году на мероприятии ARM Techcon 2019, и ядро Cortex-M33 стало первым продуктом компании, в котором был реализован данный функционал. Архитектурно поддержка настраиваемых инструкций осуществляется за счет добавления в состав ядра Cortex-M33 специального настраиваемого модуля, делящего интерфейсы доступа с обычным ALU. Для модификации доступно до 8 областей, в зависимости от типа и количества инструкций, которые планируется добавить. В качестве меры защиты от излишней фрагментации добавлено особое исключение NOCP, которое выдается ядром при попытке запуска неподдерживаемого кода. Возможность добавления собственных инструкций никак не влияет на их базовый набор.

Соответствие Common Criteria ISO 15408

Соответствие требованиям Common Criteria ISO 15408 гарантирует безопасность и защиту от компрометации программного кода не только ядра микроконтроллера, но и конечного устройства в целом, что особенно важно, когда дело касается IoT-устройств, таких как умные часы, промышленные датчики, устройства автоматизации с батарейным питанием и другие.

Отличительные особенности семейства STM32L5

STM32L5 – это новое семейство микроконтроллеров, которое призвано во многом заменить предыдущее поколение STM32L4 на рынке IoT-решений. Помимо использования более производительного ядра Cortex-M33 вместо Cortex-M4, у STM32L5 существуют и другие преимущества: наличие ICACHE, OTFDEC, USB type-C, SMPS и прочие. Рассмотрим эти преимущества более подробно.

Производительность

ICACHE. Кэш инструкций (ICACHE) подключен к шине C-AHB Cortex-M33 (рисунок 4), его назначение состоит в повышении производительности при выборке инструкций и данных как из внутренней, так и из внешней памяти. В ICACHE реализован один управляемый порт, через который он подключается к C-AHB, и два мастер-порта, подключенных к матрице шин AHB5. ICACHE управляет только транзакциями чтения и не управляет транзакциями записи. Он поддерживает две конфигурации: двухсторонний ассоциативный кэш или прямое отображение. Возможность переназначения адресов памяти позволяет управлять доступом ко внешней памяти через C-BUS вместо S-BUS, что улучшает производительность системы. Размер строки кэша составляет 16 байтов. ICACHE способствует снижению энергопотребления: доступ к небольшой внутренней памяти ICACHE потребляет меньше чем чтение из Flash-памяти или внешней памяти напрямую.

Рис. 4. ICACHE в микроконтроллерах STM32L5

Рис. 4. ICACHE в микроконтроллерах STM32L5

OTFDEC. On-the-fly decryption engine (OTFDEC) дословно переводится как «Механизм дешифрования на лету». Цель OTFDEC – это защита доступных только для чтения кода и данных, хранящихся на внешних устройствах SPI NOR FLASH. Содержимое памяти таких устройств не может быть защищено традиционными средствами защиты и может быть легко прочитано путем перепайки устройства на другую плату или отслеживания трафика SPI с помощью логического анализатора. Наиболее оптимальным способом защиты таких устройств является зашифровка их содержимого и последующая расшифровка перед непосредственным использованием.

Организация процесса расшифровки осуществляется путем загрузки содержимого внешней памяти в SRAM, его расшифровке и последующей работе с данными/выполнении кода. Однако у данного метода есть два недостатка: при записи содержимого в SRAM и последующей расшифровке неизбежно появляется задержка, величина которой может существенно замедлить работу системы; второй недостаток заключается в том, что содержимое внешней Flash может занимать слишком большой объем SRAM, что также негативно отразится на производительности. OTFDEC использует алгоритм шифрования AES-128 и позволяет производить расшифровку содержимого внешней Flash напрямую без записи в SRAM, минимизируя при этом задержку, которая теперь составляет менее 12 циклов AHB (рисунок 5). OTFDEC располагается между MPCWM1 (Memory protection controller Watermark), который является частью GTZC (Global TrustZone controller) и отвечает за определение незащищенных областей во внешней памяти, и OctoSPI1, который контролирует доступ ко внешней Flash-памяти.

Рис. 5. Блок-схема OTFDEC STM32L5

Рис. 5. Блок-схема OTFDEC STM32L5

Интерфейсы и периферия

Наличие интерфейсов SPI, I2C, USART в микроконтроллерах STM32 уже давно стало обыденностью, однако помимо данных «стандартных» интерфейсов, в STM32L5 также присутствуют USB type-C/UCPD, CAN-FD, SDMMC и OCTOSPI, присущие далеко не всем линейкам микроконтроллеров.

USB type-C/UCPD. Встроенный модуль UCPD STM32L5 соответствует требованиям USB Power Delivery Rev. 3.0 и USB Type-C Rev. 1.3 и имеет прямое подключение к контактам канала конфигурации (CC1 и CC2). UCPD может быть настроен как нисходящий порт (DFP) или как восходящий выходной порт (UFP). Он также поддерживает протокол быстрой смены ролей (Fast Role Swap), который позволяет менять местами состояния DFP и UFP. На блок-схеме (рисунок 6) показаны две основные части модуля UCPD:

  • интерфейс регистров, синхронизируемый ucpd_pclk, используется программным обеспечением для настройки и определения текущего состояния модуля. Сообщения передаются побайтно с помощью регистров Tx и Rx;
  • контроллер UCPD, который кодирует/декодирует байты, добавляет и проверяет CRC, а также управляет передачей упорядоченных наборов данных.

Наличие модуля UCPD дает следующие преимущества:

  • встроенный на кристалле PD PHY, включая резисторы Rp и Rd;
  • поддержку режима «разряд батареи»;
  • передачу и прием сообщений USB Power Delivery.

UCPD поддерживает работу в спящем режиме, сохраняя способность обнаруживать входящие сообщения USB Power Delivery и сигналы FRS.

Рис. 6. Основные части блока UCPD STM32L5

Рис. 6. Основные части блока UCPD STM32L5

FD-CAN представляет собой стандартный последовательный интерфейс, который позволяет микроконтроллеру связываться со внешними устройствами, подключенными к сетевой шине CAN. Интерфейс FD-CAN имеет простые настройки и конфигурацию, что позволяет организовывать связь со внешними устройствами с помощью всего двух проводов. Приложения, использующие связь по CAN, получают возможность использовать концепцию наличия нескольких мастеров с приоритетом сообщений, объектно-ориентированной связи (без адресации узлов, но с идентификацией содержимого), возможности передачи данных в режиме реального времени и общесистемной согласованности сообщений (рисунок 7).

FD-CAN STM32L5 поддерживает протокол Basic Extended CAN версий 2.0 A и B с максимальной скоростью передачи 1 Мбит/с, а также протокол CAN FD версии 1.0 с максимальной скоростью передачи данных до 8 Мбит/с. CAN FD STM32L5 обрабатывает все функции протокола ISO 11898-1: 2015 и поддерживает как 11-битные, так и 29-битные идентификаторы.

Рис. 7. Подключение сторонних устройств к микроконтроллеру STM32L5 по шине CAN

Рис. 7. Подключение сторонних устройств к микроконтроллеру STM32L5 по шине CAN

SDMMC обеспечивает интерфейс связи микроконтроллера с картами памяти SD и устройствами SDIO. SDMMC позволяет легко подключать внешние запоминающие устройства, тем самым расширяя возможности памяти отдельного решения. Приложения, использующие SDMMC, выигрывают от уменьшения количества контактов, необходимого для взаимодействия с картами памяти.

SDMMC поддерживает ширину шины данных в 1-бит (по умолчанию), 4-бит и 8-бит, что позволяет управлять пропускной способностью приложения, в зависимости от конкретных условий применения. SDMMC соединяется с внутренним DMA (IDMA) для разгрузки ядра микроконтроллера во время чтения или записи данных. Тактовый генератор SDMMC может генерировать сигналы с частотой до 400 кГц для фазы инициализации и до 100 МГц для карт, поддерживающих режим SDR50. Для снижения энергопотребления синхронизацию SDMMC можно отключить, когда шины команд и данных неактивны.

Основные составляющие SDMMC – это адаптер SDMMC и интерфейс AHB (рисунок 8). Адаптер SDMMC обеспечивает такие функции, как тактирование, передача команд и данных, а интерфейс AHB управляет регистрами управления и состояния, буферами FIFO, а также запросами IDMA и прерываний. Для блока SDMMC доступны два источника тактирования: AHB (HCLK) для интерфейса AHB и SDMMC (SDMMCCLK) для адаптера SDMMC.

Рис. 8. Блок-схема SDMMC STM32L5

Рис. 8. Блок-схема SDMMC STM32L5

OCTOSPI. Интерфейс OCTOSPI, интегрированный в STM32L5, обеспечивает интерфейс связи, позволяющий микроконтроллеру обмениваться данными со внешними одно-, двух-, четырех- или восьмеричными запоминающими устройствами SPI (рисунок 9). OCTOSPI позволяет получать доступ и выполнять операции чтения и записи как со внешней памятью, как если бы она была внутренней, и поддерживает протоколы Serial flash, Psram, HyperRAM и HyperFlash. OctoSPI всегда работает как хост-контроллер, он инициирует передачу данных в память. В OCTOSPI реализованы два протокола нижнего уровня: обычный командный режим, который является расширением QuadSPI, и протокол HyperBus.

OCTOSPI имеет 3 режима работы:

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

Рис. 9. Блок-схема OCTOSPI STM32L5

Рис. 9. Блок-схема OCTOSPI STM32L5

DMAMUX представляет собой маршрутизатор запросов DMA и позволяет перенаправлять запросы прямого доступа к памяти от периферийных блоков на каналы DMA-контроллера. В качестве одного из таких периферийных устройств можно рассматривать встроенный четырехканальный генератор запросов. Функция маршрутизации обеспечивается 16-канальным мультиплексором запросов (рисунок 10). Каждый канал мультиплексора имеет следующие особенности:

  • наличие встроенного счетчика запросов DMA, который программируется через поле NBREQ;
  • запрос DMA уменьшает счетчик запросов DMA. При обнулении счетчик запроса DMA автоматически перезагружается со значением, запрограммированным в поле NBREQ;
  • при обнулении событие DMAMUX может быть сгенерировано, если включено (через поле EGE);
  • 4 события DMAMUX (от каналов 0…3) повторяются и подключаются к DMAMUX в качестве триггерных входов и входов синхронизации. Это позволяет связывать запросы для другого канала DMA через синхронизацию и/или запуск.

Кроме того, для каждого канала мультиплексора существуют два режима работы (программируются через поле SE):

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

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

Особенности STM32L5 DMA:

  • два контроллера прямого доступа к памяти;
  • поддержка TrustZone DMA и DMAMUX;
  • изоляция ресурсов на уровне канала.

Рис. 10. Блок-схема DMAMUX STM32L5

Рис. 10. Блок-схема DMAMUX STM32L5

DFSDM. Микроконтроллеры STM32L5 включают в себя блок DFSDM с четырьмя модулями цифровых фильтров и восемью внешними входными последовательными каналами (трансиверами) или, в качестве альтернативы, с поддержкой восьми внутренних параллельных входов. DFSDM предназначен для сопряжения внешних Σ∆-модуляторов с микроконтроллером и цифровой фильтрации полученных потоков данных. DFSDM может также взаимодействовать с микрофонами PDM и выполнять преобразование и фильтрацию PDM в PCM.

Интерфейс DFSDM состоит из следующих компонентов (рисунок 11):

  • 4 последовательных трансивера;
  • 4 части фильтра Sinc и интеграторы;
  • 4 блока выходных данных;
  • 4 аналоговых сторожевых таймера;
  • 4 датчика короткого замыкания;
  • 4 Extreme-датчика;
  • 4 регистра параллельного ввода данных.

Рис. 11. Блок-схема DFSDM STM32L5

Рис. 11. Блок-схема DFSDM STM32L5

Потребление

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

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

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

Стоит также отметить, что микроконтроллеры STM32L5 могут переходить из одного режима питания в другой, однако есть некоторые ограничения. Так, например, из режима Run можно получить доступ ко всем режимам с малым энергопотреблением (Stop, Sleep, Stanby и так далее), однако из режима Stop0 нельзя напрямую перейти в Stop1 и другим (рисунок 13).

Рис. 13. Схема доступа и возможностей перехода между режимами работы микроконтроллеров STM32L5

Рис. 13. Схема доступа и возможностей перехода между режимами работы микроконтроллеров STM32L5

Понижающий преобразователь SMPS. Встроенный понижающий преобразователь SMPS – это высокоэффективный импульсный DC/DC-преобразователь, который позволяет улучшить характеристики энергопотребления, когда напряжение на контакте VDD имеет достаточно высокое значение.

SMPS поддерживает три режима работы:

  • режим высокой мощности (HPM), характеризующийся высоким значение КПД при большой токовой нагрузке. Данный режим выбирается по умолчанию после сброса POR;
  • режим малого энергопотребления, обеспечивающий высокий КПД при малой токовой нагрузке;
  • байпасный режим. SMPS может быть переключен в режим байпаса в любое время с помощью прикладного программного обеспечения.

Схема питания понижающего преобразователя SMPS показана на рисунке 14. Для корректной работы SMPS требуется, чтобы катушка индуктивности номиналом 4,7 мкГн была подключена между выводами VLXSMPS и V15SMPS, а между выводами V15SMPS и VSSSMPS был включен конденсатор емкостью 4,7 мкФ. Его можно выключить, выбрав программно байпасный режим работы.

Рис. 14. Схема включения SMPS STM32L5

Рис. 14. Схема включения SMPS STM32L5

Безопасность

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

AES. Алгоритм AES – это симметричный блочный шифр, используемый для шифрования и дешифрования информации с использованием криптографического ключа длиной 128 или 256 бит. В микроконтроллерах STM32L5 реализован аппаратный ускоритель AES, который позволяет выполнять шифрование AES без привлечения процессорного ядра. Блок AES реализован в соответствии со стандартом NIST FIPS 197, это, с точки зрения времени обработки, является более эффективным решением, чем программная библиотека. Шифрование и дешифровка данных требуют значительных вычислительных ресурсов, которые представляют собой достаточно высокую нагрузку, если полностью выполняются программным обеспечением. Аппаратный ускоритель AES снижает нагрузку на центральный процессор, выполняя операции шифрования/дешифровки в ядре AES. Блок AES является ведомым устройством AHB и работает следующим образом: центральный процессор передает данные, ключ и вектор инициализации в блок AES путем записи в регистры памяти. Перемещение данных также может быть обеспечено двумя каналами DMA: одним для записи данных в AES, вторым – для чтения результата. Программное обеспечение может приостановить обработку данных, если AES необходимо обработать другое сообщение с более высоким приоритетом, а затем возобновить предыдущую операцию обработки.

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

Встроенный хеш-процессор микроконтроллеров STM32L5 позволяет получать дайджест сообщений без участия процессорного ядра. Кроме того, он может работать совместно с DMA, что еще больше разгружает процессор. HASH поддерживает следующие хеш-функции: MD5, алгоритм безопасного хеширования SHA-1 и более поздний SHA-2 (SHA-224/SHA-256). Все поддерживаемые хеш-функции работают с 512-битными блоками данных. Хеш также может быть сгенерирован с помощью секретного ключа для создания кода аутентификации сообщения (MAC). Хеш-процессор поддерживает перестановку битов, байтов и полуслов. Он также поддерживает автоматическое заполнение входных данных для выравнивания блоков.

PKA (шифрование с открытым ключом) является частью многих стандартов безопасности и широко используется для установления безопасных каналов связи в незащищенных открытых сетях, а также обеспечения аутентификации с помощью электронных подписей. Программные решения PKA могут быть слишком медленными для приложений реального времени, что сказывается на общей производительности системы. Как следствие, в микроконтроллерах STM32L5 присутствует специальный блок PKA, ускоряющий операции шифрования с открытым ключом, выполняемые центральным процессором. Центральный процессор загружает исходные данные во внутреннюю RAM PKA, которая расположена по смещению адреса 0x400, после чего в регистре управления PKA процессор определяет операцию, которая должна быть выполнена, и, наконец, устанавливает бит START. Как только PKA сообщает об окончании операции (PROCENDF), центральный процессор считывает полученные данные из RAM PKA, а затем сбрасывает флаг PROCENDF. Программное обеспечение может прервать операцию PKA в любое время, очистив бит EN в регистре PKA_CR.

HDP (Hide Protect). Еще одной функцией, обеспечивающей безопасную работу микроконтроллеров STM32L5, является скрытая область памяти (Hide Protection Area), также называемая защищенной пользовательской памятью, или HDP. HDP предназначена для приложений, которые должны выполняться только в процессе загрузки микроконтроллера. Приложение, записанное в HDP, стартует при каждом запуске микроконтроллера, вне зависимости от заданной конфигурации или режима питания. После выполнения приложения область HDP закрывается, и доступ к ней невозможен до следующего перезапуска. Микроконтроллеры STM32L5 имеют до двух областей HDP, расположенных внутри защищенной зоны TrustZone.

TrustZone. Данная технология позволяет разделить память, интерфейсы и периферию микроконтроллера на два изолированных сегмента: защищенный и незащищенный. Функция TrustZone не является обязательной для ARM V8-M. Когда TrustZone не активирован, микроконтроллеры STM32L5 работают в небезопасном режиме, который идентичен работе в архитектуре ARM V7-M. Когда же TrustZone включен, микроконтроллер загружается в безопасном режиме и во время выполнения может переходить из безопасного в небезопасное состояние и обратно. При активации TrustZone ядро контроллера разделяется на защищенные и незащищенные сегменты, причем незащищенное программное обеспечение может получить доступ только к незащищенным сегментам памяти, доступ к защищенным сегментам осуществляется через специальные API, предоставляемые защищенным программным обеспечением.

TrustZone активируется битом опции TZEN в регистре FLASH_OPTR. Когда TrustZone включен, SAU (Security Attribution Unit) и IDAU (Defined Attribution Unit) определяют права доступа на основе защищенного или незащищенного состояния.

В микроконтроллерах STM32L5 доступны до 8 настраиваемых областей SAU. IDAU предоставляет первый раздел памяти как незащищенный или защищенный, после чего комбинируется с SAU, в результате чего выбирается более высокое состояние защиты. В таблице 4 показан пример типичной конфигурации областей SAU на основе областей IDAU.

Таблица 4. Пример конфигурации областей SAU на основе областей IDAU.

Область памяти Адрес IDAU SAU Окончательный результат
Код – внешняя память 0x0000_0000, 0x07FF_FFFF Незащищенный Незащищенный/защищенный или NSC Незащищенный/защищенный или NSC
Код – Flash и SRAM 0x0800_0000, 0x0BFF_FFFF Незащищенный Незащищенный Незащищенный
0x0C00_0000, 0x0FFF_FFFF NSC Защищенный или NSC Защищенный или NSC
Код – внешняя память 0x1000_0000, 0x17FF_FFFF Незащищенный Незащищенный
0x1800_0000, 0x1FFF_FFFF
SRAM 0x2000_0000, 0x2FFF_FFFF Незащищенный
0x3000_0000, 0x3FFF_FFFF NSC Защищенный или NSC Защищенный или NSC
Периферия 0x4000_0000, 0x4FFF_FFFF Незащищенный Незащищенный Незащищенный
0x5000_0000, 0x5FFF_FFFF NSC Защищенный или NSC Защищенный или NSC
Внешняя память 0x6000_0000, 0xDFFF_FFFF Незащищенный Незащищенный/защищенный или NSC Незащищенный/защищенный или NSC

Два банка Flash. Микроконтроллеры STM32G4 имеют на борту до 512 килобайт Flash-памяти, разделенной на два так называемых «банка» (bank). Контроллер Flash обеспечивает операции чтения, записи и стирания, а также программирование байт конфигурации (option bytes) и реализует защитные функции. Приложения, использующие Flash-память контроллера, извлекают выгоду из ее высокой производительности наряду с малым энергопотреблением. Отдельно следует отметить функцию RWW, то есть возможность чтения во время записи. Данная функция позволяет программировать или стирать один банк памяти при выполнении кода из другого банка, что повышает производительность и ускоряет работу с кодом. Благодаря наличию 2 банков памяти и функции RWW загрузку обновления программного обеспечения можно производить без выключения работающего устройства.

В микроконтроллерах STM32G4 Flash-память состоит из двух блоков:

  • основная память (Main memory block);
  • информационный блок (Information block).

В основной памяти обычно хранится пользовательская программа. Данная память, в зависимости от категории микроконтроллера, организована в виде банков с разбиением на страницы (page) по 4 или 2 кбайта соответственно (всего 128 страниц). Каждая страница банка состоит из 8 строк по 512 или 256 байтов. Основные данные структуры Flash-памяти микроконтроллеров STM32L5 приведены в таблице 5.

Таблица 5. Основные данные по структуре Flash-памяти STM32L5

Размер, кбайт 512
Номер банка 1 2
Размерность данных, бит 128 64
Размер страницы, кбайт 4 2
Количество страниц 128 128
Защищенные от записи области (WRP) 4 2 на банк
Защищенные области 2 1 на банк
Скрытые защищенные области 2 1 на банк

Помимо основной Flash-памяти, STM32L5 также поддерживает:

  • системную память объемом 32 кбайта, содержащую загрузчик;
  • область памяти для служб Root Secure Services размером 10 кбайт;
  • 512 байт памяти OTP, используемой для хранения пользовательских данных, которые невозможно стереть или изменить;
  • 4 кбайта, содержащих настройки байтов конфигурации по умолчанию.

Активный тампинг. Блок TAMP в STM32L5 содержит 128 байт резервных регистров, разделенных на тридцать две 32-битные области, используемые для хранения данных при отключении основного питания. Резервные регистры могут использоваться для хранения конфиденциальных данных, так как они стираются при обнаружении попытки физического доступа (тампинга) на контактах или при возникновении определенных внутренних событий.

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

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

Рис. 15. Организация защиты от тампинга в STM32L5

Рис. 15. Организация защиты от тампинга в STM32L5

Применение STM32L5

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

Вне зависимости от области применения, приложения, построенные на базе STM32L5, получат определенные преимущества перед конкурирующими решениями. Например, при построении расходометров и счетчиков преимуществом станут лучшее в своем классе соотношение производительности к энергопотреблению, возможность работы с интерфейсами USB Type-С и 3x LPTIM, LPUART, 2x LP Comp, 12-битный АЦП 5 MSPS. Если же говорить о системах автосигнализации или трекинга, то здесь преимуществом будут интерфейсы CAN-FD, USB Type-С, 3x LPTIM, LPUART, 2x LP Comp, все то же лучшее в классе соотношение производительности к энергопотреблению, а также дополнительные средства защиты, которые еще больше повысят надежность системы, а значит и сохранность защищаемого или отслеживаемого объекта.

Рис. 16. Области применения микроконтроллеров STM32L5

Рис. 16. Области применения микроконтроллеров STM32L5

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

Экосистема

Любой микроконтроллер производства компании STMicroelectronics – это не просто компонент, но и целая база библиотек и документов, входящих в обширную экосистему STM и позволяющих максимально облегчить разработку решений и приложений на базе конкретной модели микроконтроллера (рисунок 17).

Рис. 17. Экосистема STMicroelectronics

Рис. 17. Экосистема STMicroelectronics

Рассмотрим основные составляющие экосистемы STMicroelectronics более подробно.

ST MCU Finder

ST MCU Finder представляет собой простую мультиплатформенную утилиту, позволяющую подобрать оптимальный контроллер или отладочную плату по заданным критериям. Программа доступна в виде мобильного приложения (ST-MCU-FINDER) в Google Play и программы для персонального компьютера (ST-MCU-FINDER-PC). Она оснащена простыми в использовании инструментами для выбора наименований, автоматически обновляющейся документацией и ссылками на профильные сообщества и форумы в сети.

ST-MCU-FINDER позволяет не только подобрать микроконтроллер по заданным параметрам, но и найти все доступные для него отладочные наборы и платы расширения. Например, для семейства STM32L5 доступны следующие решения (рисунок 18):

Рис. 18. Доступные для работы отладочные наборы на базе STM32L5

Рис. 18. Доступные для работы отладочные наборы на базе STM32L5

Доступные платы относятся к трем разным типам:

  • NUCLEO. Данные отладочные платы относятся к типу наиболее простых в использовании и бюджетных плат производства STMicroelectronics. Платы из данных наборов прекрасно подойдут для начального ознакомления с семейством STM32L5 и тестирования его возможностей.
  • Discovery. Эти платы предназначены для более серьезного ознакомления с работой и устройством микроконтроллера при минимальных затратах времени. Платы Discovery – это законченное устройство, которое полностью готово к началу работы и имеет в составе всю необходимую для этого периферию: кнопки, светодиоды, штыревые колодки и так далее, а также инфраструктуру для демонстрации отличительных характеристик устройств. Платы данного типа также содержат разъемы расширения, позволяющие взаимодействовать с большинством выводов контроллера и расширять функциональные возможности путем подключения сторонних плат.
  • Evaluation Boards. Отладочные платы данной серии предназначены для глубокого ознакомления с работой и особенностями различных линеек контроллеров STM32. Evaluation Boards обладают наиболее богатым перечнем дополнительных компонентов, в число которых входят: дисплеи, построенные по технологиям TFT, E-Ink и ЖКИ, интерфейсы CAN, USB, Ethernet и так далее, а также различные разъемы для подключения дополнительной периферии, светодиоды, датчики и многое другое.

Более подробные характеристики доступных отладочных наборов на основе микроконтроллеров STM32L5 приведены в таблице 6, а их внешний вид представлен на рисунке 19.

Таблица 6. Основные характеристики отладочных наборов на основе микроконтроллеров STM32L5.

Наименование Микроконтроллер Функционал
NUCLEO-L552ZE-Q STM32L552ZE
  • 3 пользовательских светодиода;
  • 2 кнопки пользователя и сброса;
  • кварцевый генератор частотой 32,768 кГц;
  • поддержка ARDUINO Uno V3;
    ST-разъемы расширения Morpho;
  • встроенный программатор/отладчик ST-LINK/V2-1;
  • возможность питания от: ST-LINK, USB или внешнего источника;
  • Ethernet, совместимый с IEEE-802.3-2002;
  • USB OTG.
STM32L552E-EV STM32L552ZE
  • цветной сенсорный TFT LCD 2,8″ 240×320;
  • USB Type-C с USB0 FS-интерфейсом, совместимым с USB PD3.0;
  • мощный RGB-светодиод;
    встроенная схема измерения тока;
  • аудиокодек SAI;
  • цифровые микрофоны ST-MEMS;
  • 512-Мбит Octal-SPI Flash;
  • 64-Мбит Octal HyperRAM;
  • 16-Мбит SRAM;
  • 128-кбит I2C EEPROM;
  • 4 пользовательских светодиода;
    кнопки Tamper и Reset;
  • 4-направленный джойстик с кнопкой выбора;
  • светозависимый резистор (LDR);
    потенциометр;
  • встроенный отладчик/программатор ST-LINK/V2-1.
STM32L562E-DK STM32L562QEI6QU
  • цветной TFT LCD-дисплей 240х240;
  • USB Type-C с USB0 FS-интерфейсом;
  • встроенная схема измерения тока 300 нА…150 мА;
  • SAI-аудиокодек;
    MEMS-микрофоны;
  • 512-Мбит Octal-SPI Flash;
    Bluetooth V4.1 LE-модуль;
  • iNEMO 3D-акселерометр и 3D-гироскоп;
  • 2 пользовательских светодиода и 2 пользовательские кнопки;
  • встроенный программатор STLINK-V3E;
  • поддержка ARDUINO Uno V3.

Рис. 19. Внешний вид отладочных плат: а) NUCLEO-L552ZE-Q; б) STM32L552E-EV; в) STM32L562E-DK

Рис. 19. Внешний вид отладочных плат: а) NUCLEO-L552ZE-Q; б) STM32L552E-EV; в) STM32L562E-DK

Стоит также отметить, что если базового функционала отладочного набора микроконтроллера оказывается недостаточно, его всегда можно расширить при помощи специальных плат расширения, таких как X-Nucleo или Arduino Shield, при наличии на основной плате соответствующих разъемов и поддержки данной технологии. 

Библиотеки, поддерживаемые STM32L5

Микроконтроллеры STM32L5, помимо стандартных библиотек HAL и LL, также поддерживают пакеты TF-M, USBPD, Touch Sense ST, USB Device ST, FatFS и FreeRTOS. Рассмотрим данные пакеты более подробно:

  • HAL-драйверы (HAL Drivers) представляют собой высокоуровневые драйверы, ориентированные главным образом на функциональные возможности периферии. Данные драйверы значительно облегчают работу с периферийными устройствами, упрощая вид их структуры, однако требуют достаточно больших объемов памяти. Немаловажной функцией HAL-драйверов является обеспечение переносимости программного кода между различными линейками микроконтроллеров STM32.
  • LL – это драйверы низкого уровня, ориентированные на регистры. Их функции точно отражают структуру периферийных устройств на уровне регистров. Использование LL-драйверов требует глубокого знания периферии, однако высокая степень оптимизации позволяет повысить скорость выполнения программы и уменьшить занимаемый объем памяти. Также стоит отметить, что LL и HAL могут использоваться совместно.
  • TF-M (Trusted Firmware-M) — набор программных компонентов от компании ARM, обеспечивающих реализацию стандарта PSA (Platform Security Architecture) на ядре Cortex-M33 (TrustZone).
  • USBPD (USB Power Delivery) – пакет библиотек, позволяющих реализовывать приложения, питающееся от шины USB в соответствии с открытым стандартом, описывающим передачу питания между устройствами, оборудованными портами USB Type-C.
  • Touch Sense ST – свободно распространяемые библиотеки, упрощающие создание приложений с поддержкой сенсорных кнопок (тач-приложений). Библиотеки не только позволяют организовывать опрос емкостных сенсоров, но и реализуют обработку сигналов с целью снижения влияния внешних помех и повышения стабильности работы.
  • USB Device ST – стандартные библиотека для работы с USB. Библиотека работает поверх HAL-драйвера STM32Cube для USB устройства и предоставляет все необходимое API для разработки приложения USB. Библиотека USB является частью пакета STM32Cube для каждой серии STM32. Она содержит:
  • низкоуровневый драйвер USB;
  • драйверы общеизвестных классов USB;
  • набор приложений для большинства классов устройства USB, поддерживающих типы передач USB Full speed и High speed (control, interrupt, bulk и isochronous).
  • FreeRTOS – многозадачная операционная система реального времени для встраиваемых систем. FreeRTOS позволяет реализовать установку приоритетов для различных задач, вытесняющую многозадачность, не вытесняющую многозадачность, семафоры и очереди. FreeRTOS с 2017 года распространяется под лицензией MIT.
  • FatFs – простая файловая система, совместимая с FatFs реализует поддержку файловых систем FAT и exFAT. Библиотека написана на ANSI C и имеет BSD-подобную лицензию. FatFs работает через uSD, RAMDisk и USBDisk.

Программаторы STLINK

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

Рис. 20. Программаторы STLINK

Рис. 20. Программаторы STLINK

STM32Cube – это инициатива STMicroelectronics, призванная значительно повысить производительность разработчиков за счет сокращения усилий, времени и затрат на разработку приложений. STM32Cube охватывает всю номенклатуру STM32. STM32Cube включает в себя:

  • STM32CubeMX – графический инструмент настройки программного обеспечения, который позволяет генерировать код инициализации с помощью графических мастеров;
  • STM32CubeIDE – полноценную IDE, позволяющую создавать практически любые приложения на базе микроконтроллеров STM32 без необходимости обращения к стороннему программному обеспечению или библиотекам.

Отметим, что и STM32CubeMX и STM32CubeIDE содержат в себе библиотеки для работы с функцией TrustZone микроконтроллеров STM32L5.

STM32CubeMX. Для упрощения процесса разработки и конфигурации проекта компания STMicroelectronics разработала специальную графическую среду STM32CubeMX (рисунок 21). Она служит для генерации проектов на базе микроконтроллеров семейства STM32 и дает возможность пользователям автоматически создавать код на языке С и основу программы посредством использования визуальных утилит. Использование STM32CubeMX значительно упрощает и ускоряет процесс написания функций инициализации, однако основной алгоритм работы пользователю по-прежнему необходимо прописывать самостоятельно.

Рис. 21. Внешний вид среды разработки STM32CubeMX

Рис. 21. Внешний вид среды разработки STM32CubeMX

 

STM32CubeIDE. Наиболее предпочтительной средой разработки программного кода для микроконтроллеров STM32 является фирменная среда STM32CubeIDE. Она создана на основе IDE Atollic TrueStudio и STM32CubeMX и сочетает в себе их сильные стороны, а именно: мощный практический функционал первой среды и возможность по графической настройке и генерации кода инициализации второй среды (рисунок 22). STM32CubeIDE дает возможность разработчику сконфигурировать проект, настроить необходимую периферию и задать тактирование микроконтроллера, после чего сгенерировать код инициализации, отредактировать его должным образом, например, добавив несколько функций, и провести компиляцию. Кроме того, среда STM32CubeIDE обладает достаточно продвинутым набором инструментов для отладки.

Рис. 22. Создание проекта для микроконтроллера STM32L552CCTx в среде STM32CubeIDE

Рис. 22. Создание проекта для микроконтроллера STM32L552CCTx в среде STM32CubeIDE

Заключение

Новые микроконтроллеры STM32L5 на базе ядра ARM Cortex-M33 с интегрированной технологией обеспечения безопасности TrustZone призваны стать флагманом в сегменте микроконтроллеров с малым энергопотреблением и дополнить семейство STM32L4 за счет более высокого уровня производительности и безопасности. STM32L5 способен открыть дорогу к новым свершениям в области интернета вещей, мобильной техники и других приложений с питанием от аккумулятора или батареи.

Литература

  1. STM32L5 online training.
  2. RM Reference manual. STM32L552xx and STM32L562xx advanced Arm®-based 32-bit MCUs. (Rev.4 2020).
  3. STM32L5 MCU series excellence in ultra-lowpower with more security.
•••

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

О компании ST Microelectronics

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

Товары
Наименование
NUCLEO-L552ZE-Q (ST)
STM32L552CCT6 (ST)
STM32L552QCI6Q (ST)
STM32L552RET6 (ST)
STM32L552RET6P (ST)
STM32L552RET6Q (ST)
STM32L552ZCT6Q (ST)