Перейти к содержанию

STM32WL: микроконтроллеры с радио LoRa на 150–960 МГц

STM32WL — микроконтроллеры STM32 со встроенным субгигагерцовым радио: LoRa, (G)FSK, (G)MSK и BPSK в диапазоне 150–960 МГц с выходной мощностью до +22 дБм. У STM32WLE5 и WLE4 одно ядро Cortex-M4 на 48 МГц, у STM32WL55 и WL54 рядом с ним работает Cortex-M0+. Здесь — отличия линеек по даташитам и reference manual RM0453, загрузка и страницы с распиновкой каждого микроконтроллера в каждом корпусе.

STM32WL — семейство микроконтроллеров STMicroelectronics с радио для сетей дальнего радиуса действия: на одном кристалле ядро Arm Cortex-M4 с частотой до 48 МГц и приёмопередатчик субгигагерцового диапазона с модуляциями LoRa, (G)FSK, (G)MSK и BPSK (DS13105, разд. 2). Радио соответствует спецификации LoRaWAN 1.0 и нормам ETSI EN 300 220, FCC CFR 47 часть 15 и ARIB (DS13293, 3.9.1). Набор режимов питания — от Low-power run до Stop 2, Standby и Shutdown — такой же, как у STM32L4 (DS13293, раздел о режимах низкого потребления). В разделе 16 страниц для 16 исполнений в 2 корпусах, 2 линейки: у каждого сочетания микроконтроллера и корпуса — своя страница со схемой выводов и номерами альтернативных функций.

Линейки STM32WL

Значения в таблице собраны из записей базы ST: частота — максимальная для линейки, память — от наименьшего до наибольшего исполнения.

ЛинейкаЯдро, частотаФлеш-памятьОЗУКорпусаЧем выделяется
STM32WL5xCortex-M4 + Cortex-M0+, до 48 МГц256 КБ64 КБUFBGA73, UFQFPN48DAC, COMP, I²S, AES, RNG, LPTIM, LPUART
STM32WLExCortex-M4, до 48 МГц64 КБ – 256 КБ20 КБ – 64 КБUFBGA73, UFQFPN48DAC, COMP, I²S, AES, RNG, LPTIM, LPUART

Линеек две: одноядерная STM32WLEx и двухъядерная STM32WL5x, и в каждой есть исполнения с модуляцией LoRa и без неё (DS13105 и DS13293, табл. 2):

МикроконтроллерЯдраLoRa(G)FSK, (G)MSK, BPSKФлеш-память / ОЗУ
STM32WLE5Cortex-M4естьесть64, 128 или 256 КБ / 20, 48 или 64 КБ
STM32WLE4Cortex-M4—есть64, 128 или 256 КБ / 20, 48 или 64 КБ
STM32WL55Cortex-M4 и Cortex-M0+естьесть256 КБ / 64 КБ
STM32WL54Cortex-M4 и Cortex-M0+—есть256 КБ / 64 КБ

Корпусов у семейства два — UFQFPN48 и UFBGA73, и у каждой линейки есть оба. Шифратор AES на 256 бит, ускоритель PKA и генератор случайных чисел есть у STM32WL55 и WL54 (DS13293, табл. 2), а по данным ST AES и PKA есть и у STM32WLE5 и WLE4.

Радио 150–960 МГц

Приёмопередатчик перекрывает весь диапазон от 150 до 960 МГц; LoRa и (G)FSK работают на приём и передачу, а BPSK и (G)MSK — только на передачу (DS13293, 3.9.1). Опорную частоту синтезатор берёт от кварцевого генератора HSE32 на 32 МГц. Передатчик выводит сигнал через один из двух усилителей (DS13293, табл. 2):

ВыходУсилительМощность
RFO_LPмаломощныйдо +15 дБм
RFO_HPмощныйдо +22 дБм

Приёмник подключается к дифференциальному входу RFI_P и RFI_N. STM32WL питается от 1,8 до 3,6 В и работает при температуре до +105 °C, но с включённым радио — до +85 °C (DS13293, разд. 2). Встроенный понижающий преобразователь SMPS можно не использовать: тогда дроссель между выводами VLXSMPS и VFBSMPS не ставят (DS13293, 3.9). Время работы устройства от батареи при известных токах передачи и сна считает калькулятор времени работы от батареи.

Два ядра STM32WL55 и WL54

У двухъядерных линеек приложение работает на Cortex-M4 (CPU1), а второе ядро Cortex-M0+ (CPU2) ST отводит под защищённые службы: единственную точку входа при загрузке, защищённый уровень MAC радио, обновление и установку прошивки, хранение ключей (DS13293, разд. 2). Шины обоих ядер работают на частоте до 48 МГц (RM0453, раздел RCC). CPU2 стартует только после того, как CPU1 установит бит C2BOOT в регистре PWR_CR4; адрес старта CPU2 задают байты опций C2OPT и SBRV, а встроенные службы SFI и RSS работают именно на CPU2 (RM0453, 2.3).

Тактирование и такты ожидания

После сброса микроконтроллер работает от генератора MSI на 4 МГц (RM0453, раздел RCC). Флеш-память тактируется от шины HCLK3, и число тактов ожидания зависит от её частоты и диапазона напряжения ядра (RM0453, табл. 12):

Тактов ожиданияrange 1range 2
0до 18 МГцдо 6 МГц
1до 36 МГцдо 12 МГц
2до 48 МГцдо 16 МГц

Скорость USART и LPUART от выбранной частоты считает калькулятор UART.

