Мультисистемный беспроводной BLE/ZigBee/Thread-микроконтроллер STM32WB55

3 декабря

автомобильная электроникаучёт ресурсовсветотехникапотребительская электроникаинтернет вещейST Microelectronicsстатьяинтегральные микросхемыбеспроводные технологиисредства разработки и материалы

Александр Калачев (г. Барнаул)

Серия многоядерных беспроводных микроконтроллеров STM32WB производства STMicroelectronics – прекрасная основа для разнообразных устройств IoT. Большой объем памяти и относительно высокая производительность позволяют реализовывать сложные приложения интернета вещей.

В представлении многих интернет вещей (Internet of Things, IoT) – это чайник, микроволновка или холодильник, оснащенные Wi-Fi и выходом в интернет. Однако все намного сложнее и интереснее. На сегодняшний день под понятием «интернет вещей» скрывается гораздо более широкий спектр беспроводных сетевых технологий, значительная часть которых нацелена на создание устойчивой, масштабируемой, самоорганизующейся сетевой инфраструктуры, формирующей единое информационное пространство для решения широкого спектра задач. Технологии локальных и глобальных сетей в интернете вещей служат для глобального доступа к устройствам IoT. Самое интересное происходит на уровне так называемой «последней мили» – собственно, технологии маломощных беспроводных сетей и формируют связи между «вещами».

Следует понимать, что не существует, да и не может существовать единой технологии интернета вещей – это практически всегда совокупность совместно работающих технологий, протоколов и устройств. В идеале отдельные устройства или их совокупности должны свободно интегрироваться в инфраструктуру сети IoT. Безусловно, тут следует помнить, что при решении различных задач будут появляться ограничения, связанные с «видимостью» сетей, ограничения на свободу подключения к сети и получения информации от сети. Ввиду большого разнообразия практических задач, решаемых сетями IoT, существует достаточно большое количество сетевых протоколов и приложений – как проприетарных, так и стандартизованных.

Проприетарные протоколы часто бывают узкоспециализированными по своему назначению и набору аппаратных средств (вплоть до аппаратных решений, выпускаемых одним производителем), что в долгосрочной перспективе может привести к повышенным коммерческим рискам.

Стандартизованные протоколы в этом смысле позволяют быть относительно независимыми от производителей, упрощают интеграцию различных устройств в сети, позволяют, при необходимости, наращивать функциональность или же создавать собственную реализацию протокола.

Наиболее популярные стандартные протоколы – ZigBee, Thread, Bluetooth (в версии 5), – позволяют создавать и развертывать сети со сложной топологией и достаточно большим числом узлов, и при этом большинство узлов указанных сетей может работать от автономных небольших источников питания [1…3]. Следование стандартам также существенно упрощает жизнь пользователям и разработчикам приложений и сервисов, использующих информационное пространство IoT.

Новинка от STMicroelectronics – STM32WB

В последнее время производители электронных компонентов для беспроводных сетей предлагают универсальные решения, позволяющие на одной и той же аппаратной платформе запускать протоколы ZigBee, Thread или Bluetooth. Одним из таких решений является серия беспроводных микроконтроллеров STM32WB55 [4].

STM32WB55 – одни из первых на рынке мультипротокольных многоядерных беспроводных микроконтроллеров, поддерживающих стандарты Bluetooth™5 и IEEE 802.15.4. В составе STM32WB55 два 32-разрядных процессорных ядра архитектуры ARM:

  • ядро ARM Cortex-M4 с тактовой частотой 64 МГц – процессор приложений, на котором исполняются верхние уровни сетевых протоколов и прикладные задачи;
  • ядро ARM Cortex-M0+ на тактовой частоте 32 МГц, предназначенное для управления радиотрактом и выполнения нижних уровней сетевых стеков.

Благодаря двум ядрам упрощается решение задач, связанных с работой радиотракта, задач управления ресурсами контроллера и периферией, а самое главное – взаимодействие прикладных задач и сетевого стека.

Контроллеры серии STM32WB построены по передовым технологиям STMicroelectronics, имеют тот же уровень энергопотребления, что и ультрамалопотребляющая серия STM32L4, и, что традиционно для семейства STM32, широкий набор периферийных устройств.

