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

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 её нет.

ЛинейкаЯдро, частотаФлеш-памятьОЗУКорпусаЧем выделяется
STM32WBAx0Cortex-M331 МБ64 КБUFQFPN32AES, HASH, RNG, LPTIM, LPUART, TSC
STM32WBAx2Cortex-M33, до 100 МГц512 КБ – 2 МБ96 КБ – 512 КБUFBGA121 USB, UFQFPN32, UFQFPN48, UFQFPN48 USB, WLCSP88 USBUSB OTG HS, COMP, SAI, AES, HASH, RNG, LPTIM, LPUART, TSC
STM32WBAx3Cortex-M33, до 100 МГц512 КБ – 2 МБ96 КБ – 512 КБUFQFPN32, UFQFPN48 SMPSCOMP, SAI, AES, HASH, RNG, LPTIM, LPUART, TSC
STM32WBAx4Cortex-M33, до 100 МГц512 КБ – 2 МБ96 КБ – 512 КБUFQFPN32, UFQFPN48, UFQFPN48 USBUSB OTG HS, COMP, SAI, AES, HASH, RNG, LPTIM, LPUART, TSC
STM32WBAx5Cortex-M33, до 100 МГц512 КБ – 2 МБ96 КБ – 512 КБUFBGA59, UFBGA121 SMPS USB, UFQFPN48, UFQFPN48 SMPS USB, VFQFPN68 SMPS USB, WLCSP37 SMPS USB, WLCSP41, WLCSP88 SMPS USBUSB, USB OTG HS, COMP, SAI, AES, HASH, RNG, LPTIM, LPUART, TSC

Последняя цифра номера задаёт радио и питание. По табл. 2 и 3 даташита DS14127 (STM32WBA5) и табл. 2 даташита DS14736 (STM32WBA6):

ЦифраПримерыBluetooth LEIEEE 802.15.4Внешний усилитель, AoA/AoDSMPSUSB OTG HS у WBA6
2WBA52, WBA62есть———есть
3WBA63естьестьестьесть—
4WBA54, WBA64естьестьесть—есть
5WBA55, 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 1range 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 = 0BOOT0 = 1
TrustZone выключена (TZEN = 0)NSBOOTADD0, заводское значение — флеш-память 0x0800 0000NSBOOTADD1, заводское значение — загрузчик: 0x0BF8 8000 у WBA5, 0x0BF9 0000 у WBA6
TrustZone включена (TZEN = 1)SECBOOTADD0, заводское значение — флеш-память 0x0C00 0000службы RSS, 0x0FF8 0000

Бит BOOT_LOCK оставляет единственную точку входа SECBOOTADD0 — основу защищённой загрузки. Интерфейсы загрузчика (AN2606, табл. 3):

ЛинейкиUSARTI²CSPIUSB DFU
STM32WBA5USART1, USART2I²C1, I²C3SPI3—
STM32WBA6USART1, USART2¹I²C1, I²C3SPI2, SPI3есть
STM32WBA2USART1I²C1, I²C3SPI3есть

У 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

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32WBA50KGUFQFPN321 МБ64 КБ22

STM32WBAx2 — Cortex-M33, до 100 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32WBA52CEUFQFPN48512 КБ96 КБ37
STM32WBA52CGUFQFPN481 МБ128 КБ37
STM32WBA52KEUFQFPN32512 КБ96 КБ22
STM32WBA52KGUFQFPN321 МБ128 КБ22
STM32WBA62CGUFQFPN48 USB1 МБ256 КБ34
STM32WBA62CIUFQFPN48 USB2 МБ512 КБ34
STM32WBA62MGWLCSP88 USB1 МБ256 КБ54
STM32WBA62MIWLCSP88 USB2 МБ512 КБ54
STM32WBA62PGUFBGA121 USB1 МБ256 КБ86
STM32WBA62PIUFBGA121 USB2 МБ512 КБ86

STM32WBAx3 — Cortex-M33

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32WBA23CEUFQFPN48 SMPS512 КБ96 КБ29
STM32WBA23KEUFQFPN32512 КБ96 КБ22
STM32WBA63CGUFQFPN48 SMPS1 МБ256 КБ33
STM32WBA63CIUFQFPN48 SMPS2 МБ512 КБ33

STM32WBAx4 — Cortex-M33, до 100 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32WBA54CEUFQFPN48512 КБ96 КБ37
STM32WBA54CGUFQFPN481 МБ128 КБ37
STM32WBA54KEUFQFPN32512 КБ96 КБ22
STM32WBA54KGUFQFPN321 МБ128 КБ22
STM32WBA64CGUFQFPN48 USB1 МБ256 КБ34
STM32WBA64CIUFQFPN48 USB2 МБ512 КБ34

STM32WBAx5 — Cortex-M33

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32WBA25CEUFQFPN48 SMPS USB512 КБ96 КБ28
STM32WBA25HEWLCSP37 SMPS USB512 КБ96 КБ17
STM32WBA55CEUFQFPN48512 КБ96 КБ33
STM32WBA55CGUFQFPN481 МБ128 КБ33
STM32WBA55HEWLCSP41512 КБ96 КБ22
STM32WBA55HGWLCSP411 МБ128 КБ22
STM32WBA55UEUFBGA59512 КБ96 КБ37
STM32WBA55UGUFBGA591 МБ128 КБ37
STM32WBA65CGUFQFPN48 SMPS USB1 МБ256 КБ30
STM32WBA65CIUFQFPN48 SMPS USB2 МБ512 КБ30
STM32WBA65MGWLCSP88 SMPS USB1 МБ256 КБ54
STM32WBA65MIWLCSP88 SMPS USB2 МБ512 КБ54
STM32WBA65PGUFBGA121 SMPS USB1 МБ256 КБ86
STM32WBA65PIUFBGA121 SMPS USB2 МБ512 КБ86
STM32WBA65RGVFQFPN68 SMPS USB1 МБ256 КБ46
STM32WBA65RIVFQFPN68 SMPS USB2 МБ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).