ESP32-S31-Zero 使用教程

产品特性​

  • ESP32-S31 芯片采用 32 位 RISC-V 双核处理器,主频最高为 320 MHz,内置 512 KB SRAM。
  • 芯片集成 2.4 GHz Wi-Fi 6、Bluetooth 5.4 (LE)、经典蓝牙 (BR/EDR) 和 IEEE 802.15.4,支持 Thread 和 Zigbee 协议;当前配套示例包含 Wi-Fi 和 BLE 应用。
  • 芯片具有 6 个 SPI,其中 2 个专用于 PSRAM、2 个专用于 Flash、2 个为通用 SPI,另提供 1 个低功耗 LP SPI。
  • 芯片具有 2 个 I2C、4 个 UART、2 个 I2S、2 个 12 位 SAR ADC(最多 16 通道)和 2 个 DAC,另提供各 1 个低功耗 LP I2C 和 LP UART。
  • 提供 16 MB 或 32 MB Flash、16 MB 或 32 MB PSRAM 的四种存储组合,分别对应 N16R16、N32R16、N16R32 和 N32R32 系列。
  • 采用邮票孔设计,引出 15 路 GPIO,可焊接集成到自定义底板;另提供预焊排针版本。
  • 配备板载 2.4 GHz 贴片天线或 IPEX-4 外接天线接口,具体以所选版本为准。
  • 集成 40 Pin 扩展连接器,可连接 RGB LCD、触摸屏及 SD 卡扩展设备。
  • USB Type-C 接口连接芯片的 USB Serial/JTAG,可用于程序下载和控制台通信。
  • 板载 WS2812B-1010 RGB LED,以及 BOOT 和 RESET 按键。
  • 配套提供 12 个 ESP-IDF 示例,覆盖 GPIO、RGB LED、按键、UART、I2C、Wi-Fi、BLE 和显示、触摸、SD 卡等外设测试。

外设数量依据 ESP32-S31 芯片技术规格书 预发布版 v0.5,表示芯片级资源;具体可用信号取决于开发板引出、引脚复用及 SDK 支持情况。

开发环境

配套示例使用 ESP-IDF v6.1,ESP32-S31 为预览目标,操作时需添加 --preview 参数。版本选择、环境配置与编译下载步骤见 ESP32-S31-Zero ESP-IDF 开发。

资源简介​


  1. ESP32-S31 双核处理器:运行频率最高 320 MHz。
  2. USB Type-C 接口:用于供电、程序下载和调试。
  3. MP1605GTF-Z DC-DC:提供 3.3 V 电源。
  4. Flash 芯片:存储程序和数据。
  5. WS2812(LED):可编程 RGB 指示灯。
  6. BOOT 按键:配合复位按键进入下载模式。
  7. RESET 复位按键:复位并重启开发板。
  8. 40 Pin 板对板扩展接口:用于扩展 RGB LCD、触摸屏和 SD 卡。
  9. 贴片天线:用于 2.4 GHz 无线通信,仅贴片天线版本配置。
  10. IPEX-4 天线座子:连接外置 2.4 GHz 天线,仅外接天线接口版本配置。
  11. USB Host 焊点:引出 USB D+、D− 信号。

引脚定义​

 

天线版本​

开发板的天线配置为板载贴片天线或 IPEX-4 外接天线接口,具体以所选版本为准。贴片天线版本应保留天线区域净空;IPEX-4 版本需连接适用的 2.4 GHz 外接天线。

产品尺寸​



ESP-IDF

本章节包含以下部分,请按需阅读:

ESP-IDF 入门教程​

初次接触 ESP32 ESP-IDF 开发,想要快速上手?我们为您准备了一套通用的 入门教程。

请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。

配置 ESP-IDF 开发环境​

选择 ESP-IDF 版本​

配套示例使用 ESP-IDF v6.1,目标芯片为 esp32s31。下方通用安装图示中的版本号仅作演示。

备注

以下内容以 Windows 系统为例,使用 VS Code + ESP-IDF 扩展 的方式进行开发。Mac/Linux 用户请参考 官方说明。

版本选择

