From f8ab959d7e94c85156b89e914232e7bca8fbc217 Mon Sep 17 00:00:00 2001 From: Federico Di Gregorio Date: Thu, 17 Oct 2024 15:28:03 +0200 Subject: [PATCH] boards: opta: RS485 support This set of changes enables the RS485 hardware connected to usart3 and provides some overlays that allow for easily running the modbus rtu_client and rtu_server samples on Opta. Signed-off-by: Federico Di Gregorio --- boards/arduino/opta/arduino_opta-common.dtsi | 12 ++++++++++++ boards/arduino/opta/doc/index.rst | 2 ++ .../boards/arduino_opta_stm32h747xx_m7.overlay | 12 ++++++++++++ .../boards/arduino_opta_stm32h747xx_m7.overlay | 12 ++++++++++++ .../boards/arduino_opta_stm32h747xx_m7.overlay | 12 ++++++++++++ 5 files changed, 50 insertions(+) create mode 100644 samples/subsys/modbus/rtu_client/boards/arduino_opta_stm32h747xx_m7.overlay create mode 100644 samples/subsys/modbus/rtu_server/boards/arduino_opta_stm32h747xx_m7.overlay create mode 100644 tests/subsys/modbus/boards/arduino_opta_stm32h747xx_m7.overlay diff --git a/boards/arduino/opta/arduino_opta-common.dtsi b/boards/arduino/opta/arduino_opta-common.dtsi index add572d6cbc..580688eba79 100644 --- a/boards/arduino/opta/arduino_opta-common.dtsi +++ b/boards/arduino/opta/arduino_opta-common.dtsi @@ -91,3 +91,15 @@ &rng { status = "okay"; }; + +&usart3 { + pinctrl-0 = <&usart3_tx_pb10 &usart3_rx_pb11 &usart3_cts_pb13 &usart3_de_pb14>; + pinctrl-names = "default"; + current-speed = <115200>; + /* The RS485 is often used with the ModBus protocol. */ + modbus0 { + compatible = "zephyr,modbus-serial"; + de-gpios = <&gpiob 14 GPIO_ACTIVE_HIGH>; + re-gpios = <&gpiob 13 GPIO_ACTIVE_LOW>; + }; +}; diff --git a/boards/arduino/opta/doc/index.rst b/boards/arduino/opta/doc/index.rst index 01badd338ff..8c6aa788487 100644 --- a/boards/arduino/opta/doc/index.rst +++ b/boards/arduino/opta/doc/index.rst @@ -67,6 +67,8 @@ supports the following hardware features: +-----------+------------+-------------------------------------+ | ETHERNET | on-board | eth | +-----------+------------+-------------------------------------+ +| RS485 | on-board | uart | ++-----------+------------+-------------------------------------+ The ``arduino_opta/stm32h747xx/m4`` board target supports the following hardware features: diff --git a/samples/subsys/modbus/rtu_client/boards/arduino_opta_stm32h747xx_m7.overlay b/samples/subsys/modbus/rtu_client/boards/arduino_opta_stm32h747xx_m7.overlay new file mode 100644 index 00000000000..1838da4c32c --- /dev/null +++ b/samples/subsys/modbus/rtu_client/boards/arduino_opta_stm32h747xx_m7.overlay @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2024 DNDG srl + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&usart3 { + modbus0 { + status = "okay"; + }; + status = "okay"; +}; diff --git a/samples/subsys/modbus/rtu_server/boards/arduino_opta_stm32h747xx_m7.overlay b/samples/subsys/modbus/rtu_server/boards/arduino_opta_stm32h747xx_m7.overlay new file mode 100644 index 00000000000..1838da4c32c --- /dev/null +++ b/samples/subsys/modbus/rtu_server/boards/arduino_opta_stm32h747xx_m7.overlay @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2024 DNDG srl + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&usart3 { + modbus0 { + status = "okay"; + }; + status = "okay"; +}; diff --git a/tests/subsys/modbus/boards/arduino_opta_stm32h747xx_m7.overlay b/tests/subsys/modbus/boards/arduino_opta_stm32h747xx_m7.overlay new file mode 100644 index 00000000000..1838da4c32c --- /dev/null +++ b/tests/subsys/modbus/boards/arduino_opta_stm32h747xx_m7.overlay @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2024 DNDG srl + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&usart3 { + modbus0 { + status = "okay"; + }; + status = "okay"; +};