Основные технические особенности STM32WB55VG (рисунок 1):

Рис. 1. Блочная структурная схема STM32WB55VG

Рис. 1. Блочная структурная схема STM32WB55VG

  • Радиотракт:
    • приемопередатчик 2,4 GHz Bluetooth® v5.0 и IEEE 802.15.4-2011 PHY/MAC;
    • чувствительность RX -96 дБм (Bluetooth® Low Energy at 1 Mbps), -100 дБм (802.15.4);
    • программируемая выходная мощность до +6 дБм с шагом 1 дБ;
    • интегрированный согласующий фильтр (балун) для снижения числа внешних компонентов;
    • поддержка скорости передачи данных до 2 Mbps;
    • выделенный процессор Arm® 32-bit Cortex® M0+ для стека радио;
    • измерение уровня сигнала RSSI;
    • возможность подключения внешнего усилителя;
    • соответствие ETSI EN 300 328, EN 300 440, FCC CFR47 Part 15 и ARIB STD-T66.
  • Ультрамалое потребление и подсистема управления питанием и энергопотреблением:
    • напряжение питания 1,71…3,6 В;
    • 30 нА в режиме shutdown;
    • 600 нА в режиме Standby + RTC + 32 кбайт RAM;
    • 1,8 мкA в режиме Stop + RTC + 256 кбайт RAM;
    • активный режим MCU + RF (SMPS ON): < 50 мкA/MГц;
    • прием (RX): 3,8 мА;
    • передача (TX) при 0 дБм: 5,5 мА.
  • Процессорная система:
    • ядро: Arm® 32-bit Cortex®-M4 CPU с FPU;
    • ускоритель (ART Accelerator™) без тактов ожидания Flash;
    • частота: до 64 МГц;
    • MPU;
    • 80 DMIPS;
    • поддержка инструкций DSP.
  • Система питания и защита:
    • высокоэффективный встроенный понижающий SMPS;
    • безопасный малопотребляющий BOR (brownout reset) с пятью устанавливаемыми порогами;
    • ультрамалопотребляющий детектор POR/PDR;
    • программируемый детектор напряжения (PVD);
    • режим работы от батареи (VBAT mode) с активным таймером часов реального времени (RTC) и сохранение регистров.
  • Система тактирования:
    • кварцевый осциллятор 32 МГц с интегрированными подстроечными конденсаторами (CPU clock);
    • кварцевый осциллятор 32 кГц для часов реального времени RTC (LSE);
    • внутренний малопотребляющий генератор 32 кГц (±5%) RC (LSI1);
    • внутренний малопотребляющий генератор 32 кГц (стабильность ±500 ppm) RC (LSI2);
    • внутренний мультискоростной генератор 0,1…48 MГц с автоматической калибровкой от LSE (точность выше ±0,25%);
    • высокоскоростной встроенный RC-генератор 16 MГц с заводской калибровкой (±1%);
    • 2x PLL для тактирования ядра системы, USB, SAI и ADC.
  • Система памяти:
    • до 1 Mбайт Flash с защитой сектора (PCROP) от операций R/W для гарантий невмешательства в работу стеков Bluetooth® Low Energy и 802.15.4 SW stack;
    • до 256 кбайт RAM, включая 64 кбайт с аппаратным контролем четности;
    • регистры 20×32 бит с сохранением значений (Backup Register);
    • поддержка загрузчика (Bootloader) для USART, SPI, I2C и USB;
    • обновление по эфиру OTA (Over the Air) Bluetooth® Low Energy и 802.15.4;
    • интерфейс памяти Quad SPI с режимом XIP (исполнение кода из Flash).
  • Многофункциональная аналоговая периферия, сохраняющая работоспособность при напряжениях до 1,62 В:
    • 12-битный АЦП 4,26 Msps с разрешением до 16 бит (hardware oversampling), 200 мкA/Msps;
    • двухканальный малопотребляющий компаратор;
    • прецизионный источник опорного напряжения 2,5 В или 2,048 В с буфером;
    • датчик температуры.
  • Системная периферия:
    • межпроцессорный контроллер (IPCC) для коммуникации с радиоядром BLE/802.15.4;
    • аппаратные семафоры для разделения ресурсов между ядрами;
    • 2x DMA-контроллеры (7 каналов каждый) поддерживают АЦП, SPI, I2C, USART, QSPI, SAI, AES, Timers;
    • 1x USART (ISO 7816, IrDA, SPI-мастер, Modbus и режим Smartcard);
    • 1x LPUART (Low Power);
    • 2x SPI 32 Мбит/с;
    • 2x I2C (SMBus/PMBus);
    • 1x SAI (двухканальный);
    • 1x USB 2.0 FS-устройство, работа без кварца, BCD и LPM;
    • контроллер емкостных кнопок (Touch Sensing), имеющий до 28 каналов;
    • LCD 8×40 с повышающим преобразователем питания;
    • таймер с расширенными возможностями 1x 16 бит, четыре канала;
    • таймер 2x 16 бит, два канала;
    • таймер 1x 32 бит, четыре канала;
    • таймер 2x 16 бит с ультрамалым потреблением;
    • независимый таймер 1x Systick;
    • независимый 1x Watchdog;
    • независимый 1x оконный Watchdog.
  • Защита и идентификация:
    • безопасная загрузка стеков (SFI) Bluetooth® Low Energy и 802.15.4 SW;
    • аппаратное шифрование AES 256 бит;
    • хранилище и сервис управления пользовательскими ключами;
    • HW Public Key Authority (PKA);
    • Криптографические алгоритмы: RSA, Diffie-Helman, ECC over GF (p);
    • генератор случайных чисел (TRNG);
    • защита секторов памяти от записи и чтения (PCROP);
    • вычислитель контрольных сумм (CRC);
    • уникальный идентификатор в каждой микросхеме (96 бит ID);
    • уникальный идентификатор (64 бит ID) для MAC-адреса 15.4 и EUI BLE;
    • скоростные порты ввода-вывода (до 72 fast I/Os, 70 совместимы с 5 В).
  • Поддержка процесса разработки:
    • последовательный интерфейс отладки (SWD) JTAG для процессорного ядра ARM CortexM4;
    • функционал Application cross trigger с поддержкой ввода и вывода;
    • встроенный режим Trace Macrocell™ для приложения;
    • Корпуса UFQFPN48, VFQFPN68, WLCSP100 (ECOPACK2®-совместимый).
  • Температурный диапазон -40…85/105°C.