此部分图示以安装 ESP-IDF V5.5.2 为例示范,安装时请选用与您开发板示例匹配的 ESP-IDF 版本。

安装 ESP-IDF 开发环境​

  1. 前往 ESP-IDF Installation Manager 下载 ESP-IDF 安装管理器。这是乐鑫最新推出的跨平台安装工具,下文将演示如何使用其离线安装功能。

    在页面中点击 Offline Installer 标签,然后在筛选栏中选择 Windows 操作系统和你需要的 ESP-IDF 版本(图示仅为参考,请以实际为准)。


    确认选择无误后,点击下载按钮。浏览器将自动同时下载两个文件:一个是 ESP-IDF 离线整合包(.zst),另一个是 ESP-IDF 安装器(.exe)。


    请耐心等待两个文件下载完成。

  2. 下载完成后,双击运行 ESP-IDF 安装器(eim-gui-windows-x64.exe)。

    启动后,可在右上角将界面语言切换为中文。


    安装工具会自动检测同一目录下是否存在离线整合包。点击 从存档安装。


    接下来,选择安装路径。建议使用默认路径;若需自定义,请确保路径中不包含中文或空格。确认无误后,点击 开始安装。


  3. 当看到如下界面时,表示 ESP-IDF 已安装成功。


  4. 建议同时安装驱动程序。点击 完成安装,然后点击 安装驱动程序。


安装 Visual Studio Code 与 ESP-IDF 扩展​

  1. 下载并安装 Visual Studio Code。

  2. 安装时建议勾选 通过 Code 打开操作添加到 Windows 资源管理器文件上下文菜单,以便快速打开项目文件夹。

  3. 在 VS Code 中,点击侧边活动栏中的 扩展图标 扩展图标(或使用快捷键 Ctrl + Shift + X)打开 扩展 视图。

  4. 在搜索框中输入 ESP-IDF,找到 ESP-IDF 扩展并点击安装。


  5. 当 ESP-IDF 扩展版本 ≥ 2.0 时,扩展会自动检测并识别上述步骤中安装的 ESP-IDF 环境,无需手动配置。

下载 ESP32-S31-Zero 示例程序,在 VS Code 中打开所需示例的工程目录,例如 examples/esp-idf/02_blink_rgb。编译、烧录和串口监视操作参见 ESP-IDF 入门教程:运行示例,版本和目标芯片使用本页所列设置。

示例程序​

每个示例都是独立工程。示例 11 需要配套转接板及外接设备;裸板入门可先运行 RGB LED、芯片信息或 BOOT 按键示例。

示例目录功能额外条件
01_gpio_output将 15 路引出 GPIO 设为高电平断开外部输出源和负载
02_blink_rgb控制板载 RGB LED无需外接 LED
03_chip_info打印芯片和 Flash 信息USB 控制台
04_boot_button读取 BOOT 按键USB 控制台
05_uart_loopbackUART1 发送、接收及比较GPIO58 与 GPIO59 跳线
06_i2c_scan扫描外部 I2C 设备外部设备及适当上拉
07_wifi_scan扫描附近 Wi-Fi 热点天线通路正确
08_wifi_sta连接指定 Wi-Fi 热点天线通路正确及 2.4 GHz 热点
09_wifi_ap创建 Wi-Fi SoftAP天线通路正确及无线终端
10_ble_advertiserBLE 广播与连接事件天线通路正确及 BLE 调试工具
11_board_test综合测试匹配的触摸屏转接板、SD 卡转接板及外接设备
12_wifi_performanceWi-Fi 吞吐与链路诊断天线通路正确及 iperf 2.x 对端

01_gpio_output:GPIO 输出​

【程序说明】

此示例将 GPIO0~6、GPIO46~51、GPIO58 和 GPIO59 共 15 路信号配置为推挽输出,并保持高电平。

【操作步骤】

  1. 运行前断开这些引脚上的外部输出源和负载,避免信号冲突。
  2. 编译并下载 01_gpio_output。
  3. 用万用表或逻辑分析仪相对 GND 检查电平。

【运行效果】

