Просмотр исходного кода

examples: modbus add support for target esp32h2

aleks 2 лет назад
Родитель
Сommit
2c7ea7f819

+ 0 - 4
examples/protocols/.build-test-rules.yml

@@ -100,10 +100,6 @@ examples/protocols/l2tap:
       temporary: true
       reason: lack of runners
 
-examples/protocols/modbus:
-  disable:
-    - if: IDF_TARGET in ["esp32h2"]
-
 examples/protocols/mqtt/ssl:
   disable_test:
     - if: IDF_TARGET != "esp32"

+ 11 - 11
examples/protocols/modbus/serial/mb_master/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Modbus Master Example
 
@@ -95,15 +95,15 @@ Configure the UART pins used for modbus communication using and table below.
 Define the communication mode parameter for master and slave in Kconfig - CONFIG_MB_COMM_MODE (must be the same for master and slave devices in one segment).
 Configure the slave address for each slave in the Modbus segment (the CONFIG_MB_SLAVE_ADDR in Kconfig).
 ```
-  --------------------------------------------------------------------------------------------------------------------------
-  |  UART Interface       | #define            | Default pins for      | Default pins for      | External RS485 Driver Pin |
-  |                       |                    | ESP32 (C6)            | ESP32-S2 (S3, C3, C2) |                           |
-  | ----------------------|--------------------|-----------------------|-----------------------|---------------------------|
-  | Transmit Data (TxD)   | CONFIG_MB_UART_TXD | GPIO23                | GPIO9                 | DI                        |
-  | Receive Data (RxD)    | CONFIG_MB_UART_RXD | GPIO22                | GPIO8                 | RO                        |
-  | Request To Send (RTS) | CONFIG_MB_UART_RTS | GPIO18                | GPIO10                | ~RE/DE                    |
-  | Ground                | n/a                | GND                   | GND                   | GND                       |
-  --------------------------------------------------------------------------------------------------------------------------
+  ------------------------------------------------------------------------------------------------------------------------------
+  |  UART Interface       | #define            | Default pins for      | Default pins for          | External RS485 Driver Pin |
+  |                       |                    | ESP32 (C6)            | ESP32-S2 (S3, C3, C2, H2) |                           |
+  | ----------------------|--------------------|-----------------------|---------------------------|---------------------------|
+  | Transmit Data (TxD)   | CONFIG_MB_UART_TXD | GPIO23                | GPIO9                     | DI                        |
+  | Receive Data (RxD)    | CONFIG_MB_UART_RXD | GPIO22                | GPIO8                     | RO                        |
+  | Request To Send (RTS) | CONFIG_MB_UART_RTS | GPIO18                | GPIO10                    | ~RE/DE                    |
+  | Ground                | n/a                | GND                   | GND                       | GND                       |
+  ------------------------------------------------------------------------------------------------------------------------------
 ```
 Note: Each target chip has different GPIO pins available for UART connection. Please refer to UART documentation for selected target for more information.
 

+ 20 - 7
examples/protocols/modbus/serial/mb_master/main/Kconfig.projbuild

@@ -2,12 +2,22 @@ menu "Modbus Example Configuration"
 
     orsource "$IDF_PATH/examples/common_components/env_caps/$IDF_TARGET/Kconfig.env_caps"
 
+    config MB_UART_PORT_ONE
+        bool
+        default y
+        depends on (ESP_CONSOLE_UART_NUM !=1) && (SOC_UART_NUM > 1)
+
+    config MB_UART_PORT_TWO
+        bool
+        default y
+        depends on (ESP_CONSOLE_UART_NUM !=2) && (SOC_UART_NUM > 2)
+
     config MB_UART_PORT_NUM
         int "UART port number"
-        range 0 2 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S3
-        default 2 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S3
-        range 0 1 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C6
-        default 1 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C6
+        range 0 2 if MB_UART_PORT_TWO
+        default 2 if MB_UART_PORT_TWO
+        range 0 1 if MB_UART_PORT_ONE
+        default 1 if MB_UART_PORT_ONE
         help
             UART communication port number for Modbus example.
 
@@ -22,7 +32,8 @@ menu "Modbus Example Configuration"
         int "UART RXD pin number"
         range ENV_GPIO_RANGE_MIN ENV_GPIO_IN_RANGE_MAX
         default 22 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32C6
-        default 8 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2
+        default 8 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C3 ||\
+            IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32H2
         help
             GPIO number for UART RX pin. See UART documentation for more information
             about available pin numbers for UART.
@@ -31,7 +42,8 @@ menu "Modbus Example Configuration"
         int "UART TXD pin number"
         range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
         default 23 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32C6
-        default 9 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2
+        default 9 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C3 ||\
+            IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32H2
         help
             GPIO number for UART TX pin. See UART documentation for more information
             about available pin numbers for UART.
@@ -40,7 +52,8 @@ menu "Modbus Example Configuration"
         int "UART RTS pin number"
         range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
         default 18 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32C6