Возможности STM32WB

Основные представители семейства STM32WB сравниваются в таблице 1. Следует отметить, что благодаря хорошему соотношению «цена/производительность» и традиционно широкому набору периферийных устройств микроконтроллеры семейства STM32 являются очень популярными среди разработчиков встраиваемой электроники и устройств автоматики. Аналогично другим представителям семейства, STM32WB имеют достаточно большие объемы оперативной и постоянной памяти: даже в минимальной конфигурации объем Flash-памяти составляет 256 кбайт, а оперативной памяти – 128 кбайт.

Таблица 1. Номенклатура семейства STM32WB на текущий момент (ноябрь 2019)

Объем памяти
Flash/ОЗУ, кбайт
Наименование
1000/256 STM32WB55CG STM32WB55RG STM32WB55VG
512/256 STM32WB55CE STM32WB55RE STM32WB55VE
256/128 STM32WB55CC STM32WB55RC STM32WB55VC
Корпус 48-pin UQFN 68-pin VQFN 100-pin WLCSP
Шаг выводов, мм 0,5 0,4 0,4

Одной из функций IoT-устройств (необязательной и не для всех) является взаимодействие с пользователем или персоналом, обслуживающим IoT-сеть – сервисные кнопки или панели, отображающие информацию или режимы работы.

В состав периферийных устройств STM32WB55 входит контроллер ЖК-дисплея с восемью общими линиями и 44 сегментными линиями (конкретное число доступных линий зависит от корпусного исполнения микросхемы), что позволяет управлять 176 (44х4) или 320 (40х8) элементами изображения. Контроллер автоматически генерирует противофазные сигналы на линиях для управления поляризацией сегментов ЖК-дисплея. Отдельно предусмотрен вывод, формирующий напряжение для управления контрастностью изображения на дисплее. Двойной буфер позволяет изменять содержимое регистров ЖК-контроллера, включая регистры изображения, без влияния на отображаемую картинку.

