1. Introduction
The STM32CubeWBa MCU Package[1] provides software components running on STM32WBA MCUs.
For all examples provided with the package, the following integrated development environments are supported:
- STMicroelectronics integrated development environment for STM32 products (STM32CubeIDE)
- IAR Systems® IAR Embedded Workbench® for Arm® (EWARM)
- Keil® microcontroller development kit (MDK-ARM)
The Firmware Package for the STM32WBA series is also available on STM32CubeWBA github[2].
2. STM32WBA Zigbee software architecture
The single Core Arm® Cortex®-M33 STM32WBA Zigbee solution is designed to develop application firmware including clusters and smart energy objects on top of the Zigbee Stack and 802.15.4 MAC & PHY, as depicted in the figure below.
STM32WBA Zigbee architecture |
---|
Memory system:
- STM32WBA5xxG devices contain:
- 1-Mbyte flash memory from address offset 0x00 0000 to 0x0F FFFF
- SRAM1 64-Kbyte from address offset 0x0 0000 to 0x0 FFFF. (continuous SRAM space with SRAM2)
- SRAM2 64-Kbyte
3. STM32WBA Zigbee applications
The STM32WBA utilizes the Zigbee stack R23, which is available in two library types, FFD and RFD.
ZigBee Cluster Library ZCL8 is provided as a library, with the option to receive the source code under a non-disclosure agreement (NDA).
Different operating systems are supported:
- Bare metal
- FreeRTOS
- ThreadX
The following Zigbee applications are delivered as source codes. These applications are available on P-NUCLEO-WBA55 boards. The purpose of these applications is mainly to provide simple examples that highlight the use of specific clusters.
Application | Description | |
---|---|---|
Zigbee Clusters | Zigbee_Thermostat_Client_Coord Zigbee_Thermostat_Server_Router |
How to use thermostat cluster on a centralized Zigbee network |
Zigbee_TempMeas_Client_Coord Zigbee_TempMeas_Server_Router |
How to use device temperature measurement cluster on a centralized Zigbee network | |
Zigbee_Diagnostic_Server_Coord Zigbee_Diagnostic_Client_Router |
How to use diagnostic cluster on a centralized Zigbee network | |
Zigbee_DoorLock_Server_Coord Zigbee_DoorLock_Client_Router |
How to use door lock cluster on a centralized Zigbee network | |
Zigbee_IAS_WD_Server_Coord Zigbee_IAS_WD_Client_Router |
How to use IAS WD cluster on a centralized Zigbee network | |
Zigbee_MeterId_Server_Coord Zigbee_MeterId_Client_Router |
How to use meter identification cluster on a centralized Zigbee network | |
Zigbee_OnOff_Server_Coord Zigbee_OnOff_Client_Router Zigbee_OnOff_Client_SED |
How to use OnOff cluster on a centralized Zigbee network ThreadX version available | |
Zigbee_OnOffSwCfg_Client_Coord Zigbee_OnOffSwCfg_Server_Router |
How to use the OnOff Switch Config cluster on a centralized Zigbee network | |
Zigbee_OccupSensing_Client_Coord Zigbee_OccupSensing_Server_Router |
How to use Occupancy Sensing cluster on a centralized Zigbee network | |
Zigbee_PowerProfile_Client_Coord Zigbee_PowerProfile_Server_Router |
How to use power profile cluster on a centralized Zigbee network | |
Zigbee_PressMeas_Server_Coord Zigbee_PressMeas_Client_Router |
How to use pressure measurement cluster on a Centralized Zigbee network | |
Zigbee_Messaging_Client_Coord Zigbee_Messaging_Server_Router |
How to use messaging cluster on a Centralized Zigbee network | |
Zigbee_PowerConfig_Client_Coord Zigbee_PowerConfig_Server_SED |
How to use the Power Config cluster on a centralized Zigbee network | |
Zigbee_PressMeas_Client_Coord Zigbee_PressMeas_Server_Router |
How to use the Pressure Measure cluster on a centralized Zigbee network | |
Others | Zigbee_OnOff_Client_Distrib Zigbee_OnOff_Server_Distrib |
How to use OnOff cluster on a distributed Zigbee network |
Zigbee_APS_Coord Zigbee_APS_Router |
How to use APSDE interface on a customer application | |
Zigbee_FindBind_Coord Zigbee_FindBind_OnOff_Router Zigbee_FindBind_IAS_Router |
How Finding and Binding (F&B) feature works on a Zigbee centralized network | |
Zigbee_Basic_Client_Coord Zigbee_Basic_Server_Router |
How to use the basic attributes of an OnOff cluster |