boards: we: add Oceanus-I EV board

Add support for Oceanus-I EV
board from WE.

Signed-off-by: Wajdi ELMuhtadi <wajdi.elmuhtadi@we-online.com>
This commit is contained in:
Wajdi ELMuhtadi 2024-12-13 14:21:41 +01:00 committed by Benjamin Cabé
parent 3950f20c02
commit 36ba2b2ebe
9 changed files with 321 additions and 0 deletions

View file

@ -0,0 +1,13 @@
# Copyright (c) 2025 Würth Elektronik eiSos GmbH & Co. KG
# SPDX-License-Identifier: Apache-2.0
if BOARD_WE_OCEANUS1EV
if LORA
config MAIN_STACK_SIZE
default 2048
endif # LORA
endif # BOARD_WE_OCEANUS1EV

View file

@ -0,0 +1,5 @@
# Copyright (c) 2025 Würth Elektronik eiSos GmbH & Co. KG
# SPDX-License-Identifier: Apache-2.0
config BOARD_WE_OCEANUS1EV
select SOC_STM32WLE5XX

View file

@ -0,0 +1,5 @@
# SPDX-License-Identifier: Apache-2.0
board_runner_args(jlink "--device=STM32WLE5CC" "--speed=4000" "--reset-after-load")
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)

View file

@ -0,0 +1,12 @@
board:
name: we_oceanus1ev
full_name: Oceanus-I EV
vendor: we
revision:
format: "major.minor.patch"
default: "1.1.0"
exact: true
revisions:
- name: "1.1.0"
socs:
- name: stm32wle5xx

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View file

@ -0,0 +1,105 @@
.. zephyr:board:: we_oceanus1ev
Overview
********
The we_oceanus1ev board is an evaluation board of the `Oceanus-I`_ radio module.
It provides support for the `STM32WLE5CC`_ ARM CPU and
the following devices:
* CLOCK
* FLASH
* :abbr:`GPIO (General Purpose Input Output)`
* :abbr:`I2C (Inter-Integrated Circuit)`
* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
* RADIO (LoRa)
* :abbr:`RTC (STM32 RTC System Clock)`
* :abbr:`SPI (Serial Peripheral Interface)`
* :abbr:`UART (Universal asynchronous receiver-transmitter)`
* :abbr:`WDT (Watchdog Timer)`
Hardware
********
The board has below hardware features:
- `Oceanus-I`_, 256KB Flash, 64KB RAM with external antenna
- 1 FTDI chip (USB to UART) converter
- 1 I2C WE sensor EV-Boards connector
- 1 SPI WE sensor EV-Boards connector
- 2 application LEDs
- 1 application, and 1 reset push-button
Supported Features
==================
The ``we_oceanus1ev`` board supports the following
hardware features:
+-----------+------------+----------------------+
| Interface | Controller | Driver/Component |
+===========+============+======================+
| CLOCK | on-chip | clock_control |
+-----------+------------+----------------------+
| FLASH | on-chip | flash |
+-----------+------------+----------------------+
| GPIO | on-chip | gpio |
+-----------+------------+----------------------+
| I2C(M) | on-chip | i2c |
+-----------+------------+----------------------+
| MPU | on-chip | arch/arm |
+-----------+------------+----------------------+
| NVIC | on-chip | arch/arm |
+-----------+------------+----------------------+
| RADIO | on-chip | LoRa |
+-----------+------------+----------------------+
| RTC | on-chip | system clock |
+-----------+------------+----------------------+
| SPI(M/S) | on-chip | spi |
+-----------+------------+----------------------+
| UART | on-chip | serial |
+-----------+------------+----------------------+
| WDT | on-chip | watchdog |
+-----------+------------+----------------------+
Programming and Debugging
*************************
Applications for the ``we_oceanus1ev`` board can be built the
usual way (see :ref:`build_an_application`).
The board debugged and flashed with an external debug probe connected
to the SWD pins, current native support is for the JLink debug probe.
Flashing
========
Connect the board to your host computer and build and flash an application.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: we_oceanus1ev
:goals: build flash
Run a serial terminal to connect with your board. By default, ``lpuart1`` is
accessible via the on-board FTDI USB to UART converter.
Debugging
=========
You can debug an application in the usual way. Here is an example for the
:zephyr:code-sample:`blinky` application.
.. zephyr-app-commands::
:zephyr-app: samples/basic/blinky
:board: we_oceanus1ev
:maybe-skip-config:
:goals: debug
References
**********
.. target-notes::
.. _`Oceanus-I`: https://www.we-online.com/katalog/de/OCEANUS-I
.. _`STM32WLE5CC`: https://www.st.com/en/microcontrollers-microprocessors/stm32wle5cc.html