ЖК-контроллер может продолжать работу даже в режимах с пониженным энергопотреблением: Sleep, Low-power run, Low-powers leep, Stop. При необходимости большей экономии энергии контроллер может быть отключен.

Для привлечения внимания пользователя или отображения режима работы 1, 2, 3, 4, 8 или все точки (сегменты) изображения могут быть запрограммированы на мигание с заданной частотой (0,5 Гц, 1, 2 Гц или 4 Гц).

Выводы, отведенные ЖК-контроллеру, также могут быть сконфигурированы в качестве обычных линий ввода-вывода или для альтернативных функций.

Вторым периферийным устройством, полезным для многих устройств IoT, взаимодействующих с пользователями, является емкостной сенсорный контроллер, полностью поддерживаемый библиотекой STM Touchsensing. Общее число емкостных чувствительных каналов достигает 21, до семи каналов могут быть опрошены параллельно. Из доступных опций:

  • функция расширения спектра для повышения надежности системы в шумной обстановке;
  • функции сенсора приближения;
  • режимы сенсорной клавиши, линейного и поворотного сенсора.

STM32WB55 поддерживает сеть типа Mesh 1.0 стандарта Bluetooth, а также профили и типовые функции стека BLE, такие как:

  • поддержка GAP – роли центрального, периферийного, наблюдающего и широковещательного узлов;
  • одновременное выполнение ролей;
  • выполнение функций ведущего/ведомого узлов;
  • ATT/GATT – роли клиента и сервера.

Поддержка стандарта 802.15.4 позволяет работать в проприетарных сетях на его базе, в частности, в сетях стандартов ZigBee и Thread.

Разработчиков, несомненно, заинтересует и будет очень выгодным в свете применения данных контроллеров для узлов IoT возможность одновременной работы и в сети BLE, и в сетях стандарта 802.15.4.

Радиочасть STM32WB состоит из радиотракта 2,4 ГГц (2.4 GHz RF frontend) и контроллеров физических уровней Bluetooth® Low Energy (BLE) и IEEE 802.15.4. Управляются они процессорным ядром ARM Cortex M0+ (в документации STM обозначается как CPU2). Взаимодействие между программным обеспечением, выполняющимся на вспомогательном ядре и на основном ядре ARM Cortex M4 (CPU1), осуществляется посредством системы сообщений Mailbox (рисунок 2).

Рис. 2. Протоколы, поддерживаемые STM32WB, их распределение по процессорным ядрам и взаимодействие между собой

Рис. 2. Протоколы, поддерживаемые STM32WB, их распределение по процессорным ядрам и взаимодействие между собой

Двухъядерная архитектура позволяет разделить задачи работы устройства в сети и выполнения прикладной задачи. За счет этого подход к разработке приложений для STM32WB несколько отличается от привычного.

Для приложений BLE задача, выполняемая на ядре CPU1, обрабатывает и подготавливает данные, которые необходимо передать в эфир.

CPU2 содержит контроллер LE и хост LE, необходимые для управления взаимодействием между канальным и физическим уровнями в реальном времени, и имеет в своем составе:

  • диспетчер питания для управления режимом малого энергопотребления;
  • систему трассировки для режимов отладки;
  • почтовый ящик/IPCC для взаимодействия со стеком BLE (LL, GAP, GATT).

Также CPU2 может быть использован как HCI-сопроцессор. В этом случае пользователь может либо реализовать свое собственное приложение HCI, либо использовать существующий стек BLE-хоста с открытым исходным кодом.

Почтовый ящик обеспечивает интерфейс как для канала BLE, так и для канала системы. Стек BLE-хоста отвечает за создание буфера команд для отправки по каналу BLE в почтовом ящике и должен предоставлять интерфейс для сообщения о событиях, полученных через почтовый ящик. В дополнение к адаптации стека хоста BLE через почтовый ящик пользователь должен уведомить драйвер почтового ящика, когда может быть освобожден асинхронный пакет.

Что касается стека протоколов Open Thread, то он выполняется на ядре CPU2 и предоставляет прикладному приложению на ядре CPU1 набор программных интерфейсов (API) для построения Thread-приложения.

