Skip to content

Commit 36ba2b2

Browse files
wm-eisoskartben
authored andcommitted
boards: we: add Oceanus-I EV board
Add support for Oceanus-I EV board from WE. Signed-off-by: Wajdi ELMuhtadi <[email protected]>
1 parent 3950f20 commit 36ba2b2

File tree

9 files changed

+321
-0
lines changed

9 files changed

+321
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Copyright (c) 2025 Würth Elektronik eiSos GmbH & Co. KG
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
if BOARD_WE_OCEANUS1EV
5+
6+
if LORA
7+
8+
config MAIN_STACK_SIZE
9+
default 2048
10+
11+
endif # LORA
12+
13+
endif # BOARD_WE_OCEANUS1EV
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Copyright (c) 2025 Würth Elektronik eiSos GmbH & Co. KG
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config BOARD_WE_OCEANUS1EV
5+
select SOC_STM32WLE5XX

boards/we/oceanus1ev/board.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
3+
board_runner_args(jlink "--device=STM32WLE5CC" "--speed=4000" "--reset-after-load")
4+
5+
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)

boards/we/oceanus1ev/board.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
board:
2+
name: we_oceanus1ev
3+
full_name: Oceanus-I EV
4+
vendor: we
5+
revision:
6+
format: "major.minor.patch"
7+
default: "1.1.0"
8+
exact: true
9+
revisions:
10+
- name: "1.1.0"
11+
socs:
12+
- name: stm32wle5xx
43.1 KB
Loading

