STM32WB5MM-DK

Overview

The STM32WB5MM-DK Discovery kit is designed as a complete demonstration and development platform for the STMicroelectronics STM32W5MMG module based on the Arm® Cortex®-M4 and Arm® Cortex®-M0+ cores. The STM32 device is a multi-protocol wireless and ultra-low-power device embedding a powerful and ultra-low-power radio compliant with the Bluetooth® Low Energy (BLE) SIG specification v5.2 and with IEEE 802.15.4-2011.

STM32WB5MM-DK supports the following features:

  • STM32WB5MMG (1-Mbyte Flash memory, 256-Kbyte SRAM)
    • Dual-core 32‑bit (Arm® Cortex®-M4 and M0+)

    • 2.4 GHz RF transceiver

    • 0.96-inch 128x64 OLED display

    • 128-Mbit Quad-SPI NOR Flash Memory

    • Temperature sensor

    • Accelerometer/gyroscope sensor

    • Time-of-Flight and gesture-detection sensor

    • Digital microphone

    • RGB LED

    • Infrared LED

    • 3 push-buttons (2 users and 1 reset) and 1 touch key button

  • Board connectors:
    • STMod+

    • ARDUINO® Uno V3 expansion connector

    • USB user with Micro-B connector

    • TAG10 10-pin footprint

  • Flexible power-supply options:
    • ST-LINK/V2-1 USB connector,

    • 5 V delivered by:
      • ARDUINO®,

      • external connector,

      • USB charger, or USB power

  • On-board ST-LINK/V2-1 debugger/programmer with USB re-enumeration
    • Virtual COM port and debug port

More information about the board can be found in STM32WB5MM-DK on www.st.com.

Hardware

STM32WB5MMG is an ultra-low-power and small form factor certified 2.4 GHz wireless module. It supports Bluetooth® Low Energy 5.4, Zigbee® 3.0, OpenThread, dynamic, and static concurrent modes, and 802.15.4 proprietary protocols.

Based on the STMicroelectronics STM32WB55VGY wireless microcontroller, STM32WB5MMG provides best-in-class RF performance thanks to its high receiver sensitivity and output power signal. Its low-power features enable extended battery life, small coin-cell batteries, and energy harvesting.

  • Ultra-low-power with FlexPowerControl

  • Core: ARM® 32-bit Cortex®-M4 CPU with FPU

  • Radio:

    • 2.4GHz

    • RF transceiver supporting:

      • Bluetooth® 5.4 specification,

      • IEEE 802.15.4-2011 PHY and MAC,

      • Zigbee® 3.0

    • RX sensitivity:

      • -96 dBm (Bluetooth® Low Energy at 1 Mbps),

      • -100 dBm (802.15.4)

    • Programmable output power up to +6 dBm with 1 dB steps

    • Integrated balun to reduce BOM

    • Support for 2 Mbps

    • Support GATT caching

    • Support EATT (enhanced ATT)

    • Support advertising extension

    • Accurate RSSI to enable power control

  • Clock Sources:

    • 32 MHz crystal oscillator with integrated trimming capacitors (Radio and CPU clock)

    • 32 kHz crystal oscillator for RTC (LSE)

    • Internal low-power 32 kHz (±5%) RC (LSI1)

    • Internal low-power 32 kHz (stability ±500 ppm) RC (LSI2)

    • Internal multispeed 100 kHz to 48 MHz oscillator, auto-trimmed by LSE (better than ±0.25% accuracy)

    • High speed internal 16 MHz factory trimmed RC (±1%)

    • 2x PLL for system clock, USB, SAI, ADC

More information about STM32WB5MMG can be found here:

Supported Features

The stm32wb5mm_dk board supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.

stm32wb5mm_dk/stm32wb55xx target

Type

Location

Description

Compatible

CPU

on-chip

ARM Cortex-M4F CPU1

arm,cortex-m4f

ADC

on-chip

STM32 ADC1

st,stm32-adc

Bluetooth

on-chip

STM32WB Radio device1

st,stm32wb-rf

Clock control

on-chip

STM32WB Reset and Clock controller node1

st,stm32wb-rcc

on-chip

Generic fixed-rate clock provider2 3

fixed-clock

on-chip

STM32 MSI Clock1

st,stm32-msi-clock

on-chip

STM32 LSE Clock1

st,stm32-lse-clock

on-chip

STM32WB and STM32WL PLL node1

st,stm32wb-pll-clock

on-chip

STM32 Clock multiplexer1

st,stm32-clock-mux

Counter

on-chip

STM32 counters3

st,stm32-counter

Cryptographic accelerator

on-chip

STM32 AES Accelerator1

st,stm32-aes

DMA

on-chip

STM32 DMA controller (V2)2

st,stm32-dma-v2

on-chip

STM32 DMAMUX controller1

st,stm32-dmamux

Flash controller

on-chip

STM32 Family flash controller1

st,stm32-flash-controller

GPIO & Headers

on-chip

STM32 GPIO Controller6

st,stm32-gpio

I2C

on-chip

STM32 I2C V2 controller1 1

st,stm32-i2c-v2

Input

on-board

Group of GPIO-bound input keys1

gpio-keys

Interrupt controller

on-chip

ARMv7-M NVIC (Nested Vectored Interrupt Controller)1

arm,v7m-nvic

on-chip

STM32 External Interrupt Controller1

st,stm32-exti

LED strip

on-board

TLC59731 RGB LED Controller1