Для CPU2 доступны три версии прошивки Thread-протокола:

  • stm32wb5x_Thread_FTD_fw – устройство поддерживает все роли Tread-устройства, за исключением граничного маршрутизатора: ведущий, маршрутизатор, конечное устройство, конечное устройство со спящим режимом;
  • stm32wb5x_Thread_MTD_fw – поддерживаются только роль конечного устройства и конечного устройства со спящим режимом (по сравнению с предыдущей прошивкой, данная версия занимает меньше памяти);
  • stm32wb5x_BLE_Thread_fw – поддерживается одновременная работа в сетях Thread и BLE.

Прошивка STM32wb5x_Mac_802_15_4_fw для CPU2 позволяет приложению на CPU1 напрямую работать с MAC-уровнем 802.15.4 и реализовывать собственные проприетарные протоколы или сетевые приложения.

Необходимо учитывать следующее: весь код, выполняемый на CPU2 (радиоядре) предоставляется STM в виде зашифрованных бинарных образов и в глазах разработчика представляет собой «черный ящик» (исходные тексты не предоставляются, изменений со стороны программиста не предусматривается) с определенным интерфейсом (сообщения – Mailbox).

Экосистема STM32WB-разработчика

Для контроллеров семейства STM32 существует достаточно большой выбор коммерческих и свободных инструментов для разработки и отладки программного обеспечения – от сред разработки (IDE) до операционных систем и сетевых стеков. STMicroelectronics предлагает полный спектр инструментов для STM32WB (таблица 2):

  • среда разработки;
  • инструменты для конфигурации и тестирования;
  • программатор;
  • встраиваемое программное обеспечение;
  • оценочный набор STM32WB55 Nucleopack.

Все примеры в STM32 Cube WB (кроме ZigBee – они только для EW ARM) представлены для трех сред разработки. Для некоторых сред может понадобиться установка дополнения для поддержки STM32WB, они, как правило, доступны на сайте производителя ПО:

  • EW ARM, версия не ниже 8.3.0;
  • MDK ARM (Keil), версия не ниже 5.06.750;
  • System Work Bench, версия не ниже 4.0.0.

Таблица 2. Программное обеспечение STMicroelectronics для STM32WB

STM32CubeIDE Интегрированная среда разработки (IDE) для контроллеров семейства STM32
STM32CubeMonRF Инструментарий для настройки и тестирования параметров радиотракта беспроводных контроллеров STM32
STM32CubeMX Конфигуратор периферийных устройств, линий ввода-вывода и генератор кода инициализации STM32
STM32CubeProgrmamer Программатор STM32
STM32CubeWB Программный пакет встраиваемого программного обеспечения STM32Cube для контроллеров серии STM32WB – драйвера уровней HAL и LL, USB, поддержка файловой системы, RTOS, примеры

Настройка рабочего окружения для STM32WB выглядит следующим образом.

Скачивается и устанавливается среда разработки STM32CubeIDE (потребуется несложная процедура регистрации на сайте STM, если это не было сделано ранее). STM32CubeIDE [5] включает в себя стандартные и расширенные функции отладки, включая отображение регистров процессорного ядра, памяти и периферийных регистров, а также просмотр переменных в реальном времени, интерфейс Serial Wire Viewer и анализатор неисправностей. В STM32CubeIDE входят анализаторы, которые предоставляют разработчику полезную информацию о состоянии проекта (статус компиляции, предупреждения и так далее) и требованиях к памяти.

Следующим шагом будет установка STM32CubeMX [6] – визуального инструмента для генерации кода инициализации периферийных узлов, линий ввода-вывода, оценки энергопотребления.

В STM32CubeMX через опцию «Install or remove embedded software packages» можно выбрать актуальную версию пакета STM32CubeWB (рисунок 3).

Рис. 3. Установка пакета STM32CubeWB в STM32CubeMX

Рис. 3. Установка пакета STM32CubeWB в STM32CubeMX

