1.. _nucleo_wba55cg_board: 2 3ST Nucleo WBA55CG 4################# 5 6Overview 7******** 8 9NUCLEO-WBA55CG is a Bluetooth® Low Energy wireless and ultra-low-power board 10embedding a powerful and ultra-low-power radio compliant with the Bluetooth® 11Low Energy SIG specification v5.3. 12 13The ARDUINO® Uno V3 connectivity support and the ST morpho headers allow the 14easy expansion of the functionality of the STM32 Nucleo open development 15platform with a wide choice of specialized shields. 16 17- Ultra-low-power wireless STM32WBA55CG microcontroller based on the Arm® 18 Cortex®‑M33 core, featuring 1 Mbyte of flash memory and 128 Kbytes of SRAM in 19 a UFQFPN48 package 20 21- MCU RF board (MB1863): 22 23 - 2.4 GHz RF transceiver supporting Bluetooth® specification v5.3 24 - Arm® Cortex® M33 CPU with TrustZone®, MPU, DSP, and FPU 25 - Integrated PCB antenna 26 27- Three user LEDs 28- Three user and one reset push-buttons 29 30- Board connectors: 31 32 - USB Micro-B 33 - ARDUINO® Uno V3 expansion connector 34 - ST morpho headers for full access to all STM32 I/Os 35 36- Flexible power-supply options: ST-LINK USB VBUS or external sources 37- On-board STLINK-V3MODS debugger/programmer with USB re-enumeration capability: 38 mass storage, Virtual COM port, and debug port 39 40.. image:: img/nucleowba55cg.jpg 41 :align: center 42 :alt: Nucleo WBA55CG 43 44Hardware 45******** 46 47The STM32WBA55xx multiprotocol wireless and ultralow power devices embed a 48powerful and ultralow power radio compliant with the Bluetooth® SIG Low Energy 49specification 5.3. They contain a high-performance Arm Cortex-M33 32-bit RISC 50core. They operate at a frequency of up to 100 MHz. 51 52- Includes ST state-of-the-art patented technology 53 54- Ultra low power radio: 55 56 - 2.4 GHz radio 57 - RF transceiver supporting Bluetooth® Low Energy 5.3 specification 58 - Proprietary protocols 59 - RX sensitivity: -96 dBm (Bluetooth® Low Energy at 1 Mbps) 60 - Programmable output power, up to +10 dBm with 1 dB steps 61 - Integrated balun to reduce BOM 62 - Suitable for systems requiring compliance with radio frequency regulations 63 ETSI EN 300 328, EN 300 440, FCC CFR47 Part 15 and ARIB STD-T66 64 65- Ultra low power platform with FlexPowerControl: 66 67 - 1.71 to 3.6 V power supply 68 - - 40 °C to 85 °C temperature range 69 - Autonomous peripherals with DMA, functional down to Stop 1 mode 70 - 140 nA Standby mode (16 wake-up pins) 71 - 200 nA Standby mode with RTC 72 - 2.4 µA Standby mode with 64 KB SRAM 73 - 16.3 µA Stop mode with 64 KB SRAM 74 - 45 µA/MHz Run mode at 3.3 V 75 - Radio: Rx 7.4 mA / Tx at 0 dBm 10.6 mA 76 77- Core: Arm® 32-bit Cortex®-M33 CPU with TrustZone®, MPU, DSP, and FPU 78- ART Accelerator™: 8-Kbyte instruction cache allowing 0-wait-state execution 79 from flash memory (frequency up to 100 MHz, 150 DMIPS) 80- Power management: embedded regulator LDO supporting voltage scaling 81 82- Benchmarks: 83 84 - 1.5 DMIPS/MHz (Drystone 2.1) 85 - 407 CoreMark® (4.07 CoreMark/MHz) 86 87- Clock sources: 88 89 - 32 MHz crystal oscillator 90 - 32 kHz crystal oscillator (LSE) 91 - Internal low-power 32 kHz (±5%) RC 92 - Internal 16 MHz factory trimmed RC (±1%) 93 - PLL for system clock and ADC 94 95- Memories: 96 97 - 1 MB flash memory with ECC, including 256 Kbytes with 100 cycles 98 - 128 KB SRAM, including 64 KB with parity check 99 - 512-byte (32 rows) OTP 100 101- Rich analog peripherals (independent supply): 102 103 - 12-bit ADC 2.5 Msps with hardware oversampling 104 105- Communication peripherals: 106 107 - Three UARTs (ISO 7816, IrDA, modem) 108 - Two SPIs 109 - Two I2C Fm+ (1 Mbit/s), SMBus/PMBus® 110 111- System peripherals: 112 113 - Touch sensing controller, up to 20 sensors, supporting touch key, linear, 114 rotary touch sensors 115 - One 16-bit, advanced motor control timer 116 - Three 16-bit timers 117 - One 32-bit timer 118 - Two low-power 16-bit timers (available in Stop mode) 119 - Two Systick timers 120 - Two watchdogs 121 - 8-channel DMA controller, functional in Stop mode 122 123- Security and cryptography: 124 125 - Arm® TrustZone® and securable I/Os, memories, and peripherals 126 - Flexible life cycle scheme with RDP and password protected debug 127 - Root of trust thanks to unique boot entry and secure hide protection area (HDP) 128 - SFI (secure firmware installation) thanks to embedded RSS (root secure services) 129 - Secure data storage with root hardware unique key (RHUK) 130 - Secure firmware upgrade support with TF-M 131 - Two AES co-processors, including one with DPA resistance 132 - Public key accelerator, DPA resistant 133 - HASH hardware accelerator 134 - True random number generator, NIST SP800-90B compliant 135 - 96-bit unique ID 136 - Active tampers 137 - CRC calculation unit 138 139- Up to 35 I/Os (most of them 5 V-tolerant) with interrupt capability 140 141- Development support: 142 143 - Serial wire debug (SWD), JTAG 144 145- ECOPACK2 compliant package 146 147More information about STM32WBA series can be found here: 148 149- `STM32WBA Series on www.st.com`_ 150 151Supported Features 152================== 153 154The Zephyr nucleo_wba55cg board configuration supports the following hardware features: 155 156+-----------+------------+-------------------------------------+ 157| Interface | Controller | Driver/Component | 158+===========+============+=====================================+ 159| NVIC | on-chip | nested vector interrupt controller | 160+-----------+------------+-------------------------------------+ 161| UART | on-chip | serial port-polling; | 162| | | serial port-interrupt | 163+-----------+------------+-------------------------------------+ 164| PINMUX | on-chip | pinmux | 165+-----------+------------+-------------------------------------+ 166| GPIO | on-chip | gpio | 167+-----------+------------+-------------------------------------+ 168| I2C | on-chip | i2c | 169+-----------+------------+-------------------------------------+ 170| SPI | on-chip | spi | 171+-----------+------------+-------------------------------------+ 172| ADC | on-chip | adc | 173+-----------+------------+-------------------------------------+ 174| WATCHDOG | on-chip | independent watchdog | 175+-----------+------------+-------------------------------------+ 176| RNG | on-chip | True Random number generator | 177+-----------+------------+-------------------------------------+ 178| RADIO | on-chip | Bluetooth Low Energy | 179+-----------+------------+-------------------------------------+ 180| RTC | on-chip | rtc | 181+-----------+------------+-------------------------------------+ 182 183Other hardware features are not yet supported on this Zephyr port. 184 185The default configuration can be found in the defconfig file: 186:zephyr_file:`boards/st/nucleo_wba55cg/nucleo_wba55cg_defconfig` 187 188Bluetooh support 189---------------- 190 191BLE support is enabled on nucleo_wba55cg. To build a zephyr sample using this board 192you first need to install Bluetooth Controller libraries available in Zephyr as binary 193blobs. 194 195To fetch Binary Blobs: 196 197.. code-block:: console 198 199 west blobs fetch stm32 200 201Connections and IOs 202=================== 203 204Nucleo WBA55CG Board has 4 GPIO controllers. These controllers are responsible for pin muxing, 205input/output, pull-up, etc. 206 207Default Zephyr Peripheral Mapping: 208---------------------------------- 209 210.. rst-class:: rst-columns 211 212- USART_1 TX/RX : PB12/PA8 213- I2C_1_SCL : PB2 214- I2C_1_SDA : PB1 215- USER_PB : PC13 216- LD1 : PB4 217- SPI_1_NSS : PA12 (arduino_spi) 218- SPI_1_SCK : PB4 (arduino_spi) 219- SPI_1_MISO : PB3 (arduino_spi) 220- SPI_1_MOSI : PA15 (arduino_spi) 221 222System Clock 223------------ 224 225Nucleo WBA55CG System Clock could be driven by internal or external oscillator, 226as well as main PLL clock. By default System clock is driven by HSE+PLL clock at 100MHz. 227 228Serial Port 229----------- 230 231Nucleo WBA55CG board has 1 U(S)ARTs. The Zephyr console output is assigned to USART1. 232Default settings are 115500 8N1. 233 234 235Programming and Debugging 236************************* 237 238Nucleo WBA55CG board includes an ST-LINK/V3 embedded debug tool interface. 239It could be used for flash and debug using either OpenOCD or STM32Cube ecosystem tools. 240 241Flashing 242======== 243 244STM32CubeProgrammer is configured as flashing tool by default. 245If available, OpenOCD could be used. Same process applies with both tools. 246 247Flashing an application to Nucleo WBA55CG 248----------------------------------------- 249 250Here is an example for the :zephyr:code-sample:`blinky` application. 251 252.. zephyr-app-commands:: 253 :zephyr-app: samples/basic/blinky 254 :board: nucleo_wba55cg 255 :goals: build flash 256 257You will see the LED blinking every second. 258 259Debugging 260========= 261 262Debugging using OpenOCD 263----------------------- 264 265You can debug an application in the usual way using OpenOCD. Here is an example for the 266:zephyr:code-sample:`blinky` application. 267 268.. zephyr-app-commands:: 269 :zephyr-app: samples/basic/blinky 270 :board: nucleo_wba55cg 271 :maybe-skip-config: 272 :goals: debug 273 274Debugging using STM32CubeIDE 275---------------------------- 276 277You can debug an application using a STM32WBA compatible version of STM32CubeIDE. 278 279For that: 280 281- Create an empty STM32WBA project by going to File > New > STM32 project 282- Select your MCU, click Next, and select an Empty project. 283- Right click on your project name, select Debug as > Debug configurations 284- In the new window, create a new target in STM32 Cortex-M C/C++ Application 285- Select the new target and enter the path to zephyr.elf file in the C/C++ Application field 286- Check Disable auto build 287- Run debug 288 289.. _STM32WBA Series on www.st.com: 290 https://www.st.com/en/microcontrollers-microprocessors/stm32wba-series.html 291 292.. _OpenOCD official Github mirror: 293 https://github.com/openocd-org/openocd/commit/870769b0ba9f4dae6ada9d8b1a40d75bd83aaa06 294