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: частота — максимальная для линейки, память — от наименьшего до наибольшего исполнения.
| Линейка | Ядро, частота | Флеш-память | ОЗУ | Корпуса | Чем выделяется |
|---|---|---|---|---|---|
| STM32WL5x | Cortex-M4 + Cortex-M0+, до 48 МГц | 256 КБ | 64 КБ | UFBGA73, UFQFPN48 | DAC, COMP, I²S, AES, RNG, LPTIM, LPUART |
| STM32WLEx | Cortex-M4, до 48 МГц | 64 КБ – 256 КБ | 20 КБ – 64 КБ | UFBGA73, UFQFPN48 | DAC, COMP, I²S, AES, RNG, LPTIM, LPUART |
Линеек две: одноядерная STM32WLEx и двухъядерная STM32WL5x, и в каждой есть исполнения с модуляцией LoRa и без неё (DS13105 и DS13293, табл. 2):
| Микроконтроллер | Ядра | LoRa | (G)FSK, (G)MSK, BPSK | Флеш-память / ОЗУ |
|---|---|---|---|---|
| STM32WLE5 | Cortex-M4 | есть | есть | 64, 128 или 256 КБ / 20, 48 или 64 КБ |
| STM32WLE4 | Cortex-M4 | — | есть | 64, 128 или 256 КБ / 20, 48 или 64 КБ |
| STM32WL55 | Cortex-M4 и Cortex-M0+ | есть | есть | 256 КБ / 64 КБ |
| STM32WL54 | Cortex-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 1 | range 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):
| BOOT0 | nBOOT1 | Откуда старт CPU1 |
|---|---|---|
| 0 | любой | флеш-память |
| 1 | 1 | системная память — встроенный загрузчик |
| 1 | 0 | SRAM1 |
Загрузчик 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 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32WL54CC | UFQFPN48 | 256 КБ | 64 КБ | 29 |
| STM32WL54JC | UFBGA73 | 256 КБ | 64 КБ | 43 |
| STM32WL55CC | UFQFPN48 | 256 КБ | 64 КБ | 29 |
| STM32WL55JC | UFBGA73 | 256 КБ | 64 КБ | 43 |
STM32WLEx — Cortex-M4, до 48 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32WLE4C8 | UFQFPN48 | 64 КБ | 20 КБ | 29 |
| STM32WLE4CB | UFQFPN48 | 128 КБ | 48 КБ | 29 |
| STM32WLE4CC | UFQFPN48 | 256 КБ | 64 КБ | 29 |
| STM32WLE4J8 | UFBGA73 | 64 КБ | 20 КБ | 43 |
| STM32WLE4JB | UFBGA73 | 128 КБ | 48 КБ | 43 |
| STM32WLE4JC | UFBGA73 | 256 КБ | 64 КБ | 43 |
| STM32WLE5C8 | UFQFPN48 | 64 КБ | 20 КБ | 29 |
| STM32WLE5CB | UFQFPN48 | 128 КБ | 48 КБ | 29 |
| STM32WLE5CC | UFQFPN48 | 256 КБ | 64 КБ | 29 |
| STM32WLE5J8 | UFBGA73 | 64 КБ | 20 КБ | 43 |
| STM32WLE5JB | UFBGA73 | 128 КБ | 48 КБ | 43 |
| STM32WLE5JC | UFBGA73 | 256 КБ | 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 не поддерживает.
Смотрите также
- STM32Распиновки по корпусам, альтернативные функции, похожие по выводам МК
- STM32WBCortex-M4 до 64 МГц и Cortex-M0+ для радио 2,4 ГГц: WB55, WB35, WB15, WB50 и WB30 — ядра, загрузка и распиновки
- STM32WBACortex-M33 до 100 МГц с радио 2,4 ГГц: WBA52–WBA55 и WBA62–WBA65 — радио, SMPS, загрузка и распиновки
- STM32L4Cortex-M4 до 80 МГц с режимами низкого потребления: L4x1–L4x6 — линейки, MSI, загрузка и распиновки
- Время работы от батареимА·ч, средний ток, сон МК, Вт·ч
- Скорость UARTUBRR, BRR, TH1 и ошибка скорости
- Загрузчик (bootloader)Прошивка МК без программатора через UART или USB