В STM32CubeWB входит комплект встраиваемого программного обеспечения для STM32WB в виде двоичных образов и исходных текстов, содержащий драйверы уровней HAL иLL, драйверы и библиотеки для работы с периферийными устройствами, образы стеков Bluetooth™ 5, Open-Thread, ZigBee 3.0, 802.15.4, а также примеры программных проектов различного уровня от простого управления периферией до сетевых приложений (рисунок 4), содержимое директорий с фирменными прошивками стеков протоколов, примеров высокоуровневых сетевых приложений и приложений, задействующих операционные и файловые системы.

Рис. 4. Основные возможности STM32CubeWB

Рис. 4. Основные возможности STM32CubeWB

Примеры для BLE:

  • примеры сенсорных устройств BLE_Blood Pressure, BLE_Health Thermometer, BLE_Heart Rate, BLE_Proximity;
  • приложение-замена кабеля и работа BLE в прозрачном режиме – BLE_Cable Replacement;
  • интерфейсное HID-устройство BLE_Hid;
  • приложения, демонстрирующие работу BLE mesh-сети управления освещением – BLE_Mesh Lighting Demo;
  • вариант сетевого процессора с поддержкой AT-команд – BLE_Multi AppAt;
  • Thread-примеры – Ble_Thread_Static – демонстрация одновременной работы Thread и BLE (так называемый concurrent mode);
  • примеры Thread – устройства различного функционала (MTD, FTD), примеры передачи больших блоков данных.

В последней версии (на данный момент это 1.3.0) добавлена поддержка всех трех типов устройств ZigBee, и в качестве образца – реализация mesh-сети на примере ZigBee-кластера On/Off.

Для работы над собственными проприетарными протоколами идеальны базовые примеры FFD- и RDF-устройств сети стандарта 802.15.4 – Mac_802_15_4_FFD и Mac_802_15_4_RFD.

Для изучения возможностей примеров приложений и тестирования собственных приложений BLE и BLE-Thread предлагается набор мобильных приложений, доступных в магазинах приложений для платформ Android и IOS – GooglePlay и AppStore соответственно (рисунок 5).

Рис. 5. Мобильные приложения STMicroelectronics для работы с BLE и BLE-Thread-примерами

Рис. 5. Мобильные приложения STMicroelectronics для работы с BLE и BLE-Thread-примерами

Для точной настройки радиопараметров тестирования работы радиоканала или создания собственного профиля рекомендуется загрузить и установить инструментарий STM32CubeMonitor-RF.

При работе с прошивками понадобится приложение STM32CubeProgrammer – единственная возможность изменить прошивку для радиоядра возможна именно через данное приложение.

Из аппаратных средств на текущий момент доступен демонстрационный набор P-Nucleo-WB55 (рисунок 6), состоящий из платы MB1355C, выполненной в форм-факторе Nucleo и платы MB1293C в формате USB dongle (на профессиональном жаргоне такие платы называют «свисток»).

Рис. 6. Демонстрационный набор STM32WB55 NucleoPack

Рис. 6. Демонстрационный набор P-Nucleo-WB55

Плата MB1355C (Nucleo68) имеет на борту:

  • микроконтроллер STM32WB55RGV6 (256 кбайт ОЗУ, 1 Мбайт Flash) в корпусе VFQFPN68;
  • три пользовательских (доступных прикладной задаче) светодиода;
  • три кнопки плюс кнопка сброса;
  • два USB-порта программатора и USB-порт контроллера STM32WB55;
  • разъемы расширения Arduino™ UnoV3 и STmorpho (рисунок 7);
  • печатную антенну и PCB-трассировку для монтажа SMA-коннектора;
  • сокет с батареей CR2032;
  • возможность питания от USB, внешнего источника, батареи на плате;
  • встроенный программатор-отладчик ST-LINK/V2-1 с реконфигурируемым USB-портом (режимы mass storage/virtual COM port/debug port).

Рис. 7. Распиновка разъемов плат из набора STM32WB55 NucleoPack

Рис. 7. Распиновка разъемов плат из набора STM32WB55 NucleoPack

Плата USBdongle содержит следующие компоненты:

  • микроконтроллер STM32WB55CGU6 в корпусе UFQFPN48;
  • переключатель режимов загрузки (исполнение кода/обновление прошивки);
  • три светодиода;
  • одну пользовательскую кнопку;
  • печатную антенну и UFL-разъем для внешней антенны.