boards/we/oceanus1ev/doc/index.rst

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
.. zephyr:board:: we_oceanus1ev
2+
3+
Overview
4+
********
5+
6+
The we_oceanus1ev board is an evaluation board of the `Oceanus-I`_ radio module.
7+
It provides support for the `STM32WLE5CC`_ ARM CPU and
8+
the following devices:
9+
10+
* CLOCK
11+
* FLASH
12+
* :abbr:`GPIO (General Purpose Input Output)`
13+
* :abbr:`I2C (Inter-Integrated Circuit)`
14+
* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
15+
* RADIO (LoRa)
16+
* :abbr:`RTC (STM32 RTC System Clock)`
17+
* :abbr:`SPI (Serial Peripheral Interface)`
18+
* :abbr:`UART (Universal asynchronous receiver-transmitter)`
19+
* :abbr:`WDT (Watchdog Timer)`
20+
21+
Hardware
22+
********
23+
24+
The board has below hardware features:
25+
26+
- `Oceanus-I`_, 256KB Flash, 64KB RAM with external antenna
27+
- 1 FTDI chip (USB to UART) converter
28+
- 1 I2C WE sensor EV-Boards connector
29+
- 1 SPI WE sensor EV-Boards connector
30+
- 2 application LEDs
31+
- 1 application, and 1 reset push-button
32+
33+
Supported Features
34+
==================
35+
36+
The ``we_oceanus1ev`` board supports the following
37+
hardware features:
38+
39+
+-----------+------------+----------------------+
40+
| Interface | Controller | Driver/Component |
41+
+===========+============+======================+
42+
| CLOCK | on-chip | clock_control |
43+
+-----------+------------+----------------------+
44+
| FLASH | on-chip | flash |
45+
+-----------+------------+----------------------+
46+
| GPIO | on-chip | gpio |
47+
+-----------+------------+----------------------+
48+
| I2C(M) | on-chip | i2c |
49+
+-----------+------------+----------------------+
50+
| MPU | on-chip | arch/arm |
51+
+-----------+------------+----------------------+
52+
| NVIC | on-chip | arch/arm |
53+
+-----------+------------+----------------------+
54+
| RADIO | on-chip | LoRa |
55+
+-----------+------------+----------------------+
56+
| RTC | on-chip | system clock |
57+
+-----------+------------+----------------------+
58+
| SPI(M/S) | on-chip | spi |
59+
+-----------+------------+----------------------+
60+
| UART | on-chip | serial |
61+
+-----------+------------+----------------------+
62+
| WDT | on-chip | watchdog |
63+
+-----------+------------+----------------------+
64+
65+
Programming and Debugging
66+
*************************
67+
68+
Applications for the ``we_oceanus1ev`` board can be built the
69+
usual way (see :ref:`build_an_application`).
70+
71+
The board debugged and flashed with an external debug probe connected
72+
to the SWD pins, current native support is for the JLink debug probe.
73+
74+
Flashing
75+
========
76+
77+
Connect the board to your host computer and build and flash an application.
78+
79+
.. zephyr-app-commands::
80+
:zephyr-app: samples/hello_world
81+
:board: we_oceanus1ev
82+
:goals: build flash
83+
84+
Run a serial terminal to connect with your board. By default, ``lpuart1`` is
85+
accessible via the on-board FTDI USB to UART converter.
86+
87+
Debugging
88+
=========
89+
90+
You can debug an application in the usual way. Here is an example for the
91+
:zephyr:code-sample:`blinky` application.
92+
93+
.. zephyr-app-commands::
94+
:zephyr-app: samples/basic/blinky
95+
:board: we_oceanus1ev
96+
:maybe-skip-config:
97+
:goals: debug
98+
99+
References
100+
**********
101+
102+
.. target-notes::
103+
104+
.. _`Oceanus-I`: https://www.we-online.com/katalog/de/OCEANUS-I
105+
.. _`STM32WLE5CC`: https://www.st.com/en/microcontrollers-microprocessors/stm32wle5cc.html
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
/*
2+
* Copyright (c) 2025 Würth Elektronik eiSos GmbH & Co. KG
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/dts-v1/;
8+
#include <we/oceanus1.dtsi>
9+
#include <zephyr/dt-bindings/input/input-event-codes.h>
10+
11+
/ {
12+
model = "Oceanus-I EV";
13+
compatible = "we,oceanus1ev";
14+
15+
chosen {
16+
zephyr,console = &lpuart1;
17+
zephyr,sram = &sram0;
18+
zephyr,flash = &flash0;
19+
zephyr,code-partition = &slot0_partition;
20+
};
21+
22+
leds {
23+
compatible = "gpio-leds";
24+
25+
yellow_led: led_1 {
26+
gpios = <&gpioa 7 GPIO_ACTIVE_HIGH>;
27+
label = "LED_1";
28+
};
29+
30+
blue_led: led_2 {
31+
gpios = <&gpioa 4 GPIO_ACTIVE_HIGH>;
32+
label = "LED_2";
33+
};
34+
};
35+
36+
gpio_keys {
37+
compatible = "gpio-keys";
38+
39+
wake_up_button: button_0 {
40+
label = "/WAKE_UP";
41+
gpios = <&gpioa 0 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
42+
zephyr,code = <INPUT_KEY_0>;
43+
};
44+
};
45+
46+
aliases {
47+
led0 = &yellow_led;
48+
led1 = &blue_led;
49+
sw0 = &wake_up_button;
50+
lora0 = &lora;
51+
watchdog0 = &iwdg;
52+
};
53+
};
54+
55+
stm32_lp_tick_source: &lptim1 {
56+
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x80000000>,
57+
<&rcc STM32_SRC_LSE LPTIM1_SEL(3)>;
58+
status = "okay";
59+
};
60+
61+
&clk_lsi {
62+
status = "okay";
63+
};
64+
65+
&pll {
66+
div-m = <1>;
67+
mul-n = <6>;
68+
div-r = <2>;
69+
div-q = <2>;
70+
clocks = <&clk_hsi>;
71+
status = "okay";
72+
};
73+
74+
&iwdg {
75+
status = "okay";
76+
};
77+
78+
&rcc {
79+
clocks = <&pll>;
80+
clock-frequency = <DT_FREQ_M(48)>;
81+
cpu1-prescaler = <1>;
82+
ahb3-prescaler = <1>;
83+
apb1-prescaler = <1>;
84+
apb2-prescaler = <1>;
85+
};
86+
87+
&lpuart1 {
88+
pinctrl-0 = <&lpuart1_tx_pa2 &lpuart1_rx_pa3>;
89+
pinctrl-names = "default";
90+
current-speed = <9600>;
91+
status = "okay";
92+
};
93+
94+
&usart1 {
95+
pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>;
96+
pinctrl-names = "default";
97+
current-speed = <115200>;
98+
status = "okay";
99+
};
100+
101+
&i2c1 {
102+
pinctrl-0 = <&i2c1_scl_pb8 &i2c1_sda_pb7>;
103+
pinctrl-names = "default";
104+
status = "okay";
105+
clock-frequency = <I2C_BITRATE_FAST>;
106+
};
107+
108+
&spi1 {
109+
pinctrl-0 = <&spi1_sck_pb3 &spi1_miso_pb4 &spi1_mosi_pb5>;
110+
pinctrl-names = "default";
111+
cs-gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
112+
status = "okay";
113+
};
114+
115+
&rtc {
116+
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000400>,
117+
<&rcc STM32_SRC_LSE RTC_SEL(2)>;
118+
status = "okay";
119+
};
120+
121+
&flash0 {
122+
partitions {
123+
compatible = "fixed-partitions";
124+
#address-cells = <1>;
125+
#size-cells = <1>;
126+
127+
boot_partition: partition@0 {
128+
label = "mcuboot";
129+
reg = <0x00000000 DT_SIZE_K(32)>;
130+
read-only;
131+
};
132+
slot0_partition: partition@8000 {
133+
label = "image-0";
134+
reg = <0x00008000 DT_SIZE_K(108)>;
135+
};
136+
slot1_partition: partition@23000 {
137+
label = "image-1";
138+
reg = <0x00023000 DT_SIZE_K(108)>;
139+
};
140+
storage_partition: partition@3e000 {
141+
label = "storage";
142+
reg = <0x0003e000 DT_SIZE_K(8)>;
143+
};
144+
};
145+
};
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Copyright (c) 2025 Würth Elektronik eiSos GmbH & Co. KG
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
identifier: [email protected]
5+
name: Oceanus-I EV (rev 1.1)
6+
type: mcu
7+
arch: arm
8+
toolchain:
9+
- zephyr
10+
ram: 64
11+
flash: 256
12+
supported:
13+
- counter
14+
- gpio
15+
- i2c
16+
- nvs
17+
- spi
18+
- uart
19+
- watchdog
20+
- lora
21+
vendor: we
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Enable UART driver
2+
CONFIG_SERIAL=y
3+
4+
# Enable GPIO
5+
CONFIG_GPIO=y
6+
7+
# Console
8+
CONFIG_CONSOLE=y
9+
CONFIG_UART_CONSOLE=y
10+
11+
# Enable MPU
12+
CONFIG_ARM_MPU=y
13+
14+
# Enable HW stack protection
15+
CONFIG_HW_STACK_PROTECTION=y

0 commit comments

Comments
 (0)