View file

@ -0,0 +1,145 @@
/*
* Copyright (c) 2025 Würth Elektronik eiSos GmbH & Co. KG
*
* SPDX-License-Identifier: Apache-2.0
*/
/dts-v1/;
#include <we/oceanus1.dtsi>
#include <zephyr/dt-bindings/input/input-event-codes.h>
/ {
model = "Oceanus-I EV";
compatible = "we,oceanus1ev";
chosen {
zephyr,console = &lpuart1;
zephyr,sram = &sram0;
zephyr,flash = &flash0;
zephyr,code-partition = &slot0_partition;
};
leds {
compatible = "gpio-leds";
yellow_led: led_1 {
gpios = <&gpioa 7 GPIO_ACTIVE_HIGH>;
label = "LED_1";
};
blue_led: led_2 {
gpios = <&gpioa 4 GPIO_ACTIVE_HIGH>;
label = "LED_2";
};
};
gpio_keys {
compatible = "gpio-keys";
wake_up_button: button_0 {
label = "/WAKE_UP";
gpios = <&gpioa 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
zephyr,code = <INPUT_KEY_0>;
};
};
aliases {
led0 = &yellow_led;
led1 = &blue_led;
sw0 = &wake_up_button;
lora0 = &lora;
watchdog0 = &iwdg;
};
};
stm32_lp_tick_source: &lptim1 {
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x80000000>,
<&rcc STM32_SRC_LSE LPTIM1_SEL(3)>;
status = "okay";
};
&clk_lsi {
status = "okay";
};
&pll {
div-m = <1>;
mul-n = <6>;
div-r = <2>;
div-q = <2>;
clocks = <&clk_hsi>;
status = "okay";
};
&iwdg {
status = "okay";
};
&rcc {
clocks = <&pll>;
clock-frequency = <DT_FREQ_M(48)>;
cpu1-prescaler = <1>;
ahb3-prescaler = <1>;
apb1-prescaler = <1>;
apb2-prescaler = <1>;
};
&lpuart1 {
pinctrl-0 = <&lpuart1_tx_pa2 &lpuart1_rx_pa3>;
pinctrl-names = "default";
current-speed = <9600>;
status = "okay";
};
&usart1 {
pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>;
pinctrl-names = "default";
current-speed = <115200>;
status = "okay";
};
&i2c1 {
pinctrl-0 = <&i2c1_scl_pb8 &i2c1_sda_pb7>;
pinctrl-names = "default";
status = "okay";
clock-frequency = <I2C_BITRATE_FAST>;
};
&spi1 {
pinctrl-0 = <&spi1_sck_pb3 &spi1_miso_pb4 &spi1_mosi_pb5>;
pinctrl-names = "default";
cs-gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
status = "okay";
};
&rtc {
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000400>,
<&rcc STM32_SRC_LSE RTC_SEL(2)>;
status = "okay";
};
&flash0 {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x00000000 DT_SIZE_K(32)>;
read-only;
};
slot0_partition: partition@8000 {
label = "image-0";
reg = <0x00008000 DT_SIZE_K(108)>;
};
slot1_partition: partition@23000 {
label = "image-1";
reg = <0x00023000 DT_SIZE_K(108)>;
};
storage_partition: partition@3e000 {
label = "storage";
reg = <0x0003e000 DT_SIZE_K(8)>;
};
};
};

View file

@ -0,0 +1,21 @@
# Copyright (c) 2025 Würth Elektronik eiSos GmbH & Co. KG
# SPDX-License-Identifier: Apache-2.0
identifier: we_oceanus1ev@1.1.0
name: Oceanus-I EV (rev 1.1)
type: mcu
arch: arm
toolchain:
- zephyr
ram: 64
flash: 256
supported:
- counter
- gpio
- i2c
- nvs
- spi
- uart
- watchdog
- lora
vendor: we

View file

@ -0,0 +1,15 @@
# Enable UART driver
CONFIG_SERIAL=y
# Enable GPIO
CONFIG_GPIO=y
# Console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
# Enable MPU
CONFIG_ARM_MPU=y
# Enable HW stack protection
CONFIG_HW_STACK_PROTECTION=y