Как правило, после установки вышеназванного программного обеспечение проблем с подключением и определением оценочных плат STM32WB55 NucleoPack к ПК не возникает.

Загрузка и тестирование проектов

Наиболее простой вариант импорта примеров приложений в IDE – через меню File-Open Projects from File System… и переход в директорию с установленной библиотекой STM32CubeWB. По умолчанию STM32CubeMX помещает ее по следующему пути:

C:\Users\{CurrentUser}\STM32Cube\Repository\STM32Cube_FW_WB_V1.3.0\Projects\.

Например, для загрузки примеров BLE для платы MB1355C необходимо выбрать путь (рисунок 8):

C:\Users\1111\STM32Cube\Repository\STM32Cube_FW_WB_V1.3.0\Projects\P-NUCLEO-WB55.Nucleo\Applications\BLE.

Рис. 8. Импорт проектов в STM32CubeIDE

Рис. 8. Импорт проектов в STM32CubeIDE

После импорта и конвертации к текущей версии IDE (что происходит автоматически) проекты доступны для компиляции и отладки.

Пример компиляции проекта BLE_Health Thermometer приведен на рисунке 9. Загрузка скомпилированного проекта в плату возможна или через IDE (посредством отладки) или через STM32CubeProgrammer. Так как платы «из коробки» набора STM32WB55 NucleoPack прошиты демонстрационным приложением, использующим BLE-протокол, то изменять прошивку радиоядра в данном случае не требуется. Если запускать приложения других стеков, например, Thread, ZigBee, 802.15.4, то потребуется перепрошивка CPU2, последовательность действий описана в документе: C:\Users\{CurrentUser}\STM32Cube\Repository\STM32Cube_FW_WB_V1.3.0\Projects\STM32WB_Copro_Wireless_Binaries\Release_Notes.html.

Рис. 9. Пример компиляции проекта BLE_Health Thermometer

Рис. 9. Пример компиляции проекта BLE_Health Thermometer

Работу BLE-термометра теперь можно наблюдать, запустив на смартфоне приложение STBLEProfile. На рисунке 10 показан процесс обнаружения, подключения и отображения данных с платы с прошивкой термометра.

Рис. 10. Подключение к MB1355C с прошивкой BLE_Health Thermometer при помощи приложения ST BLE Profile

Рис. 10. Подключение к MB1355C с прошивкой BLE_Health Thermometer при помощи приложения ST BLE Profile

Подключившись к виртуальному СОМ-порту, с помощью терминальной программы можно наблюдать вывод диагностических сообщений (рисунок 11).

Рис. 11. Результат вывода диагностических сообщений в терминал в ходе работы приложения

Рис. 11. Результат вывода диагностических сообщений в терминал в ходе работы приложения

Заключение

Серия STM32WB представляет собой довольно интересную платформу, являющуюся основой для разнообразных устройств IoT. Большой объем памяти и относительно высокая производительность позволяют реализовывать сложные приложения. Наличие выделенного ядра для управления радиотрактом дополнительно экономит основную память, поскольку значительная часть кода стека протоколов находится в памяти радиоядра.

Стиль программирования STM32WB отличается от работы с привычными STM32, но не кардинально. Развитая программная инфраструктура, широкий выбор инструментов и примеров приложений позволяют разработчику относительно легко освоить путь создания проектов на основе STM32WB.

Литература 

  1. Святослав Зубарев. ZigBee VS Thread: Технологии построения беспроводных mesh-сетей
  2. Практическое сравнение ячеистых сетей (Thread, ZigBee, BLEmesh)
  3. STM32WB Series
  4. STM32CubeIDE
  5. STM32CubeMX
•••

Наши информационные каналы

О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее

Товары
Наименование
STM32WB55CGU7 (ST)
STM32WB55CGU6 (ST)
STM32WB55CСU6 (ST)
STM32WB55CGU6TR (ST)
STM32WB55CEU6 (ST)
STM32WB55CEU6TR (ST)
STM32WB55CCU7 (ST)
STM32WB55CCU6 (ST)
STM32WB55CCU6TR (ST)
P-NUCLEO-WB55 (ST)