examples: modbus add support for target esp32h2

This commit is contained in:
aleks
2023-05-24 16:36:11 +02:00
parent 3187b8b326
commit c41579d2d3
7 changed files with 66 additions and 44 deletions

View File

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

View File

@ -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 # 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). 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). 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 | | UART Interface | #define | Default pins for | Default pins for | External RS485 Driver Pin |
| | | ESP32 (C6) | ESP32-S2 (S3, C3, C2) | | | | | ESP32 (C6) | ESP32-S2 (S3, C3, C2, H2) | |
| ----------------------|--------------------|-----------------------|-----------------------|---------------------------| | ----------------------|--------------------|-----------------------|---------------------------|---------------------------|
| Transmit Data (TxD) | CONFIG_MB_UART_TXD | GPIO23 | GPIO9 | DI | | Transmit Data (TxD) | CONFIG_MB_UART_TXD | GPIO23 | GPIO9 | DI |
| Receive Data (RxD) | CONFIG_MB_UART_RXD | GPIO22 | GPIO8 | RO | | Receive Data (RxD) | CONFIG_MB_UART_RXD | GPIO22 | GPIO8 | RO |
| Request To Send (RTS) | CONFIG_MB_UART_RTS | GPIO18 | GPIO10 | ~RE/DE | | Request To Send (RTS) | CONFIG_MB_UART_RTS | GPIO18 | GPIO10 | ~RE/DE |
| Ground | n/a | GND | GND | GND | | 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. Note: Each target chip has different GPIO pins available for UART connection. Please refer to UART documentation for selected target for more information.

View File

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

View File

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

View File

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

View File

@ -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 # Modbus TCP Master Example

View File

@ -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 # Modbus Slave Example