所列引脚应保持高电平,不会周期翻转。程序不执行回环测量,需用万用表或逻辑分析仪逐一检查;串口日志仅表示已配置输出。

【程序说明】

此示例通过 GPIO60 使用 RMT 外设发送 WS2812 数据,控制板载 WS2812B-1010。颜色数据按 GRB 顺序发送,不能通过简单翻转 GPIO60 电平替代颜色数据。

【操作步骤】

  1. 通过 Type-C 接口连接开发板,无需外接 LED。
  2. 编译并下载 02_blink_rgb,观察板载 RGB LED。

【运行效果】

RGB LED 依次显示红色 1 秒、绿色 1 秒、蓝色 1 秒,再熄灭 0.5 秒,随后重复。检查实际颜色、顺序和持续时间。

03_chip_info:芯片信息​

【程序说明】

此示例读取并打印目标名称、CPU 核心数、芯片修订号、基础 MAC 地址、功能位和 Flash 信息。

【操作步骤】

编译并下载 03_chip_info,打开 USB 控制台,记录芯片信息及 Flash 读取结果。

【运行效果】

控制台输出芯片信息,重点区分两项 Flash 输出:

  • Physical Flash:通过 esp_flash_get_physical_size() 读取的物理容量。
  • Configured flash size:工程设置的 Flash 容量。

两项数值可能不同。原理图标注 32 MiB 器件,而工程保留 16 MiB 配置;实际结果以所用开发板的读取值为准。

04_boot_button:BOOT 按键​

【程序说明】

此示例将 GPIO61 配置为上拉输入,读取低有效 BOOT 按键,并通过延时确认电平变化。

【注意事项】

正常启动时松开 BOOT。按住 BOOT 的同时复位会选择下载模式,此时不会进入按键示例的正常运行流程。

【操作步骤】

  1. 编译并下载 04_boot_button,打开 USB 控制台。
  2. 程序运行后,按下并松开 BOOT,观察日志。

【运行效果】

串口按状态变化输出 Button PRESSED 或 Button RELEASED。

05_uart_loopback:UART 回环​

【程序说明】

程序使用 UART1,通过 GPIO58(TX)发送带序号的字符串,经跳线回送至 GPIO59(RX),接收后逐字节比较。UART 配置如下:

参数设置
UARTUART1
波特率115200
数据格式8 位数据、无校验、1 位停止位,无硬件流控

【操作步骤】

  1. 断电并断开 GPIO58、GPIO59 上的其他外接设备。
  2. 将 H2 第 2 脚 GPIO58(UART1 TX)与第 1 脚 GPIO59(UART1 RX)短接。
  3. 上电后编译并下载 05_uart_loopback,打开 USB 控制台。无需将 UART1 接到电脑。

【运行效果】

收到的数据长度与内容均一致时输出 PASS,否则输出 FAIL 并提示检查跳线。

06_i2c_scan:I2C 扫描​

【程序说明】

程序每轮扫描 0x08~0x77,输出地址表和设备数。外部设备接线如下:

信号GPIO接口
SDAGPIO52J2 第 19 脚
SCLGPIO53J2 第 21 脚

原理图中的相关外部上拉电阻标注为未装配选项,应按外设和总线要求提供适当的 3.3 V 上拉。

【操作步骤】

  1. 断电后按上表连接适用于 3.3 V 逻辑电平的外部 I2C 设备,并确认共地及 SDA、SCL 上拉条件。
  2. 上电后编译并下载 06_i2c_scan,打开 USB 控制台。

【运行效果】

地址表示应答设备,-- 表示未收到应答,UU 表示探测超时。未接设备时显示 0 个设备可以是正常结果,不能预设板上有固定地址的 I2C 从设备。

07_wifi_scan:Wi-Fi 扫描​

【程序说明】

程序使用 STA 模式扫描热点,每轮打印热点总数,最多显示 20 条记录,包含信道、RSSI、认证模式和 SSID。

【操作步骤】

  1. 确认开发板的天线版本:贴片天线版本应保留天线区域净空;IPEX-4 版本需连接适用的 2.4 GHz 外接天线。
  2. 编译并下载 07_wifi_scan,打开 USB 控制台查看扫描结果。

