如何增加一个新的模组支持
ESP-AT 工程支持多个模组,并提供了模组的配置文件:factory_param_data.csv 和 module_config。如果要在 ESP-AT 工程中添加对某个 ESP32 模组的支持,则需要修改这些配置文件。此处的”ESP32 模组“指的是:
ESP-AT 工程暂未适配支持的模组,包括 ESP-AT 已适配相应芯片的模组,和未适配相应芯片的模组。但不建议添加后者,因为工作量巨大,此文档也不做阐述。
ESP-AT 工程已适配支持的模组,但用户需要对其修改默认配置的。
本文档将说明如何在 ESP-AT 工程中为 ESP-AT 已支持的某款 ESP32 芯片/模组添加新的模组支持。下文将增加默认启用 文件系统 AT 命令集 的配置为例,来添加新的模组支持。
第一步:配置新增模组的出厂参数
打开本地的 factory_param_data.csv ,在表格最后插入一行,根据实际需要设置相关参数。本例中,我们将 platform
设置为 PLATFORM_ESP32
、module_name
设置为 ESP32-USER-DEFINED
,其他参数设置值见下表(参数含义请参考 出厂参数配置介绍)。
platform: PLATFORM_ESP32
module_name: ESP32-USER-DEFINED
description:
version: 4
max_tx_power: 78
uart_port: 1
start_channel: 1
channel_num: 13
country_code: CN
uart_baudrate: -1
uart_tx_pin: -1
uart_rx_pin: -1
uart_cts_pin: -1
uart_rts_pin: -1
第二步:配置新增模组的 OTA
在 at/src/at_default_config.c 中的 esp_at_module_info
结构体中添加自定义模组的信息。
esp_at_module_info
结构体提供 OTA
升级验证 token
:
typedef struct {
char* module_name;
char* ota_token;
char* ota_ssl_token;
} esp_at_module_info_t;
若不想使用 OTA
功能,那么第二个参数 ota_token
和第三个参数 ota_ssl_token
应该设置为 NULL
,第一个参数 module_name
必须与 factory_param_data.csv 文件中的 module_name
一致。
下面是修改后的 esp_at_module_info
结构体。
static const esp_at_module_info_t esp_at_module_info[] = {
#if defined(CONFIG_IDF_TARGET_ESP32)
...
#endif
#if defined(CONFIG_IDF_TARGET_ESP32C3)
...
#endif
#if defined(CONFIG_IDF_TARGET_ESP32C2)
...
#endif
#if defined(CONFIG_IDF_TARGET_ESP32C6)
...
#endif
#if defined(CONFIG_IDF_TARGET_ESP32)
{"MY_MODULE", CONFIG_ESP_AT_OTA_TOKEN_MY_MODULE, CONFIG_ESP_AT_OTA_SSL_TOKEN_MY_MODULE }, // MY_MODULE
#endif
};
宏 CONFIG_ESP_AT_OTA_TOKEN_MY_MODULE
和宏 CONFIG_ESP_AT_OTA_SSL_TOKEN_MY_MODULE
定义在头文件 at/private_include/at_ota_token.h 中。
#if defined(CONFIG_IDF_TARGET_ESP32)
...
#define CONFIG_ESP_AT_OTA_TOKEN_MY_MODULE CONFIG_ESP_AT_OTA_TOKEN_DEFAULT
...
#define CONFIG_ESP_AT_OTA_SSL_TOKEN_MY_MODULE CONFIG_ESP_AT_OTA_SSL_TOKEN_DEFAULT
第三步:新增模组配置
下表列出了 ESP-AT 工程支持的平台(即芯片系列)名称、模组配置名称以及各个模组配置对应的配置文件的位置。
平台 |
模组配置名称 |
对应的默认配置文件 |
---|---|---|
ESP32 |
WROOM-32 |
|
ESP32 |
PICO-D4 |
|
ESP32 |
SOLO-1 |
|
ESP32 |
MINI-1 |
|
ESP32 |
WROVER-32 |
|
ESP32 |
ESP32-D2WD |
|
ESP32 |
ESP32-SDIO |
|
ESP32-C2 |
ESP32C2-2MB |
|
ESP32-C2 |
ESP32C2-BLE-2MB |
|
ESP32-C2 |
ESP32C2-4MB |
|
ESP32-C3 |
MINI-1 |
|
ESP32-C3 |
ESP32C3-SPI |
|
ESP32-C3 |
ESP32C3_RAINMAKER |
|
ESP32-C6 |
ESP32C6-4MB |
注意
当 python build.py install 中的
silence mode
为0
时,模组配置对应的配置文件为sdkconfig.defaults
。当 python build.py install 中的
silence mode
为1
时,模组配置对应的配置文件为sdkconfig_silence.defaults
。
首先,进入 module_config
文件夹,创建一个子文件夹来存放模组配置的配置文件(文件夹名称为小写),然后在其中加入配置文件 IDF_VERSION、patch、at_customize.csv、partitions_at.csv、sdkconfig.defaults 以及 sdkconfig_silence.defaults。
本例中,我们复制粘贴 module_esp32_default
文件夹及其中的配置文件,并重命名为 module_esp32-user-defined
。在本例中,配置文件 IDF_VERSION、patch、at_customize.csv 和 partitions_at.csv 无需修改,我们只需修改 sdkconfig.defaults 和 sdkconfig_silence.defaults:
使用
module_esp32-user-defined
文件夹下的分区表,需要修改如下配置CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="module_config/module_esp32-user-defined/partitions_at.csv" CONFIG_PARTITION_TABLE_FILENAME="module_config/module_esp32-user-defined/partitions_at.csv" CONFIG_AT_CUSTOMIZED_PARTITION_TABLE_FILE="module_config/module_esp32-user-defined/at_customize.csv"
添加启用 文件系统 AT 命令 配置
CONFIG_AT_FS_COMMAND_SUPPORT=y
完成上述步骤后,可重新编译 ESP-AT 工程生成模组固件。本例中,我们在本地编译 AT 固件 第三步安装环境 时,就可以选择 PLATFORM_ESP32
和 ESP32-USER-DEFINED
来生成 AT 固件。