Выводы STM32WL: альтернативные функции и загрузка

У каждой линии порта мультиплексор на шестнадцать функций: номер AF0–AF15 записывают в четырёхбитные поля регистров GPIOx_AFRL и GPIOx_AFRH (RM0453, раздел GPIO). В данных ST у STM32WL встречаются номера до AF14. Радиовыводы RFO_HP, RFO_LP, RFI_P, RFI_N и питание усилителя VDDPA и VR_PA альтернативных функций не имеют.

Значение BOOT0 берётся с вывода PH3-BOOT0 или, если бит nSWBOOT0 в байтах опций сброшен, из бита nBOOT0; при nBOOT1 = 1 значение BOOT0 = 1 запускает встроенный загрузчик (AN2606, табл. 2, шаблон 13). Если выбран старт из флеш-памяти, а она пуста, микроконтроллер тоже запускает загрузчик (DS13293, 3.7). Упрощённо, без битов BOOT_LOCK и C2BOOT_LOCK и режима SFI/RSS, в котором CPU1 стоит, а CPU2 запускает встроенные службы (полностью — RM0453, табл. 1):

BOOT0nBOOT1Откуда старт CPU1
0любойфлеш-память
11системная память — встроенный загрузчик
10SRAM1

Загрузчик STM32WLE5 и WL55 работает через USART1, USART2, SPI1 и SPI2, занимает 16 КБ системной памяти с адреса 0x1FFF 0000 и использует 8 КБ SRAM (AN2606, табл. 3 и 202). Выводы: USART1 — PA9 и PA10, USART2 — PA2 и PA3, SPI1 — PA4–PA7, SPI2 — PB12–PB15.

Все STM32WL по корпусам

STM32WL5x — Cortex-M4 + Cortex-M0+, до 48 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32WL54CCUFQFPN48256 КБ64 КБ29
STM32WL54JCUFBGA73256 КБ64 КБ43
STM32WL55CCUFQFPN48256 КБ64 КБ29
STM32WL55JCUFBGA73256 КБ64 КБ43

STM32WLEx — Cortex-M4, до 48 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32WLE4C8UFQFPN4864 КБ20 КБ29
STM32WLE4CBUFQFPN48128 КБ48 КБ29
STM32WLE4CCUFQFPN48256 КБ64 КБ29
STM32WLE4J8UFBGA7364 КБ20 КБ43
STM32WLE4JBUFBGA73128 КБ48 КБ43
STM32WLE4JCUFBGA73256 КБ64 КБ43
STM32WLE5C8UFQFPN4864 КБ20 КБ29
STM32WLE5CBUFQFPN48128 КБ48 КБ29
STM32WLE5CCUFQFPN48256 КБ64 КБ29
STM32WLE5J8UFBGA7364 КБ20 КБ43
STM32WLE5JBUFBGA73128 КБ48 КБ43
STM32WLE5JCUFBGA73256 КБ64 КБ43

Модуль STM32WL5MOC в корпусе LGA есть в данных ST и участвует в сравнении выводов, но отдельной страницы у него пока нет: его контактные площадки занимают всё дно модуля в несколько рядов, а схема корпуса в атласе пока умеет рисовать только корпуса с выводами по сторонам и с матрицей шариков.

Перед разводкой платы сверяйте выводы с даташитом своего исполнения: в нём указаны допустимые напряжения на выводах, токи, схемы согласования для выходов RFO_LP и RFO_HP и номиналы внешних компонентов SMPS.

Частые вопросы

Чем STM32WLE5 отличается от STM32WLE4?

Модуляцией LoRa: по табл. 2 даташита DS13105 она есть только у STM32WLE5. Остальное радио — (G)FSK на приём и передачу, (G)MSK и BPSK на передачу — у обеих линеек одинаковое, как и ядро, память и выводы. Так же различаются двухъядерные STM32WL55 и WL54 (DS13293, табл. 2).

Чем STM32WL55 отличается от STM32WLE5?

Вторым ядром. У STM32WL55 рядом с Cortex-M4 работает Cortex-M0+, на котором ST предлагает защищённые службы: единственную точку входа при загрузке, защищённый уровень MAC субгигагерцового радио, защищённое обновление и установку прошивки, хранение ключей (DS13293, разд. 2). Объём памяти у WL55 один — 256 КБ флеш-памяти и 64 КБ ОЗУ, а у STM32WLE5 есть исполнения на 64, 128 и 256 КБ.

Какую мощность выдаёт радио STM32WL?

До +15 дБм через маломощный усилитель на выводе RFO_LP и до +22 дБм через мощный на выводе RFO_HP (DS13293, табл. 2). Приёмник подключается к дифференциальному входу RFI_P и RFI_N. Радио работает на любых частотах от 150 до 960 МГц (3.9.1).

Сколько тактов ожидания флеш-памяти нужно STM32WL на 48 МГц?

Два — в диапазоне напряжения ядра range 1. По табл. 12 RM0453 без ожидания флеш-память работает до 18 МГц, с одним тактом — до 36 МГц, с двумя — до 48 МГц. В range 2 пределы — 6, 12 и 16 МГц.

Через какие интерфейсы работает загрузчик STM32WL?

Через USART1, USART2, SPI1 и SPI2 (AN2606, табл. 3). USART1 — выводы PA9 (TX) и PA10 (RX), USART2 — PA2 и PA3, SPI1 — PA4–PA7, SPI2 — PB12–PB15 (табл. 202). I²C и USB загрузчик STM32WL не поддерживает.