From 8d5139c6213b4fb9377d43790dbcf23b1fd5c8d5 Mon Sep 17 00:00:00 2001 From: Eduard Iten Date: Thu, 12 Jun 2025 10:00:49 +0200 Subject: [PATCH] Added board files for valve node --- .../boards/iten/valve_node/Kconfig.valve_node | 2 + software/boards/iten/valve_node/board.cmake | 10 + software/boards/iten/valve_node/board.yml | 10 + .../boards/iten/valve_node/valve_node.dts | 172 ++++++++++++++++++ .../iten/valve_node/valve_node_defconfig | 10 + 5 files changed, 204 insertions(+) create mode 100644 software/boards/iten/valve_node/Kconfig.valve_node create mode 100644 software/boards/iten/valve_node/board.cmake create mode 100644 software/boards/iten/valve_node/board.yml create mode 100644 software/boards/iten/valve_node/valve_node.dts create mode 100644 software/boards/iten/valve_node/valve_node_defconfig diff --git a/software/boards/iten/valve_node/Kconfig.valve_node b/software/boards/iten/valve_node/Kconfig.valve_node new file mode 100644 index 0000000..07f18f3 --- /dev/null +++ b/software/boards/iten/valve_node/Kconfig.valve_node @@ -0,0 +1,2 @@ +config BOARD_VALVE_NODE + select SOC_STM32F103XB \ No newline at end of file diff --git a/software/boards/iten/valve_node/board.cmake b/software/boards/iten/valve_node/board.cmake new file mode 100644 index 0000000..9b122cd --- /dev/null +++ b/software/boards/iten/valve_node/board.cmake @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: Apache-2.0 + +# keep first +board_runner_args(stm32cubeprogrammer "--port=swd" "--reset-mode=hw") +board_runner_args(jlink "--device=STM32F103RB" "--speed=4000") + +# keep first +include(${ZEPHYR_BASE}/boards/common/stm32cubeprogrammer.board.cmake) +include(${ZEPHYR_BASE}/boards/common/openocd-stm32.board.cmake) +include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) diff --git a/software/boards/iten/valve_node/board.yml b/software/boards/iten/valve_node/board.yml new file mode 100644 index 0000000..8e52ca0 --- /dev/null +++ b/software/boards/iten/valve_node/board.yml @@ -0,0 +1,10 @@ +board: + name: valve_node + full_name: Irrigation system CANbus valve node + socs: + - name: stm32f103xb + # revision: + # format: number + # default: "1" + # revisions: + # -name: "1" \ No newline at end of file diff --git a/software/boards/iten/valve_node/valve_node.dts b/software/boards/iten/valve_node/valve_node.dts new file mode 100644 index 0000000..7662552 --- /dev/null +++ b/software/boards/iten/valve_node/valve_node.dts @@ -0,0 +1,172 @@ +/* + * Copyright (c) 2017 Linaro Limited + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include +#include +#include + +/ { + model = "STMicroelectronics STM32F103RB-NUCLEO board"; + compatible = "st,stm32f103rb-nucleo"; + + chosen { + zephyr,console = &usart2; + zephyr,shell-uart = &usart2; + zephyr,sram = &sram0; + zephyr,flash = &flash0; + zephyr,canbus = &can1; + }; + + leds: leds { + compatible = "gpio-leds"; + + green_led_2: led_2 { + gpios = <&gpioa 5 GPIO_ACTIVE_HIGH>; + label = "User LD2"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + + user_button: button { + label = "User"; + gpios = <&gpioc 13 GPIO_ACTIVE_LOW>; + zephyr,code = ; + }; + + endstopopen: endstop_open { + gpios = <&gpiob 4 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + label = "Endstop Open"; + }; + + endstopclose: endstop_closed { + gpios = <&gpiob 5 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + label = "Endstop Close"; + }; + + statusopen: status_open { + gpios = <&gpiob 14 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + label = "Status Open"; + }; + + statusclose: status_close { + gpios = <&gpioa 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; + label = "Status Close"; + }; + }; + + aliases { + led0 = &green_led_2; + sw0 = &user_button; + watchdog0 = &iwdg; + die-temp0 = &die_temp; + }; + + + zephyr,user { + motoropen: motor_open { + gpios = <&gpiob 13 0>; + label = "Motor Open"; + }; + }; +}; + +&clk_lsi { + status = "okay"; +}; + +&clk_hse { + hse-bypass; + clock-frequency = ; /* STLink 8MHz clock */ + status = "okay"; +}; + +&pll { + mul = <9>; + clocks = <&clk_hse>; + status = "okay"; +}; + +&rcc { + clocks = <&pll>; + clock-frequency = ; + ahb-prescaler = <1>; + apb1-prescaler = <2>; + apb2-prescaler = <1>; + adc-prescaler = <2>; +}; + +&usart1 { + pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>; + pinctrl-names = "default"; + current-speed = <115200>; + status = "okay"; +}; + +&usart2 { + pinctrl-0 = <&usart2_tx_pa2 &usart2_rx_pa3>; + pinctrl-names = "default"; + current-speed = <115200>; + status = "okay"; +}; + +&i2c1 { + pinctrl-0 = <&i2c1_scl_remap1_pb8 &i2c1_sda_remap1_pb9>; + pinctrl-names = "default"; + status = "okay"; + clock-frequency = ; +}; + +&iwdg { + status = "okay"; +}; + +&rtc { + clocks = <&rcc STM32_CLOCK_BUS_APB1 0x10000000>, + <&rcc STM32_SRC_LSI RTC_SEL(2)>; + status = "okay"; +}; + +&adc1 { + pinctrl-0 = <&adc1_in0_pa0>; + pinctrl-names = "default"; + status = "okay"; +}; + +&die_temp { + status = "okay"; +}; + +&dma1 { + status = "okay"; +}; + +&flash0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + /* Set 2KB of storage at the end of 128KB flash */ + storage_partition: partition@1f800 { + label = "storage"; + reg = <0x0001f800 DT_SIZE_K(2)>; + }; + }; +}; + +&can1 { + pinctrl-0 = <&can_rx_pa11 &can_tx_pa12>; + pinctrl-names = "default"; + status= "okay"; + bus-speed = < 125000 >; +}; + +&exti { + status = "okay"; +}; diff --git a/software/boards/iten/valve_node/valve_node_defconfig b/software/boards/iten/valve_node/valve_node_defconfig new file mode 100644 index 0000000..5568aa3 --- /dev/null +++ b/software/boards/iten/valve_node/valve_node_defconfig @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: Apache-2.0 + +# enable uart driver +CONFIG_SERIAL=y +# enable console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# enable GPIO +CONFIG_GPIO=y