ti,tlc59731

Memory controller

on-chip

STM32 Battery Backed RAM1

st,stm32-bbram

MTD

on-chip

STM32 flash memory1

st,stm32-nv-flash

on-board

Fixed partitions of a flash (or other non-volatile storage) memory1

fixed-partitions

PHY

on-chip

This binding is to be used by all the usb transceivers which are built-in with USB IP1

usb-nop-xceiv

Pin control

on-chip

STM32 Pin controller1

st,stm32-pinctrl

Power management

on-chip

STM32 power controller1

st,stm32-pwr

PWM

on-chip

STM32 PWM4

st,stm32-pwm

QSPI

on-chip

STM32 QSPI Controller1

st,stm32-qspi

Reset controller

on-chip

STM32 Reset and Clock Control (RCC) Controller1

st,stm32-rcc-rctl

RNG

on-chip

STM32 Random Number Generator1

st,stm32-rng

RTC

on-chip

STM32 RTC1

st,stm32-rtc

Sensors

on-board

STMicroelectronics VL53L0X Time of Flight sensor1

st,vl53l0x

on-board

STMicroelectronics ISM330DHCX 6-axis IMU (Inertial Measurement Unit) sensor accessed through SPI bus1

st,ism330dhcx

on-chip

STM32 family TEMP node for production calibrated sensors with two calibration temperatures1

st,stm32-temp-cal

on-chip

STM32 VREF+1

st,stm32-vref

on-chip

STM32 VBAT1

st,stm32-vbat

Serial controller

on-chip

STM32 USART1

st,stm32-usart

on-chip

STM32 LPUART1

st,stm32-lpuart

SMbus

on-chip

STM32 SMBus controller2

st,stm32-smbus

SPI

on-chip

STM32 SPI controller with embedded Rx and Tx FIFOs2

st,stm32-spi-fifo

SRAM

on-chip

Generic on-chip SRAM description1

mmio-sram

Timer

on-chip

ARMv7-M System Tick1

arm,armv7m-systick

on-chip

STM32 timers4

st,stm32-timers

on-chip

STM32 low-power timer (LPTIM)1

st,stm32-lptim

USB

on-chip

STM32 USB controller1

st,stm32-usb

Watchdog

on-chip

STM32 system window watchdog1

st,stm32-window-watchdog

on-chip

STM32 watchdog1

st,stm32-watchdog

Bluetooth and compatibility with STM32WB Copro Wireless Binaries

To operate bluetooth on STM32WB5MMG, Cortex-M0 core should be flashed with a valid STM32WB Coprocessor binaries (either ‘Full stack’ or ‘HCI Layer’). These binaries are delivered in STM32WB Cube packages, under Projects/STM32WB_Copro_Wireless_Binaries/STM32WB5x/.

For compatibility information with the various versions of these binaries, please check hal_stm32:lib/stm32wb/README.rst.

Note that since STM32WB Cube package V1.13.2, “full stack” binaries are not compatible anymore for a use in Zephyr and only “HCI Only” versions should be used on the M0 side.

Connections and IOs

Default Zephyr Peripheral Mapping:

  • UART_1 TX/RX : PB7/PB6 ( Connected to ST-Link VCP)

  • LPUART_1 TX/RX : PA3/PA2

  • USB : PA11/PA12

  • SWD : PA13/PA14

  • I2C3: SDA/SCL PB11/PB13 (Sensor I2C bus)

System Clock

STM32WB5MMG System Clock could be driven by internal or external oscillator, as well as main PLL clock. By default System clock is driven by HSE clock at 32MHz.

Serial Port

STM32WB5MM-DK board has 2 (LP)U(S)ARTs. The Zephyr console output is assigned to USART1. Default settings are 115200 8N1.

LEDs

STM32WB5MM-DK has two types of LEDs, The resources coming from STM32WB5MMG are shared between the RGB and IR LEDs. It is not possible to use them simultaneously. The selection is done by JP4 and JP5 jumpers. To use the RGB LED, JP5 must be ON and JP4 OFF. In this configuration, GPIO_SELECT2 (PH1) is the chip select for this RGB device on SPI1.

Buttons

STM32WB5MM-DK has two user buttons. The first button is mapped to PC12, and the second to PC13. They have the aliases sw0 and sw1 respectively.

Programming and Debugging

STM32WB5MM-DK has an on-board ST-Link to flash and debug the firmware on the module.

Applications for the stm32wb5mm_dk board configuration can be built the usual way (see Building an Application).

Flashing

The board is configured to be flashed using west STM32CubeProgrammer runner, so its installation is required.

Alternatively, OpenOCD or pyOCD can also be used to flash the board using the --runner (or -r) option:

$ west flash --runner openocd
$ west flash --runner pyocd

Flashing hello_world application to STM32WB5MM-DK

Connect the STM32WB5MM-DK to your host computer using the USB port (CN11). Then build and flash an application. Here is an example for the hello_world application.

Run a serial host program to connect with your STM32WB5MM-DK board:

$ minicom -D /dev/ttyACM0

Then first build and flash the application for the STM32WB5MM-DK board.

# From the root of the zephyr repository
west build -b stm32wb5mm_dk samples/hello_world
west flash

Reset the board and you should see the following messages on the console:

Hello World! stm32w5mm_dk

Debugging

You can debug an application in the usual way. Here is an example for the Hello_World application.

# From the root of the zephyr repository
west build -b stm32wb5mm_dk samples/hello_world
west debug