-        default 10 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2
+        default 10 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C3 ||\
+            IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32H2
         help
             GPIO number for UART RTS pin. This pin is connected to
             ~RE/DE pin of RS485 transceiver to switch direction.

+ 11 - 11
examples/protocols/modbus/serial/mb_slave/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Modbus Slave Example
 
@@ -45,15 +45,15 @@ idf.py menuconfig
 Select Modbus Example Configuration menu item.
 Configure the UART pins used for modbus communication using the command and table below.
 ```
-  --------------------------------------------------------------------------------------------------------------------------
-  |  UART Interface       | #define            | Default pins for      | Default pins for      | External RS485 Driver Pin |
-  |                       |                    | ESP32 (C6)            | ESP32-S2 (S3, C3, C2) |                           |
-  | ----------------------|--------------------|-----------------------|-----------------------|---------------------------|
-  | Transmit Data (TxD)   | CONFIG_MB_UART_TXD | GPIO23                | GPIO9                 | DI                        |
-  | Receive Data (RxD)    | CONFIG_MB_UART_RXD | GPIO22                | GPIO8                 | RO                        |
-  | Request To Send (RTS) | CONFIG_MB_UART_RTS | GPIO18                | GPIO10                | ~RE/DE                    |
-  | Ground                | n/a                | GND                   | GND                   | GND                       |
-  --------------------------------------------------------------------------------------------------------------------------
+  ------------------------------------------------------------------------------------------------------------------------------
+  |  UART Interface       | #define            | Default pins for      | Default pins for          | External RS485 Driver Pin |
+  |                       |                    | ESP32 (C6)            | ESP32-S2 (S3, C3, C2, H2) |                           |
+  | ----------------------|--------------------|-----------------------|---------------------------|---------------------------|
+  | Transmit Data (TxD)   | CONFIG_MB_UART_TXD | GPIO23                | GPIO9                     | DI                        |
+  | Receive Data (RxD)    | CONFIG_MB_UART_RXD | GPIO22                | GPIO8                     | RO                        |
+  | Request To Send (RTS) | CONFIG_MB_UART_RTS | GPIO18                | GPIO10                    | ~RE/DE                    |
+  | Ground                | n/a                | GND                   | GND                       | GND                       |
+  ------------------------------------------------------------------------------------------------------------------------------
 ```
 Note: Each target chip has different GPIO pins available for UART connection. Please refer to UART documentation for selected target for more information.
 

+ 20 - 7
examples/protocols/modbus/serial/mb_slave/main/Kconfig.projbuild

@@ -2,12 +2,22 @@ menu "Modbus Example Configuration"
 
     orsource "$IDF_PATH/examples/common_components/env_caps/$IDF_TARGET/Kconfig.env_caps"
 
+    config MB_UART_PORT_ONE
+        bool
+        default y
+        depends on (ESP_CONSOLE_UART_NUM !=1) && (SOC_UART_NUM > 1)
+
+    config MB_UART_PORT_TWO
+        bool
+        default y
+        depends on (ESP_CONSOLE_UART_NUM !=2) && (SOC_UART_NUM > 2)
+
     config MB_UART_PORT_NUM
         int "UART port number"
-        range 0 2 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S3
-        default 2 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S3
-        range 0 1 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C6
-        default 1 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C6
+        range 0 2 if MB_UART_PORT_TWO
+        default 2 if MB_UART_PORT_TWO
+        range 0 1 if MB_UART_PORT_ONE
+        default 1 if MB_UART_PORT_ONE
         help
             UART communication port number for Modbus example.
 
@@ -22,7 +32,8 @@ menu "Modbus Example Configuration"
         int "UART RXD pin number"
         range ENV_GPIO_RANGE_MIN ENV_GPIO_IN_RANGE_MAX
         default 22 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32C6
-        default 8 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2
+        default 8 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C3 ||\
+            IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32H2
         help
             GPIO number for UART RX pin. See UART documentation for more information
             about available pin numbers for UART.
@@ -31,7 +42,8 @@ menu "Modbus Example Configuration"
         int "UART TXD pin number"
         range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
         default 23 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32C6
-        default 9 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2
+        default 9 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C3 ||\
+            IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32H2
         help
             GPIO number for UART TX pin. See UART documentation for more information
             about available pin numbers for UART.
@@ -40,7 +52,8 @@ menu "Modbus Example Configuration"
         int "UART RTS pin number"
         range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
         default 18 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32C6
-        default 10 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C2
+        default 10 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32C3 ||\
+            IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32H2
         help
             GPIO number for UART RTS pin. This pin is connected to
             ~RE/DE pin of RS485 transceiver to switch direction.

+ 2 - 2
examples/protocols/modbus/tcp/mb_tcp_master/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Modbus TCP Master Example
 

+ 2 - 2
examples/protocols/modbus/tcp/mb_tcp_slave/README.md

@@ -1,5 +1,5 @@
-| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
-| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
+| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
+| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
 
 # Modbus Slave Example