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