STM32WBA: Cortex-M33 с радио Bluetooth LE и 802.15.4
STM32WBA — беспроводные микроконтроллеры STM32 на ядре Cortex-M33 с частотой до 100 МГц и TrustZone: радио 2,4 ГГц для Bluetooth LE, а в большинстве линеек — и для IEEE 802.15.4. Здесь — что означает последняя цифра в названии, по даташитам и reference manual RM0493 и RM0515, такты ожидания, загрузка и страницы с распиновкой каждого микроконтроллера в каждом корпусе.
STM32WBA — семейство беспроводных микроконтроллеров STMicroelectronics на ядре Arm Cortex-M33 с технологией TrustZone, блоком вычислений с плавающей точкой и частотой до 100 МГц (DS14127, с. 1 и разд. 2). Радио на 2,4 ГГц поддерживает Bluetooth LE, а большинство линеек — ещё и IEEE 802.15.4. В отличие от STM32WB, отдельного ядра для радио здесь нет: на блок-схемах даташитов DS14127 и DS14736 одно ядро Cortex-M33. Средства защиты — TrustZone, защищённая загрузка, аппаратные SAES, AES, PKA и HASH (DS14127, с. 1 и разд. 2), а загрузка устроена так же, как у STM32U5. В разделе 37 страниц для 37 исполнений в 13 корпусах, 5 линеек: у каждого сочетания микроконтроллера и корпуса — своя страница со схемой выводов и номерами альтернативных функций.
Линейки STM32WBA
Значения в таблице собраны из записей базы ST: частота — максимальная для линейки, память — от наименьшего до наибольшего исполнения. База ST группирует микроконтроллеры по последней цифре номера, поэтому в одной строке оказываются, например, STM32WBA55 и WBA65. У части записей, например у STM32WBA50 и WBA2x, частота в базе не указана, поэтому в строке WBAx0 её нет.
| Линейка | Ядро, частота | Флеш-память | ОЗУ | Корпуса | Чем выделяется |
|---|---|---|---|---|---|
| STM32WBAx0 | Cortex-M33 | 1 МБ | 64 КБ | UFQFPN32 | AES, HASH, RNG, LPTIM, LPUART, TSC |
| STM32WBAx2 | Cortex-M33, до 100 МГц | 512 КБ – 2 МБ | 96 КБ – 512 КБ | UFBGA121 USB, UFQFPN32, UFQFPN48, UFQFPN48 USB, WLCSP88 USB | USB OTG HS, COMP, SAI, AES, HASH, RNG, LPTIM, LPUART, TSC |
| STM32WBAx3 | Cortex-M33, до 100 МГц | 512 КБ – 2 МБ | 96 КБ – 512 КБ | UFQFPN32, UFQFPN48 SMPS | COMP, SAI, AES, HASH, RNG, LPTIM, LPUART, TSC |
| STM32WBAx4 | Cortex-M33, до 100 МГц | 512 КБ – 2 МБ | 96 КБ – 512 КБ | UFQFPN32, UFQFPN48, UFQFPN48 USB | USB OTG HS, COMP, SAI, AES, HASH, RNG, LPTIM, LPUART, TSC |
| STM32WBAx5 | Cortex-M33, до 100 МГц | 512 КБ – 2 МБ | 96 КБ – 512 КБ | UFBGA59, UFBGA121 SMPS USB, UFQFPN48, UFQFPN48 SMPS USB, VFQFPN68 SMPS USB, WLCSP37 SMPS USB, WLCSP41, WLCSP88 SMPS USB | USB, USB OTG HS, COMP, SAI, AES, HASH, RNG, LPTIM, LPUART, TSC |
Последняя цифра номера задаёт радио и питание. По табл. 2 и 3 даташита DS14127 (STM32WBA5) и табл. 2 даташита DS14736 (STM32WBA6):
| Цифра | Примеры | Bluetooth LE | IEEE 802.15.4 | Внешний усилитель, AoA/AoD | SMPS | USB OTG HS у WBA6 |
|---|---|---|---|---|---|---|
| 2 | WBA52, WBA62 | есть | — | — | — | есть |
| 3 | WBA63 | есть | есть | есть | есть | — |
| 4 | WBA54, WBA64 | есть | есть | есть | — | есть |
| 5 | WBA55, WBA65 | есть | есть | есть | есть | есть |
Предпоследняя цифра отделяет STM32WBA5 от WBA6, и память у них разная. У STM32WBA5 512 КБ или 1 МБ флеш-памяти и 96 или 128 КБ ОЗУ: SRAM1 на 32 или 64 КБ и SRAM2 на 64 КБ (DS14127, табл. 2 и 3). У STM32WBA6 1 или 2 МБ флеш-памяти и 256 или 512 КБ ОЗУ: SRAM1 на 192 или 448 КБ и SRAM2 на 64 КБ (DS14736, табл. 2). Радио WBA6 соответствует IEEE 802.15.4-2015 и, по описанию ST, поддерживает Matter, Thread и Zigbee, внешний усилитель мощности и массив до восьми антенн (DS14736, разд. 2); внешнего усилителя и пеленгации AoA/AoD нет только у WBA62 (табл. 2).
В данных ST есть также STM32WBA50 — 1 МБ флеш-памяти и 64 КБ ОЗУ в корпусе UFQFPN32 — и линейка STM32WBA2x (WBA23, WBA25) с 512 КБ флеш-памяти и 96 КБ ОЗУ; их состав виден в таблице выше.
Питание, тактирование и такты ожидания
STM32WBA5 питается от 1,71 до 3,6 В и работает при температуре от −40 до +105 °C (DS14127, разд. 2). Встроенный понижающий преобразователь SMPS есть только в части исполнений (см. таблицу выше), остальные питают ядро от встроенного стабилизатора. Для кварца на 32 МГц на кристалле есть генератор HSE32 (DS14127, рис. 1).
Напряжение ядра выбирается из двух диапазонов: в range 1 системная частота — до 100 МГц, в range 2 — до 16 МГц; так у STM32WBA5 (RM0493, табл. 101) и у WBA6 (RM0515, табл. 103). У WBA6 после сброса включён range 2, частота 16 МГц и один такт ожидания (RM0515, раздел FLASH). Пока приёмопередатчик 2,4 ГГц работает, у WBA5 нужен range 1 (RM0493, 12.4.6), а у WBA6 диапазон напряжения нельзя изменить (RM0515, раздел PWR). Такты ожидания флеш-памяти в обычном режиме чтения одинаковы у обеих серий (RM0493, табл. 41; RM0515, табл. 42):
| Тактов ожидания | range 1 | range 2 |
|---|---|---|
| 0 | до 32 МГц | до 8 МГц |
| 1 | до 64 МГц | до 16 МГц |
| 2 | до 96 МГц | — |
| 3 | до 100 МГц | — |
Из режимов низкого потребления у STM32WBA5 есть Sleep, Stop 0, Stop 1 и Standby, у WBA6 к ним добавлен Stop 2 (DS14127 и DS14736, обзор режимов и таблицы токов). У STM32WBA6 радио само передаёт и принимает пакеты в Sleep и в Stop 0 при range 1; в Stop 0 при range 2, в Stop 1 и Stop 2 его настройки сохраняются, но работать с пакетами оно уже не может — действует только таймер сна радио, который будит микроконтроллер (RM0515, 9.5 и табл. 80). Часть периферии в режиме Stop работает автономно, с прямым доступом к памяти, — ST называет это BAM (DS14127, разд. 2). Скорость USART и LPUART считает калькулятор UART.
Выводы STM32WBA: альтернативные функции и загрузка
У каждой линии порта мультиплексор на шестнадцать функций: номер AF0–AF15 записывают в регистры GPIOx_AFRL и GPIOx_AFRH (RM0493, раздел GPIO). В данных ST у STM32WBA встречаются номера до AF14. Антенный вывод RF и выводы питания радиочасти VDDRF, VDDRFPA и VDDHPA альтернативных функций не имеют.
Загрузка устроена как у STM32U5. Значение BOOT0 берётся с вывода PH3-BOOT0 или, если бит nSWBOOT0 сброшен, из бита nBOOT0 в байтах опций; адрес старта задают байты опций (DS14127 и DS14736, табл. 6 и 7):
| Режим | BOOT0 = 0 | BOOT0 = 1 |
|---|---|---|
| TrustZone выключена (TZEN = 0) | NSBOOTADD0, заводское значение — флеш-память 0x0800 0000 | NSBOOTADD1, заводское значение — загрузчик: 0x0BF8 8000 у WBA5, 0x0BF9 0000 у WBA6 |
| TrustZone включена (TZEN = 1) | SECBOOTADD0, заводское значение — флеш-память 0x0C00 0000 | службы RSS, 0x0FF8 0000 |
Бит BOOT_LOCK оставляет единственную точку входа SECBOOTADD0 — основу защищённой загрузки. Интерфейсы загрузчика (AN2606, табл. 3):
| Линейки | USART | I²C | SPI | USB DFU |
|---|---|---|---|---|
| STM32WBA5 | USART1, USART2 | I²C1, I²C3 | SPI3 | — |
| STM32WBA6 | USART1, USART2¹ | I²C1, I²C3 | SPI2, SPI3 | есть |
| STM32WBA2 | USART1 | I²C1, I²C3 | SPI3 | есть |
У STM32WBA5 и WBA6 USART1 загрузчика выведен на PA8 (RX) и PB12 (TX) — не на привычные по другим STM32 выводы PA9 и PA10, — USART2 на PA11 (RX) и PA12 (TX), I²C1 — на PB2 и PB1 (AN2606, табл. 185 и 191).
¹ В AN2606 Rev 70 табл. 191 интерфейс на PA11 и PA12 у STM32WBA6 назван USART3, но в строке передатчика той же таблицы и в табл. 3 — USART2. По данным ST на PA11 и PA12 у всех STM32WBA62–WBA65 выведены USART2_RX и USART2_TX (AF3), так что «USART3» в табл. 191 — опечатка.
Все STM32WBA по корпусам
STM32WBAx0 — Cortex-M33
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32WBA50KG | UFQFPN32 | 1 МБ | 64 КБ | 22 |
STM32WBAx2 — Cortex-M33, до 100 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32WBA52CE | UFQFPN48 | 512 КБ | 96 КБ | 37 |
| STM32WBA52CG | UFQFPN48 | 1 МБ | 128 КБ | 37 |
| STM32WBA52KE | UFQFPN32 | 512 КБ | 96 КБ | 22 |
| STM32WBA52KG | UFQFPN32 | 1 МБ | 128 КБ | 22 |
| STM32WBA62CG | UFQFPN48 USB | 1 МБ | 256 КБ | 34 |
| STM32WBA62CI | UFQFPN48 USB | 2 МБ | 512 КБ | 34 |
| STM32WBA62MG | WLCSP88 USB | 1 МБ | 256 КБ | 54 |
| STM32WBA62MI | WLCSP88 USB | 2 МБ | 512 КБ | 54 |
| STM32WBA62PG | UFBGA121 USB | 1 МБ | 256 КБ | 86 |
| STM32WBA62PI | UFBGA121 USB | 2 МБ | 512 КБ | 86 |
STM32WBAx3 — Cortex-M33
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32WBA23CE | UFQFPN48 SMPS | 512 КБ | 96 КБ | 29 |
| STM32WBA23KE | UFQFPN32 | 512 КБ | 96 КБ | 22 |
| STM32WBA63CG | UFQFPN48 SMPS | 1 МБ | 256 КБ | 33 |
| STM32WBA63CI | UFQFPN48 SMPS | 2 МБ | 512 КБ | 33 |
STM32WBAx4 — Cortex-M33, до 100 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32WBA54CE | UFQFPN48 | 512 КБ | 96 КБ | 37 |
| STM32WBA54CG | UFQFPN48 | 1 МБ | 128 КБ | 37 |
| STM32WBA54KE | UFQFPN32 | 512 КБ | 96 КБ | 22 |
| STM32WBA54KG | UFQFPN32 | 1 МБ | 128 КБ | 22 |
| STM32WBA64CG | UFQFPN48 USB | 1 МБ | 256 КБ | 34 |
| STM32WBA64CI | UFQFPN48 USB | 2 МБ | 512 КБ | 34 |
STM32WBAx5 — Cortex-M33
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32WBA25CE | UFQFPN48 SMPS USB | 512 КБ | 96 КБ | 28 |
| STM32WBA25HE | WLCSP37 SMPS USB | 512 КБ | 96 КБ | 17 |
| STM32WBA55CE | UFQFPN48 | 512 КБ | 96 КБ | 33 |
| STM32WBA55CG | UFQFPN48 | 1 МБ | 128 КБ | 33 |
| STM32WBA55HE | WLCSP41 | 512 КБ | 96 КБ | 22 |
| STM32WBA55HG | WLCSP41 | 1 МБ | 128 КБ | 22 |
| STM32WBA55UE | UFBGA59 | 512 КБ | 96 КБ | 37 |
| STM32WBA55UG | UFBGA59 | 1 МБ | 128 КБ | 37 |
| STM32WBA65CG | UFQFPN48 SMPS USB | 1 МБ | 256 КБ | 30 |
| STM32WBA65CI | UFQFPN48 SMPS USB | 2 МБ | 512 КБ | 30 |
| STM32WBA65MG | WLCSP88 SMPS USB | 1 МБ | 256 КБ | 54 |
| STM32WBA65MI | WLCSP88 SMPS USB | 2 МБ | 512 КБ | 54 |
| STM32WBA65PG | UFBGA121 SMPS USB | 1 МБ | 256 КБ | 86 |
| STM32WBA65PI | UFBGA121 SMPS USB | 2 МБ | 512 КБ | 86 |
| STM32WBA65RG | VFQFPN68 SMPS USB | 1 МБ | 256 КБ | 46 |
| STM32WBA65RI | VFQFPN68 SMPS USB | 2 МБ | 512 КБ | 46 |
Модули STM32WBA5MMG и STM32WBA6MOI в корпусах LGA есть в данных ST и участвуют в сравнении выводов, но отдельных страниц у них пока нет: их контактные площадки занимают всё дно модуля в несколько рядов, а схема корпуса в атласе пока умеет рисовать только корпуса с выводами по сторонам и с матрицей шариков.
Перед разводкой платы сверяйте выводы с даташитом своего исполнения: в нём указаны допустимые напряжения на выводах, токи, схема согласования антенны и номиналы внешних компонентов SMPS.
Частые вопросы
Чем STM32WBA55 отличается от WBA52 и WBA54?
Радио и питанием. По табл. 2 и 3 даташита DS14127 STM32WBA52 работает только с Bluetooth LE, у WBA54 и WBA55 добавлены IEEE 802.15.4, поддержка внешнего усилителя мощности и пеленгация AoA/AoD. Понижающий преобразователь SMPS есть только у WBA55. Объём памяти от этого не зависит: 512 КБ или 1 МБ флеш-памяти и 96 или 128 КБ ОЗУ.
Чем STM32WBA6 отличается от WBA5?
Памятью, USB и радио. У STM32WBA6 до 2 МБ флеш-памяти и до 512 КБ ОЗУ (DS14736, разд. 2) против 1 МБ и 128 КБ у WBA5. У WBA62, WBA64 и WBA65 есть USB OTG High Speed (табл. 2). Радио WBA63, WBA64 и WBA65 поддерживает IEEE 802.15.4-2015 и, по описанию ST, Matter, Thread и Zigbee с одновременной работой нескольких протоколов, внешний усилитель мощности и пеленгацию AoA/AoD; у WBA62 есть только Bluetooth LE, без внешнего усилителя и AoA/AoD (табл. 2).
Сколько тактов ожидания флеш-памяти нужно STM32WBA на 100 МГц?
Три — в диапазоне напряжения ядра range 1. По табл. 41 RM0493 (STM32WBA5) и табл. 42 RM0515 (STM32WBA6) без ожидания флеш-память работает до 32 МГц, с одним тактом — до 64 МГц, с двумя — до 96 МГц, с тремя — до 100 МГц. В экономичном range 2 частота ограничена 16 МГц. Для работы радио у WBA5 нужен range 1 (RM0493, 12.4.6), а у WBA6 пакеты передаются и принимаются только в range 1 (RM0515, табл. 80).
Как запустить встроенный загрузчик STM32WBA?
Без TrustZone — подать BOOT0 = 1 при сбросе: ядро стартует с адреса NSBOOTADD1, заводское значение которого — загрузчик, 0x0BF8 8000 у STM32WBA5 и 0x0BF9 0000 у WBA6 (DS14127 и DS14736, табл. 6). У STM32WBA5 загрузчик работает через USART1, USART2, I²C1, I²C3 и SPI3, у WBA6 — через USART1, USART2, I²C1, I²C3, SPI2, SPI3 и USB DFU (AN2606, табл. 3). USART1 загрузчика — вывод PA8 (RX) и PB12 (TX), USART2 — PA11 (RX) и PA12 (TX).
Смотрите также
- STM32Распиновки по корпусам, альтернативные функции, похожие по выводам МК
- STM32WBCortex-M4 до 64 МГц и Cortex-M0+ для радио 2,4 ГГц: WB55, WB35, WB15, WB50 и WB30 — ядра, загрузка и распиновки
- STM32U5Cortex-M33 до 160 МГц с TrustZone и SMPS: от U535 до U5G9 — память, питание, загрузка и распиновки
- STM32WLCortex-M4 до 48 МГц с радио LoRa 150–960 МГц: WLE5, WLE4, WL55, WL54 — радио, ядра, загрузка и распиновки
- IEEE 802.15.4Маломощное радио для Zigbee и Thread: скорость, диапазон, чипы
- Безопасная загрузкаЗапуск только подписанной прошивки: подпись, ключи в OTP, откат версий
- Скорость UARTUBRR, BRR, TH1 и ошибка скорости