【运行效果】

每轮完成后延时 10 秒再扫描。扫描结果受周围热点、天线及环境影响。

08_wifi_sta:连接 Wi-Fi​

【程序说明】

此示例连接指定的 2.4 GHz Wi-Fi 热点,并输出连接状态和获取的 IPv4 地址。

【操作步骤】

确认天线通路,打开 08_wifi_sta 工程的 menuconfig,在 "Example Configuration" 中设置以下内容:

  • "Wi-Fi SSID":待连接的 2.4 GHz 热点名称。
  • "Wi-Fi password":热点密码。
  • "Maximum connection retries":最大重试次数。

保存配置,重新编译并下载 08_wifi_sta,打开 USB 控制台。

【运行效果】

程序在获取 IPv4 地址后输出 IPv4 address:;连接失败时会按配置重试,达到次数上限后输出失败信息。

该示例仅演示热点连接和地址获取。分享工程或截图前移除本地 Wi-Fi 凭据。

09_wifi_ap:创建 SoftAP​

【程序说明】

此示例创建本地 SoftAP,未实现互联网共享或 NAT 路由。示例允许空密码开放网络,使用时应按实际需求设置。

【操作步骤】

  1. 确认天线通路,打开 09_wifi_ap 工程的 menuconfig。
  2. 在 "Example Configuration" 中配置 SoftAP 名称、密码、信道和最大连接数。
  3. 保存配置,重新编译并下载 09_wifi_ap。
  4. 通过电脑或手机连接所设热点,观察 USB 控制台。

【运行效果】

控制台记录终端加入、离开事件。终端提示无互联网连接时,应结合本地连接状态判断结果。

10_ble_advertiser:BLE 广播​

【程序说明】

此示例使用 NimBLE,广播设备名 ESP32-S31-Zero。该示例未定义串口透传服务,不能将其作为蓝牙串口示例使用。

【操作步骤】

  1. 确认天线通路,编译并下载 10_ble_advertiser。
  2. 通过支持 BLE 扫描的工具查找 ESP32-S31-Zero。
  3. 连接设备后再断开,观察 USB 控制台中的连接状态。

【运行效果】

程序在连接和断开时输出日志,并在连接失败或断开后恢复广播。

11_board_test:综合测试​

【程序说明】

此工程包含 Flash、PSRAM、CPU/RAM、GPIO60 RGB LED,以及外接显示、触摸、SD 和 GPIO54 指示灯等测试。显示、触摸和 SD 卡测试需要连接匹配的触摸屏转接板、SD 卡转接板及外接设备。GPIO54 指示灯需外接,开发板未板载该指示灯。

【硬件条件】

运行前按下表核对转接板、外接设备、引脚及供电。配套硬件的完整兼容性仍待实板验证;未接显示屏、触摸屏或 SD 卡时,对应项目的失败结果不能用于判断裸板故障。

项目工程当前设置与范围
LCD外接 800 × 480 RGB565 显示,像素时钟 16 MHz;这是工程配置,不是裸板显示规格
触摸外接 GT911,使用 GPIO52、GPIO53、GPIO38、GPIO7;启动时探测 0x14、0x5D
连续触摸跟踪默认关闭,仅在启动时检测;连续采样曾出现通信失败,稳定性尚未确认
SD外接卡座,GPIO20~25,4 位 SDMMC,运行时钟配置为 20 MHz
测试数据与 USB 引脚复用

自动测试会擦写专用 testdata 分区的首个 4 KiB 扇区,SD 测试会创建、读回并删除临时文件。运行前确认分区用途并备份数据。LCD 启动后会将 GPIO33、GPIO34 改作 RGB 数据线,USB Serial/JTAG 控制台随之不可用;仅在显示启动失败、未完成引脚接管时保留交互控制台。

【操作步骤】

  1. 断电后,按工程引脚及供电要求连接已确认匹配的转接板及外接设备,核对分区用途并备份数据。
  2. 检查 11_board_test 的 PSRAM、显示、触摸和 SD 配置。
  3. 保持连续触摸采样关闭。如需排查触摸通信,在 "Board test" > "Enable continuous touch sampling and touch marker" 中启用采样及触摸标记。
  4. 确认硬件条件后,编译并下载 11_board_test,按测试项目检查日志及外设现象。

