From 940993cc4bb8fc01c97b4ff2ff7c24a36c3419ad Mon Sep 17 00:00:00 2001 From: Francois Ramu Date: Mon, 12 Aug 2024 09:35:02 +0200 Subject: [PATCH] boards: st: add the nucleo_wba65ri board Introduce the stm32WBA56 nucleo board. HSE32 divided by 2 is the source clock. Signed-off-by: Francois Ramu --- boards/st/nucleo_wba65ri/Kconfig.defconfig | 13 + .../st/nucleo_wba65ri/Kconfig.nucleo_wba65ri | 5 + .../nucleo_wba65ri/arduino_r3_connector.dtsi | 39 +++ boards/st/nucleo_wba65ri/board.cmake | 6 + boards/st/nucleo_wba65ri/board.yml | 6 + .../doc/img/nucleo_wba65ri.webp | Bin 0 -> 65646 bytes .../st/nucleo_wba65ri/doc/nucleo_wba65ri.rst | 241 ++++++++++++++++++ boards/st/nucleo_wba65ri/nucleo_wba65ri.dts | 168 ++++++++++++ boards/st/nucleo_wba65ri/nucleo_wba65ri.yaml | 19 ++ .../nucleo_wba65ri/nucleo_wba65ri_defconfig | 24 ++ boards/st/nucleo_wba65ri/support/openocd.cfg | 26 ++ 11 files changed, 547 insertions(+) create mode 100644 boards/st/nucleo_wba65ri/Kconfig.defconfig create mode 100644 boards/st/nucleo_wba65ri/Kconfig.nucleo_wba65ri create mode 100644 boards/st/nucleo_wba65ri/arduino_r3_connector.dtsi create mode 100644 boards/st/nucleo_wba65ri/board.cmake create mode 100644 boards/st/nucleo_wba65ri/board.yml create mode 100644 boards/st/nucleo_wba65ri/doc/img/nucleo_wba65ri.webp create mode 100644 boards/st/nucleo_wba65ri/doc/nucleo_wba65ri.rst create mode 100644 boards/st/nucleo_wba65ri/nucleo_wba65ri.dts create mode 100644 boards/st/nucleo_wba65ri/nucleo_wba65ri.yaml create mode 100644 boards/st/nucleo_wba65ri/nucleo_wba65ri_defconfig create mode 100644 boards/st/nucleo_wba65ri/support/openocd.cfg diff --git a/boards/st/nucleo_wba65ri/Kconfig.defconfig b/boards/st/nucleo_wba65ri/Kconfig.defconfig new file mode 100644 index 00000000000..8e937f2a6ad --- /dev/null +++ b/boards/st/nucleo_wba65ri/Kconfig.defconfig @@ -0,0 +1,13 @@ +# STM32WBA65RI Nucleo board configuration + +# Copyright (c) 2025 STMicroelectronics + +# SPDX-License-Identifier: Apache-2.0 + +if BOARD_NUCLEO_WBA65RI + +config SPI_STM32_INTERRUPT + default y + depends on SPI + +endif # BOARD_NUCLEO_WBA65RI diff --git a/boards/st/nucleo_wba65ri/Kconfig.nucleo_wba65ri b/boards/st/nucleo_wba65ri/Kconfig.nucleo_wba65ri new file mode 100644 index 00000000000..35b3adb2ab3 --- /dev/null +++ b/boards/st/nucleo_wba65ri/Kconfig.nucleo_wba65ri @@ -0,0 +1,5 @@ +# Copyright (c) 2025 STMicroelectronics +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_NUCLEO_WBA65RI + select SOC_STM32WBA65XX diff --git a/boards/st/nucleo_wba65ri/arduino_r3_connector.dtsi b/boards/st/nucleo_wba65ri/arduino_r3_connector.dtsi new file mode 100644 index 00000000000..44e824e4664 --- /dev/null +++ b/boards/st/nucleo_wba65ri/arduino_r3_connector.dtsi @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2025 STMicroelectronics + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + arduino_header: connector { + compatible = "arduino-header-r3"; + #gpio-cells = <2>; + gpio-map-mask = <0xffffffff 0xffffffc0>; + gpio-map-pass-thru = <0 0x3f>; + gpio-map = <0 0 &gpioa 4 0>, /* A0 */ + <1 0 &gpioa 6 0>, /* A1 */ + <2 0 &gpioa 2 0>, /* A2 */ + <3 0 &gpioa 1 0>, /* A3 */ + <4 0 &gpioa 5 0>, /* A4 */ + <5 0 &gpioa 0 0>, /* A5 */ + <6 0 &gpioa 11 0>, /* D0 */ + <7 0 &gpioa 12 0>, /* D1 */ + <8 0 &gpioe 0 0>, /* D2 */ + <9 0 &gpiob 13 0>, /* D3 */ + <10 0 &gpioa 3 0>, /* D4 */ + <11 0 &gpiob 14 0>, /* D5 */ + <12 0 &gpiob 0 0>, /* D6 */ + <13 0 &gpiod 14 0>, /* D7 */ + <14 0 &gpioa 10 0>, /* D8 */ + <15 0 &gpiob 11 0>, /* D9 */ + <16 0 &gpiob 9 0>, /* D10 */ + <17 0 &gpioc 3 0>, /* D11 */ + <18 0 &gpioa 9 0>, /* D12 */ + <19 0 &gpiob 10 0>, /* D13 */ + <20 0 &gpiob 1 0>, /* D14 */ + <21 0 &gpiob 2 0>; /* D15 */ + }; +}; + +arduino_i2c: &i2c1 {}; +arduino_spi: &spi1 {}; diff --git a/boards/st/nucleo_wba65ri/board.cmake b/boards/st/nucleo_wba65ri/board.cmake new file mode 100644 index 00000000000..5243407fcc0 --- /dev/null +++ b/boards/st/nucleo_wba65ri/board.cmake @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: Apache-2.0 + +board_runner_args(stm32cubeprogrammer "--port=swd" "--reset-mode=hw") + +include(${ZEPHYR_BASE}/boards/common/stm32cubeprogrammer.board.cmake) +include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) diff --git a/boards/st/nucleo_wba65ri/board.yml b/boards/st/nucleo_wba65ri/board.yml new file mode 100644 index 00000000000..01a51d7715d --- /dev/null +++ b/boards/st/nucleo_wba65ri/board.yml @@ -0,0 +1,6 @@ +board: + name: nucleo_wba65ri + full_name: Nucleo WBA65RI + vendor: st + socs: + - name: stm32wba65xx diff --git a/boards/st/nucleo_wba65ri/doc/img/nucleo_wba65ri.webp b/boards/st/nucleo_wba65ri/doc/img/nucleo_wba65ri.webp new file mode 100644 index 0000000000000000000000000000000000000000..a9959ba55a900fa7a101c7c946f11bc3225cdb37 GIT binary patch literal 65646 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 v0RRbd40D?~cC&~TAV~zb6DobN~PV00000vRA9V literal 0 HcmV?d00001 diff --git a/boards/st/nucleo_wba65ri/doc/nucleo_wba65ri.rst b/boards/st/nucleo_wba65ri/doc/nucleo_wba65ri.rst new file mode 100644 index 00000000000..1452d65987a --- /dev/null +++ b/boards/st/nucleo_wba65ri/doc/nucleo_wba65ri.rst @@ -0,0 +1,241 @@ +.. zephyr:board:: nucleo_wba65ri + +Overview +******** + +NUCLEO-WBA65RI is a Bluetooth® Low Energy, 802.15.4 and Zigbee® wireless +and ultra-low-power board embedding a powerful and ultra-low-power radio +compliant with the Bluetooth® Low Energy SIG specification v5.4 +with IEEE 802.15.4-2015 and Zigbee® specifications. + +The ARDUINO® Uno V3 connectivity support and the ST morpho headers allow the +easy expansion of the functionality of the STM32 Nucleo open development +platform with a wide choice of specialized shields. + +- Ultra-low-power wireless STM32WBA65RI microcontroller based on the Arm® + Cortex®‑M33 core, featuring 2 Mbyte of flash memory and 512 Kbytes of SRAM in + a VFQFPN68 package + +- MCU RF board (MB2130): + + - 2.4 GHz RF transceiver supporting Bluetooth® specification v5.4 + - Arm® Cortex® M33 CPU with TrustZone®, MPU, DSP, and FPU + - Integrated PCB antenna + +- Three user LEDs +- Three user and one reset push-buttons + +- Board connectors: + + - 2 USB Type-C + - ARDUINO® Uno V3 expansion connector + - ST morpho headers for full access to all STM32 I/Os + +- Flexible power-supply options: ST-LINK USB VBUS or external sources +- On-board STLINK-V3MODS debugger/programmer with USB re-enumeration capability: + mass storage, Virtual COM port, and debug port + +Hardware +******** + +The STM32WBA65xx multiprotocol wireless and ultralow power devices embed a +powerful and ultralow power radio compliant with the Bluetooth® SIG Low Energy +specification 5.4. They contain a high-performance Arm Cortex-M33 32-bit RISC +core. They operate at a frequency of up to 100 MHz. + +- Includes ST state-of-the-art patented technology + +- Ultra low power radio: + + - 2.4 GHz radio + - RF transceiver supporting Bluetooth® Low Energy 5.4 specification + IEEE 802.15.4-2015 PHY and MAC, supporting Thread, Matter and Zigbee® + - Proprietary protocols + - RX sensitivity: -96 dBm (Bluetooth® Low Energy at 1 Mbps) + and -100 dBm (IEEE 802.15.4 at 250 kbps) + - Programmable output power, up to +10 dBm with 1 dB steps + - Support for external PA + - Integrated balun to reduce BOM + - Suitable for systems requiring compliance with radio frequency regulations + ETSI EN 300 328, EN 300 440, FCC CFR47 Part 15 and ARIB STD-T66 + +- Ultra low power platform with FlexPowerControl: + + - 1.71 to 3.6 V power supply + - - 40 °C to 85 °C temperature range + - Autonomous peripherals with DMA, functional down to Stop 1 mode + - TBD nA Standby mode (16 wake-up pins) + - TBD nA Standby mode with RTC + - TBD µA Standby mode with 64 KB SRAM + - TBD µA Stop 2 mode with 64 KB SRAM + - TBD µA/MHz Run mode at 3.3 V + - Radio: Rx TBD mA / Tx at 0 dBm TBD mA + +- Core: Arm® 32-bit Cortex®-M33 CPU with TrustZone®, MPU, DSP, and FPU +- ART Accelerator™: 8-Kbyte instruction cache allowing 0-wait-state execution + from flash memory (frequency up to 100 MHz, 150 DMIPS) +- Power management: embedded regulator LDO and SMPS step-down converter +- Supporting switch on-the-fly and voltage scaling + +- Benchmarks: + + - 1.5 DMIPS/MHz (Drystone 2.1) + - 410 CoreMark® (4.10 CoreMark/MHz) + +- Clock sources: + + - 32 MHz crystal oscillator + - 32 kHz crystal oscillator (LSE) + - Internal low-power 32 kHz (±5%) RC + - Internal 16 MHz factory trimmed RC (±1%) + - PLL for system clock and ADC + +- Memories: + + - 2 MB flash memory with ECC, including 256 Kbytes with 100 cycles + - 512 KB SRAM, including 64 KB with parity check + - 512-byte (32 rows) OTP + +- Rich analog peripherals (independent supply): + + - 12-bit ADC 2.5 Msps with hardware oversampling + +- Communication peripherals: + + - Four UARTs (ISO 7816, IrDA, modem) + - Three SPIs + - Four I2C Fm+ (1 Mbit/s), SMBus/PMBus® + +- System peripherals: + + - Touch sensing controller, up to 24 sensors, supporting touch key, linear, + rotary touch sensors + - One 16-bit, advanced motor control timer + - Three 16-bit timers + - Two 32-bit timer + - Two low-power 16-bit timers (available in Stop mode) + - Two Systick timers + - RTC with hardware calendar and calibration + - Two watchdogs + - 8-channel DMA controller, functional in Stop mode + +- Security and cryptography: + + - Arm® TrustZone® and securable I/Os, memories, and peripherals + - Flexible life cycle scheme with RDP and password protected debug + - Root of trust thanks to unique boot entry and secure hide protection area (HDP) + - SFI (secure firmware installation) thanks to embedded RSS (root secure services) + - Secure data storage with root hardware unique key (RHUK) + - Secure firmware upgrade support with TF-M + - Two AES co-processors, including one with DPA resistance + - Public key accelerator, DPA resistant + - HASH hardware accelerator + - True random number generator, NIST SP800-90B compliant + - 96-bit unique ID + - Active tampers + - CRC calculation unit + +- Up to 86 I/Os (most of them 5 V-tolerant) with interrupt capability + +- Development support: + + - Serial wire debug (SWD), JTAG + +- ECOPACK2 compliant package + +More information about STM32WBA series can be found here: + +- `STM32WBA Series on www.st.com`_ + +Supported Features +================== + +.. zephyr:board-supported-hw:: + +Connections and IOs +=================== + +Nucleo WBA65RI Board has 4 GPIO controllers. These controllers are responsible for pin muxing, +input/output, pull-up, etc. + +Default Zephyr Peripheral Mapping: +---------------------------------- + +.. rst-class:: rst-columns + +- USART_1 TX/RX : PB12/PA8 +- I2C_1_SCL : PB2 +- I2C_1_SDA : PB1 +- USER_PB : PC13 +- LD1 : PD8 +- SPI_1_NSS : PA12 (arduino_spi) +- SPI_1_SCK : PB4 (arduino_spi) +- SPI_1_MISO : PB3 (arduino_spi) +- SPI_1_MOSI : PA15 (arduino_spi) + +System Clock +------------ + +Nucleo WBA65RI System Clock could be driven by internal or external oscillator, +as well as main PLL clock. By default System clock is driven by HSE+PLL clock at 100MHz. + +Serial Port +----------- + +Nucleo WBA65RI board has 3 U(S)ARTs. The Zephyr console output is assigned to USART1. +Default settings are 115200 8N1. + + +Programming and Debugging +************************* + +.. zephyr:board-supported-runners:: + +Nucleo WBA65RI board includes an ST-LINK/V3 embedded debug tool interface. +It could be used for flash and debug using either OpenOCD or STM32Cube ecosystem tools. + +Flashing +======== + +The board is configured to be flashed using west `STM32CubeProgrammer`_ runner, +so its :ref:`installation ` is required. + +Alternatively, openocd can also be used to flash the board using +the ``--runner`` (or ``-r``) option: + +.. code-block:: console + + $ west flash --runner openocd + +Flashing an application to Nucleo WBA65RI +----------------------------------------- + +Here is an example for the :zephyr:code-sample:`blinky` application. + +.. zephyr-app-commands:: + :zephyr-app: samples/basic/blinky + :board: nucleo_wba65ri + :goals: build flash + +You will see the LED blinking every second. + +Debugging +========= + +Debugging using OpenOCD +----------------------- + +You can debug an application in the usual way using OpenOCD. Here is an example for the +:zephyr:code-sample:`blinky` application. + +.. zephyr-app-commands:: + :zephyr-app: samples/basic/blinky + :board: nucleo_wba65ri + :maybe-skip-config: + :goals: debug + +.. _STM32WBA Series on www.st.com: + https://www.st.com/en/microcontrollers-microprocessors/stm32wba-series.html + +.. _STM32CubeProgrammer: + https://www.st.com/en/development-tools/stm32cubeprog.html diff --git a/boards/st/nucleo_wba65ri/nucleo_wba65ri.dts b/boards/st/nucleo_wba65ri/nucleo_wba65ri.dts new file mode 100644 index 00000000000..47ddf62fe03 --- /dev/null +++ b/boards/st/nucleo_wba65ri/nucleo_wba65ri.dts @@ -0,0 +1,168 @@ +/* + * Copyright (c) 2025 STMicroelectronics + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include +#include +#include "arduino_r3_connector.dtsi" +#include + +/ { + model = "STMicroelectronics STM32WBA65RI-NUCLEO board"; + compatible = "st,stm32wba65ri-nucleo"; + + #address-cells = <1>; + #size-cells = <1>; + + chosen { + zephyr,bt-c2h-uart = &usart1; + zephyr,console = &usart1; + zephyr,shell-uart = &usart1; + zephyr,sram = &sram0; + zephyr,flash = &flash0; + }; + + leds: leds { + compatible = "gpio-leds"; + + blue_led_1: led_0 { + gpios = <&gpiod 8 GPIO_ACTIVE_LOW>; + label = "User LD1"; + }; + + green_led_2: led_1 { + gpios = <&gpioc 4 GPIO_ACTIVE_LOW>; + label = "User LD2"; + }; + + red_led_3: led_2 { + gpios = <&gpiob 8 GPIO_ACTIVE_LOW>; + label = "User LD3"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + + user_button_1: button_0 { + label = "User B1"; + gpios = <&gpioc 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + zephyr,code = ; + }; + + user_button_2: button_1 { + label = "User B2"; + gpios = <&gpioc 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + zephyr,code = ; + }; + + user_button_3: button_2 { + label = "User B3"; + gpios = <&gpiob 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + zephyr,code = ; + }; + }; + + aliases { + led0 = &blue_led_1; + led1 = &green_led_2; + led2 = &red_led_3; + sw0 = &user_button_1; + sw1 = &user_button_2; + sw2 = &user_button_3; + mcuboot-led0 = &blue_led_1; + mcuboot-button0 = &user_button_1; + }; +}; + +&clk_lse { + status = "okay"; +}; + +&clk_hse { + hse-div2; + status = "okay"; +}; + +&clk_hsi { + status = "okay"; +}; + +&rcc { + clocks = <&clk_hse>; + clock-frequency = ; + ahb-prescaler = <1>; + ahb5-prescaler = <2>; + apb1-prescaler = <1>; + apb2-prescaler = <2>; + apb7-prescaler = <1>; +}; + +&iwdg { + status = "okay"; +}; + +&rtc { + status = "okay"; + clocks = <&rcc STM32_CLOCK(APB7, 21)>, + <&rcc STM32_SRC_LSE RTC_SEL(1)>; + prescaler = <32768>; +}; + +&usart1 { + clocks = <&rcc STM32_CLOCK(APB2, 14)>, + <&rcc STM32_SRC_HSI16 USART1_SEL(2)>; + pinctrl-0 = <&usart1_tx_pb12 &usart1_rx_pa8>; + pinctrl-1 = <&analog_pb12 &analog_pa8>; + pinctrl-names = "default", "sleep"; + current-speed = <115200>; + status = "okay"; +}; + +&spi1 { + pinctrl-0 = <&spi1_nss_pa12 &spi1_sck_pb4 + &spi1_miso_pb3 &spi1_mosi_pa15>; + pinctrl-names = "default"; + status = "okay"; +}; + +&i2c1 { + pinctrl-0 = <&i2c1_scl_pb2 &i2c1_sda_pb1>; + pinctrl-names = "default"; + status = "okay"; + clock-frequency = ; +}; + +&adc4 { + pinctrl-0 = <&adc4_in8_pa1>; + pinctrl-names = "default"; + st,adc-clock-source = "ASYNC"; + st,adc-prescaler = <4>; + status = "okay"; +}; + +stm32_lp_tick_source: &lptim1 { + clocks = <&rcc STM32_CLOCK(APB7, 11)>, + <&rcc STM32_SRC_LSE LPTIM1_SEL(3)>; + status = "okay"; +}; + +&rng { + status = "okay"; +}; + +&flash0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + storage_partition: partition@1c0000 { + label = "storage"; + reg = <0x001c0000 DT_SIZE_K(256)>; + }; + }; +}; diff --git a/boards/st/nucleo_wba65ri/nucleo_wba65ri.yaml b/boards/st/nucleo_wba65ri/nucleo_wba65ri.yaml new file mode 100644 index 00000000000..78617e1b262 --- /dev/null +++ b/boards/st/nucleo_wba65ri/nucleo_wba65ri.yaml @@ -0,0 +1,19 @@ +identifier: nucleo_wba65ri +name: ST Nucleo WBA65RI +type: mcu +arch: arm +toolchain: + - zephyr + - gnuarmemb +supported: + - gpio + - i2c + - spi + - adc + - rng + - arduino_gpio + - arduino_i2c + - arduino_spi +ram: 512 +flash: 2048 +vendor: st diff --git a/boards/st/nucleo_wba65ri/nucleo_wba65ri_defconfig b/boards/st/nucleo_wba65ri/nucleo_wba65ri_defconfig new file mode 100644 index 00000000000..24ca108f245 --- /dev/null +++ b/boards/st/nucleo_wba65ri/nucleo_wba65ri_defconfig @@ -0,0 +1,24 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) 2025 STMicroelectronics + +# Enable UART driver +CONFIG_SERIAL=y + +# Enable GPIO +CONFIG_GPIO=y + +# Enable clock +CONFIG_CLOCK_CONTROL=y + +# Console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# Enable MPU +CONFIG_ARM_MPU=y + +# Enable HW stack protection +CONFIG_HW_STACK_PROTECTION=y + +# Enable the internal SMPS regulator +CONFIG_POWER_SUPPLY_DIRECT_SMPS=y diff --git a/boards/st/nucleo_wba65ri/support/openocd.cfg b/boards/st/nucleo_wba65ri/support/openocd.cfg new file mode 100644 index 00000000000..0532f11f83a --- /dev/null +++ b/boards/st/nucleo_wba65ri/support/openocd.cfg @@ -0,0 +1,26 @@ +# Note: Using OpenOCD using nucleo_wba65ri requires using openocd fork. +# See board documentation for more information + +source [find interface/stlink-dap.cfg] + +set WORKAREASIZE 0x8000 + +transport select "dapdirect_swd" + +# Enable debug when in low power modes +set ENABLE_LOW_POWER 1 + +# Stop Watchdog counters when halt +set STOP_WATCHDOG 1 + +# STlink Debug clock frequency +set CLOCK_FREQ 8000 + +# Reset configuration +# use hardware reset, connect under reset +# connect_assert_srst needed if low power mode application running (WFI...) +reset_config srst_only srst_nogate + +source [find target/stm32wbax.cfg] + +gdb_memory_map disable