STM32WB0: Bluetooth LE на Cortex-M0+ с частотой 64 МГц
STM32WB0 — однокристальные системы STM32 для Bluetooth LE: ядро Cortex-M0+ с частотой до 64 МГц, сопроцессор радиоканала и приёмопередатчик 2,4 ГГц с мощностью до +8 дБм. Здесь — чем различаются STM32WB05, WB06, WB07 и WB09 по даташитам ST, радио и питание, запуск через загрузчик в ПЗУ и страницы с распиновкой каждого микроконтроллера в каждом корпусе.
STM32WB0 — семейство беспроводных микроконтроллеров STMicroelectronics для Bluetooth LE: на одном кристалле ядро Arm Cortex-M0+ с частотой до 64 МГц, сопроцессор BlueNRG, который через DMA выполняет критичные по времени операции Bluetooth LE, и приёмопередатчик 2,4 ГГц (DS14591, DS14676 и DS14210, разд. 2). В отличие от двухъядерного STM32WB и от STM32WBA на Cortex-M33, здесь одно ядро Cortex-M0+, а в перечнях возможностей даташитов — Bluetooth LE 5.4 и собственные протоколы 2,4 ГГц через радиодрайвер ST. В разделе 10 страниц для 10 исполнений в 4 корпусах, 4 линейки: у каждого сочетания микроконтроллера и корпуса — своя страница со схемой выводов и номерами альтернативных функций.
Линейки STM32WB0
Значения в таблице собраны из записей базы ST: память — от наименьшего до наибольшего исполнения. Частота в записях не указана; по даташитам всех четырёх линеек ядро работает до 64 МГц. База группирует линейки по последней цифре: STM32WBx5, x6, x7 и x9.
| Линейка | Ядро, частота | Флеш-память | ОЗУ | Корпуса | Чем выделяется |
|---|---|---|---|---|---|
| STM32WBx5 | Cortex-M0+ | 192 КБ | 24 КБ | VFQFPN32, WLCSP36 | I²S, RNG, LPUART |
| STM32WBx6 | Cortex-M0+ | 256 КБ | 32 КБ | VFQFPN32, VFQFPN48, WLCSP49 | I²S, RNG, LPUART |
| STM32WBx7 | Cortex-M0+ | 256 КБ | 64 КБ | VFQFPN32, VFQFPN48, WLCSP49 | I²S, RNG, LPUART |
| STM32WBx9 | Cortex-M0+ | 512 КБ | 64 КБ | VFQFPN32, WLCSP36 | I²S, RNG, LPUART |
Даташитов у семейства три: DS14591 на STM32WB05, DS14676 на WB06 и WB07, DS14210 на WB09. Линейки различаются памятью, интерфейсами и набором функций Bluetooth LE:
| Линейка | Флеш-память | ОЗУ | Корпуса | Особенности по даташиту |
|---|---|---|---|---|
| STM32WB05 | 192 КБ | 24 КБ и 4 КБ для PKA | VFQFPN32, WLCSP36 | пеленгация (Direction finding), внешние PA и LNA; один SPI с I²S, один I²C |
| STM32WB06 | 256 КБ | 32 КБ (SRAM0, SRAM1) | VFQFPN32, VFQFPN48, WLCSP49 | внешний PA; три SPI, два из них с I²S, два I²C, интерфейс цифрового микрофона PDM |
| STM32WB07 | 256 КБ | 64 КБ (SRAM0–SRAM3) | VFQFPN32, VFQFPN48, WLCSP49 | то же, что у WB06 |
| STM32WB09 | 512 КБ | 64 КБ и 4 КБ для PKA | VFQFPN32, WLCSP36 | пеленгация, внешние PA и LNA; один SPI с I²S, один I²C |
Источники строк: DS14591 (с. 1–2), DS14676 (с. 1–2 и табл. 1), DS14210 (с. 1–2). Пеленгация и поддержка внешнего малошумящего усилителя LNA названы в перечнях возможностей WB05 и WB09, а в перечне на первой странице DS14676 для WB06 и WB07 их нет. У всех линеек есть аппаратный шифратор AES-128, ускоритель PKA, генератор случайных чисел и 1 КБ однократно программируемой памяти OTP (с. 2 даташитов).
Радио Bluetooth LE 5.4
Радио всех четырёх линеек прошло квалификацию по спецификации Bluetooth Core 5.4 и поддерживает LE 2M и LE Coded, расширенную и периодическую рекламу, изохронные каналы и шифрование рекламных данных; по описанию ST оно подходит и для сетей Bluetooth Mesh (с. 1 и разд. 2 даташитов). Общие параметры (DS14591, DS14676, DS14210, с. 1):
- скорость передачи — 2 Мбит/с, 1 Мбит/с, 500 и 125 кбит/с;
- чувствительность — −97 дБм на 1 Мбит/с и −104 дБм на 125 кбит/с;
- выходная мощность — программируется до +8 дБм на антенном выводе;
- до 128 физических соединений, встроенный симметрирующий трансформатор (балун);
- нормы ETSI EN 300 328, EN 300 440, FCC CFR47 часть 15 и ARIB STD-T66.
Для согласования антенны ST предлагает микросхему пассивных компонентов (IPD), а для управления внешним антенным коммутатором — сигналы RADIO_TX_SEQUENCE и RADIO_RX_SEQUENCE, которые у WB06 и WB07 выводятся на PA10 или PB15 и на PA8 или PA11 (DS14676, с. 18).
Питание и режимы сна
STM32WB0 питается от 1,7 до 3,6 В и работает при температуре от −40 до +105 °C; сброс по снижению питания срабатывает, когда VDD падает ниже 1,65 В (разд. 2 даташитов DS14591, DS14676 и DS14210). Встроенный понижающий преобразователь SMPS с режимом обхода есть у всех линеек (с. 2 тех же даташитов). По DS14676 (3.7.3) его выходное напряжение программируется от 1,2 до 1,90 В, он работает на частоте 4 или 8 МГц, а без SMPS микросхема работает, если его выход соединить с VDD. Тактирование — от кварца 32 МГц со встроенными подстроечными конденсаторами, для часов — кварц 32 кГц или внутренний маломощный кольцевой генератор 32 кГц (RO, с. 2 даташитов).
Кроме простоя ядра (IDLE), когда процессор остановлен, а флеш-память работает, режимов низкого потребления два: Deepstop, в котором могут работать таймер пробуждения радио и RTC, а часть ОЗУ сохраняется, и Shutdown (табл. 4 и раздел о режимах питания даташитов). В Deepstop всегда сохраняется SRAM0, а сохранение SRAM1–SRAM3 у WB06 и WB07 выбирает программа (DS14676, табл. 2). Типовые токи по первой странице даташитов:
| Параметр | WB05 | WB06, WB07 | WB09 |
|---|---|---|---|
| Shutdown, 1,8 В | 8 нА | 10 нА | 12 нА |
| Deepstop с кварцем LSE и пробуждением от радио, 1,8 В | 0,8 мкА | 0,6 мкА | 0,9 мкА |
| Пиковый ток передачи при 0 дБм, 3,3 В | 4,3 мА | 4,3 мА | 4,9 мА |
| Пиковый ток приёма, 3,3 В | 3,4 мА | 3,4 мА | 3,6 мА |
| Динамический ток в работе | 14 мкА/МГц | 16,5 мкА/МГц | 14,47 мкА/МГц |
Время работы от батареи при известных токах считает калькулятор времени работы от батареи. У STM32WB06 и WB07 флеш-памяти на 64 МГц нужен один такт ожидания — поле WAIT_STATES регистра конфигурации контроллера флеш-памяти (RM0530, с. 140).
Выводы STM32WB0: альтернативные функции и загрузка
У STM32WB06 и WB07 мультиплексор каждой линии порта рассчитан на восемь функций — AF0–AF7, номер записывают в регистры GPIOx_AFRL и GPIOx_AFRH (RM0530, с. 105). В данных ST у всех линеек STM32WB0 встречаются номера до AF7. Антенный вывод RF1, питание радиочасти VDDRF и выводы SMPS (VDDSD, VLXSD, VSSSD, VFBSD) альтернативных функций не имеют.
Загрузка у STM32WB0 устроена иначе, чем у остальных STM32: вывода BOOT0 нет, и после каждого сброса процессор начинает с загрузчика UART, записанного в первые 6 КБ из 7 КБ ПЗУ (DS14591 и DS14676, 3.3.3; DS14210, 3.4.3). Если во время аппаратного сброса на выводе PA10 высокий уровень, загрузчик ждёт команд по UART, иначе запускает программу из флеш-памяти (DS14591, 3.19.1; DS14210, 3.22; AN2606, шаблон 18). У WB06 и WB07 уровни на PA8–PA11 защёлкиваются при включении питания и видны программе в регистре PWRC_SR2 (RM0530, с. 13). Программа после старта может отобразить на адрес 0x0000 0000 флеш-память или SRAM0 битом REMAP контроллера флеш-памяти (DS14591 и DS14676, 3.5; DS14210, 3.6).
Загрузчик работает только через USART (AN2606, табл. 3), тактируется от HSI на 16 МГц, занимает 6 КБ системной памяти с адреса 0x1000 0000, использует последние 3 КБ ОЗУ и сам определяет скорость до 1 Мбит/с (AN2606, табл. 194, 196 и 198; DS14591, 3.19.1). Выводы:
| Линейка | RX | TX |
|---|---|---|
| STM32WB05 | PB0 | PA1 |
| STM32WB06, WB07 | PA8 | PA9 |
| STM32WB09 | PB0 | PA1 |
Скорость UART от выбранной частоты считает калькулятор UART.
Все STM32WB0 по корпусам
STM32WBx5 — Cortex-M0+
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32WB05KZ | VFQFPN32 | 192 КБ | 24 КБ | 20 |
| STM32WB05TZ | WLCSP36 | 192 КБ | 24 КБ | 20 |
STM32WBx6 — Cortex-M0+
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32WB06CC | WLCSP49 | 256 КБ | 32 КБ | 29 |
| STM32WB06CC | VFQFPN48 | 256 КБ | 32 КБ | 32 |
| STM32WB06KC | VFQFPN32 | 256 КБ | 32 КБ | 20 |
STM32WBx7 — Cortex-M0+
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32WB07CC | WLCSP49 | 256 КБ | 64 КБ | 29 |
| STM32WB07CC | VFQFPN48 | 256 КБ | 64 КБ | 32 |
| STM32WB07KC | VFQFPN32 | 256 КБ | 64 КБ | 20 |
STM32WBx9 — Cortex-M0+
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32WB09KE | VFQFPN32 | 512 КБ | 64 КБ | 20 |
| STM32WB09TE | WLCSP36 | 512 КБ | 64 КБ | 20 |
Перед разводкой платы сверяйте выводы с даташитом своего исполнения: в нём указаны допустимые напряжения на выводах, токи, схема согласования антенны и номиналы внешних компонентов SMPS.
Частые вопросы
Чем STM32WB0 отличается от STM32WB?
Устройством. У STM32WB55 два ядра: приложение работает на Cortex-M4, а радиостек — на отдельном Cortex-M0+ (DS11929). У STM32WB0 ядро одно — Cortex-M0+ до 64 МГц, — а критичные по времени операции Bluetooth LE выполняет сопроцессор BlueNRG, работающий через DMA (DS14591, DS14676, DS14210, разд. 2). Радио у WB0 — Bluetooth LE 5.4, а для собственных протоколов на 2,4 ГГц ST даёт радиодрайвер.
Как запустить загрузчик STM32WB0?
Подать высокий уровень на PA10 во время аппаратного сброса. После каждого сброса процессор начинает с загрузчика UART в ПЗУ; если PA10 в высоком уровне, загрузчик ждёт команды, иначе запускает программу из флеш-памяти (DS14591, 3.19.1; DS14210, 3.22; AN2606, шаблон 18). Выводы UART: у WB05 и WB09 — PB0 (RX) и PA1 (TX), у WB06 и WB07 — PA8 (RX) и PA9 (TX) (AN2606, табл. 194, 196 и 198).
Чем STM32WB07 отличается от STM32WB06?
Объёмом ОЗУ: у WB07 четыре блока SRAM по 16 КБ — 64 КБ, у WB06 только SRAM0 и SRAM1 — 32 КБ (DS14676, табл. 1). Флеш-память у обеих 256 КБ, корпуса одни и те же — VFQFPN32, VFQFPN48 и WLCSP49, и описаны они в одном даташите DS14676.
Какую мощность и чувствительность даёт радио STM32WB0?
Выходная мощность программируется до +8 дБм на антенном выводе, чувствительность приёмника — −97 дБм на скорости 1 Мбит/с и −104 дБм на 125 кбит/с (режим LE Coded для большой дальности). Скорости — 2 Мбит/с, 1 Мбит/с, 500 и 125 кбит/с. Так у всех четырёх линеек (DS14591, DS14676, DS14210, с. 1).
Смотрите также
- STM32Распиновки по корпусам, альтернативные функции, похожие по выводам МК
- STM32WBCortex-M4 до 64 МГц и Cortex-M0+ для радио 2,4 ГГц: WB55, WB35, WB15, WB50 и WB30 — ядра, загрузка и распиновки
- STM32WBACortex-M33 до 100 МГц с радио 2,4 ГГц: WBA52–WBA55 и WBA62–WBA65 — радио, SMPS, загрузка и распиновки
- STM32WL3Cortex-M0+ до 64 МГц с радио до 958 МГц: WL30, WL31, WL33 и WL3R — диапазоны, мощность, загрузчик и распиновки
- Время работы от батареимА·ч, средний ток, сон МК, Вт·ч
- Скорость UARTUBRR, BRR, TH1 и ошибка скорости
- Загрузчик (bootloader)Прошивка МК без программатора через UART или USB
- OTP-памятьОднократно программируемая память: ключи, настройки, необратимые биты