【结果判断】

连续触摸跟踪的稳定性尚未确认,不能只凭启动检测成功判断连续跟踪正常。LCD 启动成功后,USB 控制台不能继续用于观察日志。显示、触摸和 SD 卡需逐项检查并分别确认结果。

12_wifi_performance:Wi-Fi 吞吐测试​

【程序说明】

此示例提供 USB Serial/JTAG 控制台,用于 Wi-Fi 连接、链路信息、ping 及 TCP、UDP 吞吐测试。

【准备与操作】

确认天线通路,并准备运行 iperf 2.x 的电脑;iperf3 协议与该示例不兼容。编译并下载 12_wifi_performance,打开 USB 控制台。

下载启动后,在 wifi-perf> 控制台输入 help 查看命令。STA 模式连接命令如下,将尖括号中的内容替换为本地参数:

sta_connect <SSID> <PASSWORD>
rf_info
ping <GATEWAY_IP>

吞吐测试需先启动接收端。下表中的 <PC_IP> 为电脑地址,<DUT_IP> 为开发板地址。

方向电脑端命令开发板控制台命令
TCP,开发板发送iperf -s -i 1iperf -c <PC_IP> -i 1 -t 60
TCP,开发板接收iperf -c <DUT_IP> -i 1 -t 60iperf -s -i 1
UDP,开发板发送iperf -s -u -i 1iperf -c <PC_IP> -u -b 20M -i 1 -t 60
UDP,开发板接收iperf -c <DUT_IP> -u -b 20M -i 1 -t 60iperf -s -u -i 1

电脑通过有线网络连接测试路由器,可减少电脑自身无线链路对测试的影响。记录天线、供电、信道、带宽、方向、RSSI、吞吐率及 UDP 丢包情况;结果不预设为固定速率。

【结果判断】

rf_info 中的发射功率字段是软件配置值,不是实测射频功率。该示例仅用于功能及吞吐测试。

问题排查​

目标无法识别、Flash 容量不同、USB 中断或外设失败时,参见 ESP32-S31-Zero 常见问题。


ESP32-S31-Zero Flash 固件的烧录与擦除

ESP32-S31-Zero 提供出厂固件 V1(2026-10-20),用于恢复出厂演示。固件文件位于配套仓库的 firmware/ 目录:

项目内容
固件文件ESP32-S31-Zero_FactoryOnly_20261020.bin
烧录地址0x00
下载接口Type-C,USB Serial/JTAG
数据备份

擦除整片 Flash 会删除设备中的固件、设置及数据,写入固件也会覆盖目标区域。操作前备份需要保留的内容。

烧录工具需明确支持 esp32s31,不要选择 esp32s3。如需手动进入下载模式,按以下顺序操作:

  1. 按住 BOOT。
  2. 保持 BOOT 按下,同时按下并松开 RESET。
  3. 松开 BOOT。

烧录完成后,按 RESET 运行固件。

以下步骤适用于烧录本页提供的固件。

  • 下载并解压乐鑫官方烧录工具 Flash Download Tool(下载地址)

  • 运行 Flash Download Tool,根据开发板的主控芯片与下载接口选择对应选项。下图以 ESP32-S3 与 USB 为例,实际选项以产品硬件设计为准


  • 参数设置

    • 选择与开发板所对应的 COM 口
    • 选择 BAUD 为最高的 1152000
    • 点击该行的“...”按钮,选择微雪提供的 bin 文件,并在其右侧手动填写本页上方给出的烧录地址(比如 0x00),同时勾选该行最左侧的复选框
    • 点击 START 开始烧录


  • 等待烧录完成(烧录过程需要一定时间,请耐心等待)

  • 按下复位键,观察运行现象



相关资料

1. 示例程序​

2. 硬件资料​

3. 技术手册​

4. 软件工具​

5. 其他资料​


技术支持

周一-周五(9:30-6:30)周六(9:30-5:30)

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841