-
Notifications
You must be signed in to change notification settings - Fork 6.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
boards: st: nucleo_wb09ke: add support for Nucleo-WB09KE board
This commit adds support for the ST Nucleo-WB09KE board. Signed-off-by: Mathieu Choplain <[email protected]>
- Loading branch information
1 parent
ec3162a
commit a6d4113
Showing
10 changed files
with
320 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Copyright (c) 2024 STMicroelectronics | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
config BOARD_NUCLEO_WB09KE | ||
select SOC_STM32WB09XX |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
/* | ||
* Copyright (c) 2024 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>; | ||
|
||
/* Most pins are not connected to the Arduino | ||
* connector in default hardware configuration. | ||
* Only the connected pins are provided here. | ||
*/ | ||
gpio-map = <14 0 &gpiob 15 0>, /* D8 */ | ||
<16 0 &gpioa 9 0>, /* D10 */ | ||
<17 0 &gpioa 11 0>, /* D11 */ | ||
<18 0 &gpioa 8 0>, /* D12 */ | ||
<19 0 &gpiob 3 0>, /* D13 */ | ||
<20 0 &gpiob 7 0>, /* D14 */ | ||
<21 0 &gpiob 6 0>; /* D15 */ | ||
}; | ||
}; | ||
|
||
arduino_serial: &usart1 {}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# SPDX-License-Identifier: Apache-2.0 | ||
board_runner_args(pyocd "--target=stm32wb09kevx") | ||
board_runner_args(stm32cubeprogrammer "--port=swd" "--reset-mode=hw") | ||
|
||
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) | ||
include(${ZEPHYR_BASE}/boards/common/stm32cubeprogrammer.board.cmake) | ||
include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
board: | ||
name: nucleo_wb09ke | ||
vendor: st | ||
socs: | ||
- name: stm32wb09 |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,139 @@ | ||
.. _nucleo_wb09ke_board: | ||
|
||
ST Nucleo WB09KE | ||
################ | ||
|
||
Overview | ||
******** | ||
|
||
The Nucleo WB09KE board is a Bluetooth |reg| Low Energy wireless and ultra-low-power | ||
board featuring an ARM Cortex |reg|-M0+ based STM32WB09KEV MCU, embedding a | ||
powerful and ultra-low-power radio compliant with the Bluetooth® Low Energy | ||
SIG specification v5.4. | ||
|
||
.. image:: img/nucleo_wb09ke.jpg | ||
:align: center | ||
:alt: Nucleo WB09KE | ||
|
||
More information about the board can be found on the `Nucleo WB09KE webpage`_. | ||
|
||
Hardware | ||
******** | ||
|
||
Nucleo WB09KE provides the following hardware components: | ||
|
||
- STM32WB09KEV in VFQFPN32 package | ||
- ARM |reg| 32-bit Cortex |reg|-M0+ CPU | ||
- 64 MHz maximal CPU frequebct | ||
- 512 KB Flash | ||
- 64 KB SRAM | ||
|
||
More information about STM32WB09KEV can be found here: | ||
|
||
- `WB09KE on www.st.com`_ | ||
- `STM32WB09 reference manual`_ | ||
|
||
|
||
Supported Features | ||
================== | ||
|
||
The Zephyr nucleo_wb09ke board configuration supports the following hardware features: | ||
|
||
+-----------+------------+-------------------------------------+ | ||
| Interface | Controller | Driver/Component | | ||
+===========+============+=====================================+ | ||
| NVIC | on-chip | nested vector interrupt controller | | ||
+-----------+------------+-------------------------------------+ | ||
| UART | on-chip | serial port-polling; | | ||
| | | serial port-interrupt | | ||
+-----------+------------+-------------------------------------+ | ||
| PINMUX | on-chip | pinmux | | ||
+-----------+------------+-------------------------------------+ | ||
| GPIO | on-chip | gpio | | ||
+-----------+------------+-------------------------------------+ | ||
| FLASH | on-chip | internal flash memory | | ||
+-----------+------------+-------------------------------------+ | ||
|
||
|
||
Other hardware features are not yet supported on this Zephyr port. | ||
|
||
The default configuration can be found in the defconfig file: | ||
:zephyr_file:`boards/st/nucleo_wb09ke/nucleo_wb09ke_defconfig` | ||
|
||
|
||
Connections and IOs | ||
=================== | ||
|
||
Default Zephyr Peripheral Mapping: | ||
---------------------------------- | ||
|
||
- USART1 TX/RX : PA1/PB0 (ST-Link Virtual COM Port) | ||
- BUTTON (B1) : PA0 | ||
- BUTTON (B2) : PB5 | ||
- BUTTON (B3) : PB14 | ||
- LED (LD1/BLUE) : PB1 | ||
- LED (LD2/GREEN) : PB4 | ||
- LED (LD3/RED) : PB2 | ||
|
||
For more details, please refer to the `Nucleo WB09KE board User Manual`_. | ||
|
||
Programming and Debugging | ||
************************* | ||
|
||
Applications for the ``nucleo_w09ke`` board configuration can be built and | ||
flashed in the usual way (see :ref:`build_an_application` and | ||
:ref:`application_run` for more details). | ||
|
||
Flashing | ||
======== | ||
|
||
Nucleo WB09KE board includes an ST-LINK-V3EC embedded debug tool interface. | ||
|
||
Flashing an application to Nucleo WB09KE | ||
---------------------------------------- | ||
|
||
Connect the Nucleo WB09KE to your host computer using the USB port, | ||
then run a serial host program to connect with your Nucleo board: | ||
|
||
.. code-block:: console | ||
$ minicom -D /dev/ttyACM0 | ||
Now build and flash an application. Here is an example for | ||
:ref:`hello_world`. | ||
|
||
.. zephyr-app-commands:: | ||
:zephyr-app: samples/hello_world | ||
:board: nucleo_wb09ke | ||
:goals: build flash | ||
|
||
You should see the following message on the console: | ||
|
||
.. code-block:: console | ||
Hello World! nucleo_wb09ke/stm32wb09 | ||
Debugging | ||
========= | ||
|
||
You can debug an application in the usual way. Here is an example for the | ||
:ref:`hello_world` application. | ||
|
||
.. zephyr-app-commands:: | ||
:zephyr-app: samples/hello_world | ||
:board: nucleo_wb09ke | ||
:maybe-skip-config: | ||
:goals: debug | ||
|
||
.. _`Nucleo WB09KE webpage`: | ||
https://www.st.com/en/evaluation-tools/nucleo-wb09ke.html | ||
|
||
.. _`WB09KE on www.st.com`: | ||
https://www.st.com/en/microcontrollers-microprocessors/stm32wb09ke.html | ||
|
||
.. _`STM32WB09 reference manual`: | ||
https://www.st.com/resource/en/reference_manual/rm0505-stm32wb09xe-ultralow-power-wireless-32bit-mcu-armbased-cortexm0-with-bluetooth-low-energy-and-24-ghz-radio-solution-stmicroelectronics.pdf | ||
|
||
.. _`Nucleo WB09KE board User Manual`: | ||
https://www.st.com/resource/en/user_manual/um3345-stm32wb09-nucleo64-board-mb1801-and-mb2032-stmicroelectronics.pdf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
/* | ||
* Copyright (c) 2024 STMicroelectronics | ||
* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
/dts-v1/; | ||
#include <st/wb0/stm32wb09Xe.dtsi> | ||
#include <st/wb0/stm32wb09kevx-pinctrl.dtsi> | ||
#include <zephyr/dt-bindings/input/input-event-codes.h> | ||
|
||
#include "arduino_r3_connector.dtsi" | ||
|
||
/ { | ||
model = "STMicroelectronics STM32WB09KE-NUCLEO board"; | ||
compatible = "st,stm32wb09ke-nucleo"; | ||
|
||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
chosen { | ||
zephyr,console = &usart1; | ||
zephyr,shell-uart = &usart1; | ||
zephyr,sram = &sram0; | ||
zephyr,flash = &flash0; | ||
}; | ||
|
||
leds: leds { | ||
compatible ="gpio-leds"; | ||
blue_led_1: led_0 { | ||
gpios = <&gpiob 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; | ||
}; | ||
green_led_1: led_1 { | ||
gpios = <&gpiob 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; | ||
}; | ||
red_led_1: led_2 { | ||
gpios = <&gpiob 2 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; | ||
}; | ||
}; | ||
|
||
gpio_keys { | ||
compatible = "gpio-keys"; | ||
user_button_1: button_0 { | ||
label = "SW1"; | ||
gpios = <&gpioa 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; | ||
zephyr,code = <INPUT_KEY_0>; | ||
}; | ||
user_button_2: button_1 { | ||
label = "SW2"; | ||
gpios = <&gpiob 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; | ||
zephyr,code = <INPUT_KEY_1>; | ||
}; | ||
user_button_3: button_2 { | ||
label = "SW3"; | ||
gpios = <&gpiob 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; | ||
zephyr,code = <INPUT_KEY_2>; | ||
}; | ||
}; | ||
|
||
aliases { | ||
led0 = &blue_led_1; | ||
led1 = &green_led_1; | ||
led2 = &red_led_1; | ||
sw0 = &user_button_1; | ||
sw1 = &user_button_2; | ||
sw2 = &user_button_3; | ||
}; | ||
}; | ||
|
||
&pwrc { | ||
smps-mode = "RUN"; | ||
smps-bom = <3>; | ||
}; | ||
|
||
&clk_lse { | ||
status = "okay"; | ||
}; | ||
|
||
&clk_hse { | ||
status = "okay"; | ||
}; | ||
|
||
&clk_hsi { | ||
status = "okay"; | ||
}; | ||
|
||
&pll { | ||
status = "okay"; | ||
}; | ||
|
||
&rcc { | ||
clocks = <&pll>; | ||
clock-frequency = <DT_FREQ_M(64)>; | ||
clksys-prescaler = <1>; | ||
slow-clock = <&clk_lse>; | ||
}; | ||
|
||
&usart1 { | ||
pinctrl-0 = <&usart1_tx_pa1 &usart1_rx_pb0>; | ||
pinctrl-names = "default"; | ||
current-speed = <115200>; | ||
status = "okay"; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
identifier: nucleo_wb09ke | ||
name: ST Nucleo WB09KE | ||
type: mcu | ||
arch: arm | ||
toolchain: | ||
- zephyr | ||
- gnuarmemb | ||
- xtools | ||
ram: 64 | ||
flash: 512 | ||
supported: | ||
- gpio | ||
- arduino_gpio | ||
vendor: st |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
# Enable clock | ||
CONFIG_CLOCK_CONTROL=y | ||
|
||
# Enable GPIO | ||
CONFIG_GPIO=y | ||
|
||
# Enable UART driver | ||
CONFIG_SERIAL=y | ||
|
||
# Enable console | ||
CONFIG_CONSOLE=y | ||
CONFIG_UART_CONSOLE=y |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
source [find interface/stlink-dap.cfg] | ||
|
||
transport select "dapdirect_swd" | ||
|
||
source [find target/stm32wb0x.cfg] |