ESP32-S31 外设管脚分配说明
ESP32-S31 芯片具有 60 个物理 GPIO 管脚(GPIO0 ~ GPIO61,除 GPIO29、GPIO41 外)。其中包括 8 个低功耗 (LP) GPIO 管脚和 52 个高性能 (HP) GPIO 管脚。每个管脚都可用作一个通用 IO,或连接一个内部的外设信号。通过 GPIO 交换矩阵和 IO MUX,可配置外设模块的输入信号来源于任何的 IO 管脚,并且外设模块的输出信号也可连接到任意 IO 管脚。这些模块共同组成了芯片的 IO 控制。更多详细信息,请参阅 ESP32-S31 技术参考手册 > IO MUX 和 GPIO 矩阵(GPIO、IO_MUX) PDF。
快速上手路径(Quick Start)
如果这是您第一次进行开发,建议优先参考以下核心外设的推荐管脚定义:
基础通信与控制
-
UART 管脚分配说明 —— 用于代码下载、日志监视与基础串口通信。
- ESP32-S31 芯片集成了多达 4 路主系统 UART 和 1 路低功耗 LP UART。
-
I2C 管脚分配说明 —— 用于音频编解码器配置及各种低速传感器的数据交互。
- ESP32-S31 有两个 HP_I2C 总线接口和一个 LP_I2C 总线接口。根据配置,HP_I2C 总线接口可以用作 I2C 主机或从机模式;LP_I2C 总线接口只能用作 I2C 主机模式。总线速率最高可配置为 800 Kbit/s 快速模式。
-
SPI 管脚分配说明 —— 用于高速存储器读写以及串行屏显控制。
-
ESP32-S31 芯片内部集成 6 个 SPI + 1 个低功耗 SPI (LP SPI) ,其中:
- 2 个 SPI0/1 专用于连接封装内 PSRAM,默认 SPI0 和 SPI1 预留给系统使用,用户无法修改。
- 2 个 SPI0/1 专用于连接封装外 Flash,默认 SPI0 和 SPI1 预留给系统使用,用户无法修改。
- 2 个 通用 SPI , 默认 SPI2 ,可供用户使用。
- 1 个 低功耗 SPI,默认 LP SPI,可供用户使用。
-
-
SDIO 管脚分配说明 —— 用于高速 TF 卡及 SD 设备的 4-bit 协议级传输。
- ESP32-S31 芯片集成了一个高速 SDIO 3.0 主机控制器,支持 SD 存储卡、SDIO 读卡器及 SDIO 外设的 1 线、4 线传输模式。
-
USB 管脚分配说明 —— 支持 USB OTG 高速双向传输与 USB Serial/JTAG 固件下载调试。
- ESP32-S31 支持多路 USB 通信接口:一个支持全速/高速模式的 USB 2.0 OTG 控制器,以及一个支持程序下载、调试和 CDC-ACM 控制台的 USB Serial/JTAG 调试器。
-
以太网管脚分配说明 —— 原生 1000 Mbps 千兆以太网 MAC,支持 RMII 与 RGMII。
- ESP32-S31 原生集成了一个 IEEE 802.3 规范兼容的千兆媒体访问控制器(EMAC),支持硬件精确时间协议(IEEE 1588-2008 PTP)。它提供外接以太网物理层芯片(Ethernet PHY,如 IP101G、RTL8211 等)的物理通道,支持 10/100/1000 Mbps 的超宽数据传输。
-
TWAI 管脚分配说明 —— 用于 CAN FD 总线车载和工业级通信。
- ESP32-S31 支持一个 TWAI(双线汽车接口)控制器,完全兼容 CAN FD 协议规范,支持 1 Kbit/s 到 1 Mbit/s 的通信速率。
-
RMT 管脚分配说明 —— 用于红外编解码信号收发及驱动 WS2812 炫彩灯带。
- ESP32-S31 的 RMT(远程控制器)外设支持 4 路发送通道(TX)和 4 路接收通道(RX) 。
-
LED PWM 管脚分配说明 —— 脉冲宽度调制(LEDC),用于调节 LED 亮度或控制电机转速。
- ESP32-S31 支持 2 组 LED PWM 控制器,共具有 16 个独立的 PWM 生成通道 和 4 个独立的硬件定时器,支持高精度的占空比(最高支持 20-bit)与高达 40 MHz 的高频方波输出。
-
MCPWM 管脚分配说明 —— 电机控制专用 PWM 发生器。
- ESP32-S31 包含一个电机控制脉宽调制器 (MCPWM),共计 4 路 MCPWM 输出。
模拟外设
-
ADC 管脚分配说明 —— 12 位高精度 SAR 模数转换器,采集外部模拟电压信号。
- ESP32-S31 内置 2 个 12 位高分辨率的逐次逼近型模数转换器(SAR ADC),支持最多 16 个模拟测量输入通道,支持多通道连续扫描及通过 AXI GDMA 进行超高速、低延迟数据搬移。
-
DAC 管脚分配说明 —— 硬件数模转换器,用于输出模拟音频或波形。
- ESP32-S31 内置 2 个 10-bit 与 2 个 12-bit 数模转换控制器(DAC),可通过数字算法或查表生成平滑的模拟波形或模拟音频信号,输出范围支持 0V 至 3.3V。
-
Touch 触摸管脚分配说明 —— 电容式触摸按键、滑轮或手势控制检测。
- ESP32-S31 支持多达 14 个高可靠性的电容式触摸感应通道,能够透过非导电材质盖板(如玻璃、亚克力、塑料)精确捕获极微小的电容跃变,支持通过严格的 CS(电磁兼容性抗扰)测试。
多媒体外设
-
I2S 管脚分配说明 —— 用于连接音频 Codec 进行高质量数字音频的采集与输出。
- ESP32-S31 内置 2 个独立的 I2S 控制器,支持硬件级蓝牙音频(LE Audio)同步及 APLL 高精度时钟源。
-
LCD 与 Camera 管脚分配说明 —— 包含 DVP 摄像头、并行 RGB LCD 屏幕
- ESP32-S31 的 LCD_CAM 控制器包含一个独立的 LCD 控制模块和 Camera(摄像头)控制模块。可以外接 LCD 和摄像头设备,功能灵活多样。
系统 Strapping/Boot 管脚
- 系统 Strapping/Boot 管脚分配说明 —— 芯片启动模式选择管脚定义
JTAG 调试管脚
-
JTAG 调试管脚分配说明 —— 用于连接外部专业的硬件调试器进行极速仿真。
- ESP32-S31 芯片内部集成了两个独立的 JTAG 调试物理源:一个内置的 USB Serial/JTAG 调试器,以及一个标准的外部物理 JTAG 接口。
UART 管脚分配说明
1. UART0 管脚分配
UART0是系统默认的调试终端与固件烧录接口。在系统复位启动和上电自检期间,芯片将强制通过该接口输出 Boot Log。
| 信号名称 | 默认管脚 | GPIO 矩阵特性 | 方向 | 功能描述 |
|---|---|---|---|---|
| U0TXD | GPIO58 | 受限 | 输出 | UART0 数据发送端,连接外部串口工具的 RXD |
| U0RXD | GPIO59 | 受限 | 输入 | UART0 数据接收端,连接外部串口工具的 TXD |
2. UART1 ~ UART3 管脚分配
UART1~UART3的所有信号线均支持通过 GPIO 矩阵特性重映射到任意空闲的 GPIO。
3. LP UART 管脚分配
-
LP UART的所有信号线均支持通过 GPIO 矩阵特性重映射到任意空闲的 LP GPIO 。同时, LP UART 也支持使用 LP IO MUX 管脚进行分配。- LP UART IO MUX 管脚分配
UART 信号名称 LP IO 名称 GPIO 矩阵特性 LP_UART_DTRN_PAD LP_GPIO2 支持 LP_UART_DTSN_PAD LP_GPIO3 支持 LP_UART_RTSN_PAD LP_GPIO4 支持 LP_UART_CTSN_PAD LP_GPIO5 支持 LP_UART_TXD_PAD LP_GPIO6 支持 LP_UART_RXD_PAD LP_GPIO7 支持
[!NOTE]
- 在硬件布线较长、高速传输(如 3 Mbps)或存在高频干扰的场景中,建议尽量缩短走线,并加入阻抗匹配,以保障串口通信的绝对稳定性。
I2C 管脚分配说明
1. HP I2C 管脚分配
HP I2C的所有信号线均支持通过 GPIO 矩阵特性重映射到任意空闲的 GPIO。
2. LP I2C 管脚分配
-
LP I2C的所有信号线均支持通过 GPIO 矩阵特性重映射到任意空闲的 LP GPIO 。 -
同时, LP I2C 也支持使用 LP IO MUX 管脚进行分配。LP I2C IO MUX 管脚分配 :
信号名称 LP IO MUX 管脚 GPIO 矩阵特性 方向 功能描述 LP_I2C_SDA LP_GPIO7支持 输入/输出 I2C 数据信号线,需外接 4.7 kΩ 上拉电阻 LP_I2C_SCL LP_GPIO6支持 输出 I2C 时钟信号线,需外接 4.7 kΩ 上拉电阻
[!NOTE]
- I2C 属于漏极开路(Open-Drain)总线,在 PCB 走线上必须正确接入上拉电阻(通常为 2.2 kΩ 至 4.7 kΩ,连接至 3.3V),否则将导致总线传输超时及发生非预期的 NACK 错误。
SPI 管脚分配说明
1. SPI0/1 Flash 管脚分配
[!NOTE]
- SPI0 和 SPI1 接口预留给 Flash 使用,用户无法使用。
| 管脚名称 | GPIO | Flash 信号脚 | GPIO 矩阵特性 | 方向 | 功能描述 |
|---|---|---|---|---|---|
| SPI0_CS | GPIO26 | FLASH_CS | 不支持 | 输入/输出 | SPI 片选信号 (CS) |
| SPI0_Q | GPIO27 | FLASH_Q | 不支持 | 输入/输出 | SPI 数据线 1 (MISO / D1) |
| SPI0_WP | GPIO28 | FLASH_WP | 不支持 | 输入/输出 | SPI 写保护信号 (WP / D2) |
| SPI0_HD | GPIO30 | FLASH_HOLD | 不支持 | 输入/输出 | SPI 保持信号 (HOLD / D3) |
| SPI0_CLK | GPIO31 | CLK/FLASH_CLK | 不支持 | 输出 | SPI 串行时钟线 (CLK) |
| SPI0_D | GPIO32 | FLASH_D | 不支持 | 输入/输出 | SPI 数据线 0 (MOSI / D0) |
2. SPI2 管脚分配
通用 SPI2 支持通过 GPIO 矩阵特性重映射到任意空闲的 GPIO。 同时通用 SPI2 也支持通过 IO MUX 特性分配管脚以获取高速支持。
-
HP SPI2 IO MUX 管脚分配
-
1-bit HP SPI2 IO MUX 管脚分配
SPI 信号脚 GPIO GPIO 矩阵特性 方向 功能描述 SPI2_CLK GPIO20或GPIO53支持 输出 SPI 串行时钟线 SPI2_D0 GPIO21或GPIO54支持 输入/输出 SPI 数据线 0 (MOSI) SPI2_D1 GPIO22或GPIO55支持 输入/输出 SPI 数据线 1 (MISO) SPI2_CS GPIO23或GPIO52支持 输出(Master)/输入(Slave) SPI 片选信号 (CS) SPI2_WP GPIO24或GPIO56支持 输入/输出 Quad SPI 数据线 D3(传统 HOLD) SPI2_HD GPIO25或GPIO57支持 输入/输出 Quad SPI 数据线 D2(传统 WP) -
8-bit HP SPI2 IO MUX 管脚分配
SPI 信号脚 GPIO GPIO 矩阵特性 方向 功能描述 SPI2_CLK GPIO12支持 输出 SPI/OPI 时钟信号 SPI2_CS GPIO10支持 输出 SPI 片选信号 (CS) SPI2_D0 GPIO11支持 输入/输出 SPI 数据线 0 (MOSI) SPI2_D1 GPIO13支持 输入/输出 SPI 数据线 1 (MISO) SPI2_D2 GPIO14支持 输入/输出 SPI2 数据线 2(Quad 模式) SPI2_D3 GPIO9支持 输入/输出 SPI2 数据线 3(Quad 模式) SPI2_D4 GPIO15支持 输入/输出 SPI2 数据线 4(Octal 模式) SPI2_D5 GPIO16支持 输入/输出 SPI2 数据线 5(Octal 模式) SPI2_D6 GPIO17支持 输入/输出 SPI2 数据线 6(Octal 模式) SPI2_D7 GPIO18支持 输入/输出 SPI2 数据线 7(Octal 模式) SPI2_DQS GPIO19支持 输入 SPI2 高速 DDR/OPI 模式下的数据选通信号(Data Strobe),用于接收端同步采样数据
-
3. LP SPI 管脚分配
-
ESP32-S31 的 LP SPI 支持通过 GPIO 矩阵特性重映射到任意空闲的 LP GPIO ,同时 LP SPI 也支持通过 IO MUX 特性分配管脚。
LP SPI IO MUX 管脚分配
信号名称 推荐管脚 GPIO 矩阵特性 方向 功能描述 LP_SPI_CLK LP_GPIO2支持 输出 SPI 串行时钟线 LP_SPI_CS LP_GPIO3支持 输入/输出 SPI 片选信号 (CS) LP_SPI_D LP_GPIO4支持 输入/输出 SPI 数据线 0 (MOSI) LP_SPI_Q LP_GPIO5支持 输入/输出 SPI 数据线 1 (MISO)
4. 屏显控制 SPI 推荐管脚
如果您的开发板配备了液晶显示屏,其串行控制线通常使用以下管脚:
| 信号名称 | 推荐管脚 | GPIO 矩阵特性 | 方向 | 功能描述 |
|---|---|---|---|---|
| LCD_MOSI | GPIO60 | 支持 | 输出 | 液晶屏 SPI 数据线 |
| LCD_SCK | GPIO61 | 支持 | 输出 | 液晶屏 SPI 时钟线 |
| LCD_CS | GPIO38 | 支持 | 输出 | 液晶屏 SPI 片选信号 |
SDIO 管脚分配说明
ESP32-S31 的 SDIO 主机控制器的卡 1 可以通过 IO MUX 使用 GPIO20GPIO25,卡 2 可以通过 IO MUX 使用 GPIO35GPIO40 。 不支持 GPIO 矩阵特性。
- SDIO 卡 1 IO MUX 管脚分配
| 信号名称 | 对应管脚 | GPIO 矩阵特性 | 方向 | 功能描述 |
|---|---|---|---|---|
| SDIO_CLK | GPIO24 | 不支持 | 输出 | 高速时钟信号线 |
| SDIO_CMD | GPIO25 | 不支持 | 输入/输出 | 命令与响应复用信号线 |
| SDIO_DATA0 | GPIO20 | 不支持 | 输入/输出 | 双向数据线 0 |
| SDIO_DATA1 | GPIO21 | 不支持 | 输入/输出 | 双向数据线 1 |
| SDIO_DATA2 | GPIO22 | 不支持 | 输入/输出 | 双向数据线 2 |
| SDIO_DATA3 | GPIO23 | 不支持 | 输入/输出 | 双向数据线 3 |
- SDIO 卡 2 IO MUX 管脚分配
| 信号名称 | 对应管脚 | GPIO 矩阵特性 | 方向 | 功能描述 |
|---|---|---|---|---|
| SDIO_CLK | GPIO39 | 不支持 | 输出 | 高速时钟信号线 |
| SDIO_CMD | GPIO40 | 不支持 | 输入/输出 | 命令与响应复用信号线 |
| SDIO_DATA0 | GPIO35 | 不支持 | 输入/输出 | 双向数据线 0 |
| SDIO_DATA1 | GPIO36 | 不支持 | 输入/输出 | 双向数据线 1 |
| SDIO_DATA2 | GPIO37 | 不支持 | 输入/输出 | 双向数据线 2 |
| SDIO_DATA3 | GPIO38 | 不支持 | 输入/输出 | 双向数据线 3 |
[!NOTE]
- SDIO 3.0 支持更高的时钟频率,因此高速模式下对 PCB 差分布线和等长控制有较严格的要求,同时数据线上通常需要并联 10 kΩ 左右的上拉电阻以防止传输时产生毛刺或丢包。
USB 管脚分配说明
1. USB 2.0 HS OTG 管脚分配说明
USB OTG 模块集成了内置的高速 USB 2.0 PHY,仅支持专用引脚直连 USB Type-A 或 Type-C 物理接口,不支持 GPIO 矩阵特性。
| 信号名称 | 物理管脚 | GPIO 矩阵特性 | 方向 | 功能描述 |
|---|---|---|---|---|
| USB2.0_DP | USB_DP | 不支持 | USB D+ | 专用高速差分数据线正极(Pin 44) |
| USB2.0_DM | USB_DM | 不支持 | USB D- | 专用高速差分数据线负极(Pin 45) |
2. USB Serial/JTAG 管脚分配说明
USB 串口与 JTAG 调试器使用特定的 IO MUX 引脚,不支持 GPIO 矩阵特性。
| 信号名称 | 对应GPIO | GPIO 矩阵特性 | 功能描述 |
|---|---|---|---|
| USB_D+ | GPIO14 | 不支持 | 调试器物理差分信号正极 |
| USB_D- | GPIO13 | 不支持 | 调试器物理差分信号负极 |
[!NOTE]
- 调试器专用的
GPIO13与GPIO14同时也是 SDIO 接口的备选管脚。当 SDIO 处于 1-bit 单线工作模式下时,调试器可以与 SDIO 完美共享使用;然而一旦将 SDIO 接口升级为 4-bit 模式,则无法同时使用 USB Serial/JTAG 调试功能。
以太网管脚分配说明
ESP32-S31 的以太网引脚智能使用专用的高速 IO MUX 管脚进行配置,不支持 GPIO 矩阵特性。用户只能在以下两个选项组中择一使用,不可混用。
| 物理选项引脚组 | 以太网接口模式 | 复用 GPIO | GPIO 矩阵特性 | 接口特性与描述 |
|---|---|---|---|---|
| 选项组 A(低序号引脚,官方推荐) | RGMII 接口 | GPIO8 ~ GPIO19 (共 12 根专用高速信号线) | 不支持 | 高速硬绑定总线,时序要求极高,常用于千兆以太网接口开发 |
| 选项组 A(低序号引脚,官方推荐) | RMII 接口 | GPIO8、GPIO9、GPIO12、GPIO13、GPIO15、GPIO18、GPIO19 | 不支持 | 经典百兆以太网接口,大幅节省 GPIO 引脚资源 |
| 选项组 B(高序号引脚) | RGMII 接口 | GPIO36 ~ GPIO47 (共 12 根专用高速信号线) | 不支持 | 备选千兆以太网硬复用引脚组 |
| 选项组 B(高序号引脚) | RMII 接口 | GPIO36、GPIO37、GPIO40、GPIO41、GPIO43、GPIO44、GPIO45 | 不支持 | 备选百兆以太网硬复用引脚组 |
[!NOTE]
- 相比于高度敏感的高速差分时钟与数据线,以太网物理控制接口 MDIO(以太网控制器管理接口)的信号时钟较低,支持通过 GPIO 矩阵重映射到任意通用 GPIO 引脚。
TWAI 管脚分配说明
ESP32-S31 的 TWAI 接口所有信号线均支持通过 GPIO 矩阵特性重映射到任意空闲的 GPIO。
| 信号名称 | 推荐管脚 | GPIO 矩阵特性 | 方向 | 功能描述 |
|---|---|---|---|---|
| TWAI_TX (CAN_TX) | GPIO4 | 支持 | 输出 | 发送总线数据,连至 CAN 外部收发器的 TXD |
| TWAI_RX (CAN_RX) | GPIO5 | 支持 | 输入 | 接收总线数据,连至 CAN 外部收发器的 RXD |
[!NOTE]
- TWAI 芯片本身不集成差分物理收发器,因此必须在外围电路设计中外接标准的 CAN 物理收发芯片(例如 TJA1050 或 SN65HVD230),方可连入真实的差分双线物理 CAN 总线网段。
RMT 管脚分配说明
RMT 的所有通道信号线均支持通过 GPIO 矩阵特性重映射到任意空闲的 GPIO 。
| 推荐外设应用 | 推荐管脚 | GPIO 矩阵特性 | 方向 | 功能描述 |
|---|---|---|---|---|
| 板载 WS2812 可寻址 RGB | GPIO60 (CoreBoard板) / GPIO37 (Korvo板) | 支持 | 输出 | 驱动板载彩色 LED 灯的脉冲序列 |
| IR_TX (红外发射引脚) | GPIO18 (推荐) | 支持 | 输出 | 输出载波红外信号以驱动红外发射二极管 |
| IR_RX (红外接收引脚) | GPIO19 (推荐) | 支持 | 输入 | 捕捉红外一体化接收头输出的解调脉冲波 |
LED PWM 管脚分配说明
LEDC PWM 所有通道信号线均支持通过 GPIO 矩阵特性重映射到任意空闲的 GPIO 。
| 功能应用 | 推荐管脚 | GPIO 矩阵特性 | 方向 | 功能描述 |
|---|---|---|---|---|
| PWM_RED | GPIO15 (推荐) | 支持 | 输出 | 驱动红色通道,实现渐变/调光效果 |
| PWM_GREEN | GPIO16 (推荐) | 支持 | 输出 | 驱动绿色通道,实现渐变/调光效果 |
| PWM_BLUE | GPIO17 (推荐) | 支持 | 输出 | 驱动蓝色通道,实现渐变/调光效果 |
MCPWM 管脚分配说明
ESP32-S31 的 MCPWM 引脚支持通过 GPIO 矩阵特性重映射到任意空闲的 GPIO 。
| 信号名称 | 推荐管脚 | GPIO 矩阵特性 | 方向 | 功能描述 |
|---|---|---|---|---|
| PWM0A | GPIO10 | 支持 | 输出 | A 相驱动互补输出 1 |
| PWM0B | GPIO11 | 支持 | 输出 | A 相驱动互补输出 2(带死区互补控制) |
| PWM1A | GPIO12 | 支持 | 输出 | B 相驱动互补输出 1 |
| PWM1B | GPIO13 | 支持 | 输出 | B 相驱动互补输出 2 |
| PWM_FAULT | GPIO14 | 支持 | 输入 | 硬件过流/故障保护刹车触发线(高电平刹车) |
ADC 管脚分配说明
ESP32-S31 ADC 的所有输入引脚都只能通过 IO MUX 管脚进行配置,不支持 GPIO 矩阵特性。
| ADC 控制器 | 信号通道 | ADC 物理信号脚 | 极性类型 | GPIO | GPIO 矩阵特性 | 功能描述 |
|---|---|---|---|---|---|---|
| ADC1 | 通道 0 | ADC1_CHANNEL0_N | 负极 (N) | GPIO42 | 不支持 | 模拟输入通道 0 (负输入端) |
| ADC1 | 通道 0 | ADC1_CHANNEL0_P | 正极 (P) | GPIO43 | 不支持 | 模拟输入通道 0 (正输入端) |
| ADC1 | 通道 1 | ADC1_CHANNEL1_N | 负极 (N) | GPIO44 | 不支持 | 模拟输入通道 1 (负输入端) |
| ADC1 | 通道 1 | ADC1_CHANNEL1_P | 正极 (P) | GPIO45 | 不支持 | 模拟输入通道 1 (正输入端) |
| ADC1 | 通道 2 | ADC1_CHANNEL2_N | 负极 (N) | GPIO46 | 不支持 | 模拟输入通道 2 (负输入端) |
| ADC1 | 通道 2 | ADC1_CHANNEL2_P | 正极 (P) | GPIO47 | 不支持 | 模拟输入通道 2 (正输入端) |
| ADC1 | 通道 3 | ADC1_CHANNEL3_N | 负极 (N) | GPIO48 | 不支持 | 模拟输入通道 3 (负输入端) |
| ADC1 | 通道 3 | ADC1_CHANNEL3_P | 正极 (P) | GPIO49 | 不支持 | 模拟输入通道 3 (正输入端) |
| ADC2 | 通道 0 | ADC2_CHANNEL0_N | 负极 (N) | GPIO50 | 不支持 | 模拟输入通道 0 (负输入端) |
| ADC2 | 通道 0 | ADC2_CHANNEL0_P | 正极 (P) | GPIO51 | 不支持 | 模拟输入通道 0 (正输入端) |
| ADC2 | 通道 1 | ADC2_CHANNEL1_N | 负极 (N) | GPIO52 | 不支持 | 模拟输入通道 1 (负输入端) |
| ADC2 | 通道 1 | ADC2_CHANNEL1_P | 正极 (P) | GPIO53 | 不支持 | 模拟输入通道 1 (正输入端) |
| ADC2 | 通道 2 | ADC2_CHANNEL2_N | 负极 (N) | GPIO54 | 不支持 | 模拟输入通道 2 (负输入端) |
| ADC2 | 通道 2 | ADC2_CHANNEL2_P | 正极 (P) | GPIO55 | 不支持 | 模拟输入通道 2 (正输入端) |
| ADC2 | 通道 3 | ADC2_CHANNEL3_N | 负极 (N) | GPIO56 | 不支持 | 模拟输入通道 3 (负输入端) |
| ADC2 | 通道 3 | ADC2_CHANNEL3_P | 正极 (P) | GPIO57 | 不支持 | 模拟输入通道 3 (正输入端) |
DAC 管脚分配说明
ESP32-S31 的 DAC 的所有模拟信号引脚只能通过 IO MUX 管脚进行配置,不支持 GPIO 矩阵特性。
| 信号名称 | 硬件引脚 | 输出通道 | GPIO 矩阵特性 | 功能描述 |
|---|---|---|---|---|
| DAC_PAD0 | GPIO4 | 对应 DAC 通道 0 | 不支持 | 模拟输出端 0 |
| DAC_PAD1 | GPIO5 | 对应 DAC 通道 1 | 不支持 | 模拟输出端 1 |
Touch 触摸管脚分配说明
- ESP32-S31 的触摸传感器接口与 GPIO2
GPIO15、LP_GPIO2LP_GPIO15、LP_UART 接口和 SPI2 的一组四线接口管脚复用。配置模拟功能生效时,与其复用的数字功能无效。 - ESP32-S31 的触摸传感器接口只能通过 IO MUX 管脚进行配置,不支持 GPIO 矩阵特性。
| 触摸通道 | 复用 GPIO | GPIO 矩阵特性 |
|---|---|---|
| TOUCH_CHANNEL0 | GPIO6 | 不支持 |
| TOUCH_CHANNEL1 | GPIO7 | 不支持 |
| TOUCH_CHANNEL2 | GPIO8 | 不支持 |
| TOUCH_CHANNEL3 | GPIO9 | 不支持 |
| TOUCH_CHANNEL4 | GPIO10 | 不支持 |
| TOUCH_CHANNEL5 | GPIO11 | 不支持 |
| TOUCH_CHANNEL6 | GPIO12 | 不支持 |
| TOUCH_CHANNEL7 | GPIO13 | 不支持 |
| TOUCH_CHANNEL8 | GPIO14 | 不支持 |
| TOUCH_CHANNEL9 | GPIO15 | 不支持 |
| TOUCH_CHANNEL10 | GPIO16 | 不支持 |
| TOUCH_CHANNEL11 | GPIO17 | 不支持 |
| TOUCH_CHANNEL12 | GPIO18 | 不支持 |
| TOUCH_CHANNEL13 | GPIO19 | 不支持 |
I2S 管脚分配说明
ESP32-S31 的I2S 引脚支持通过 GPIO 矩阵特性重映射到任意空闲的 GPIO 。
| 信号名称 | 推荐管脚 | GPIO 矩阵特性 | 方向 | 功能描述 |
|---|---|---|---|---|
| I2S_MCLK | GPIO2 | 支持 | 输出 | 主时钟信号线,用于外部音频芯片 of 系统同步 |
| I2S_SCLK (BCLK) | GPIO3 | 支持 | 输出 | 位时钟信号线,控制每个音频数据比特位的传输 |
| I2S_LRCLK (WS) | GPIO4 | 支持 | 输出 | 帧同步 / 左右声道选择信号线 |
| I2S_DSIN | GPIO5 | 支持 | 输入 | 音频数据输入线(串行 ADC 数据输入) |
| I2S_SDOUT | GPIO6 | 支持 | 输出 | 音频数据输出线(串行 DAC 数据输出) |
LCD-Camera-管脚分配说明
ESP32-S31 的 Camera-LCD 控制器的 CAM 和 LCD 接口通过 GPIO 交换矩阵可配置使用任意空闲 GPIO 管脚。同时 LCD 与 Camera 控制器管脚也支持使用 IO MUX 管脚进行分配。
1. DVP 摄像头 (8-bit 并行 DVP) IO MUX 管脚分配
| 信号名称 | 推荐管脚 | GPIO 矩阵特性 | 功能描述 |
|---|---|---|---|
| CAM_D0 ~ CAM_D7 | GPIO46 ~ GPIO53 | 支持 | 8 位并行视频数据输入线 |
| CAM_PCLK | GPIO54 | 支持 | 摄像头像素时钟信号线 |
| CAM_XCLK | GPIO55 | 支持 | 摄像头驱动系统时钟信号线 |
| CAM_VSYNC | GPIO56 | 支持 | 摄像头帧同步信号线 |
| CAM_HSYNC | GPIO57 | 支持 | 摄像头行同步信号线 |
2. 16-bit 并行 RGB LCD 屏 IO MUX 管脚分配
| 信号名称 | 推荐管脚 | GPIO 矩阵特性 | 功能描述 |
|---|---|---|---|
| DB0 ~ DB11 | GPIO8 ~ GPIO19 | 支持 | 屏显并行数据线(低 12 位) |
| DB12 ~ DB15 | GPIO33 ~ GPIO36 | 支持 | 屏显并行数据线(高 4 位) |
| LCD_PCLK | GPIO40 | 支持 | 液晶显示像素时钟线 |
| LCD_DE (H_EN) | GPIO43 | 支持 | 液晶屏数据使能控制线 |
| LCD_HSYNC | GPIO44 | 支持 | 液晶屏水平行同步信号线 |
| LCD_VSYNC | GPIO45 | 支持 | 液晶屏垂直帧同步信号线 |
系统-Strapping/Boot-管脚分配说明
芯片在上电复位期间,系统会根据以下特定 Strapping 管脚的电平值来判定芯片的启动模式。请尽量避免在这些引脚上挂载会改变其初始电平的外部器件。
| 管脚物理名称 | 功能 | 芯片内部上电初始状态 | 默认电平 | 启动模式与硬件设计注意事项 |
|---|---|---|---|---|
| GPIO36 | VDD_SPI 电压检测 | 内部弱上拉 (Weak Pull-Up) | 1 | 3.3V Flash 需要为高电平;1.8V Flash 需要为低电平。 |
| GPIO37 | JTAG 信号源控制 | 高阻态 (Floating) | 悬空 | 外部无强干扰时默认为悬空态。 |
| GPIO60 | ROM 日志打印控制 | 内部弱上拉 (Weak Pull-Up) | 1 | 默认拉高。与 GPIO61 共同控制启动行为,在从 Flash 启动(SPI Boot)模式下保持默认的 1。 |
| GPIO61 | 芯片启动模式控制 | 内部弱上拉 (Weak Pull-Up) | 1 | 核心下载/运行选择引脚。上电复位瞬间外部拉低至 0 进入固件下载模式,悬空/拉高为 1 从 Flash 启动。 |
JTAG 调试管脚分配说明
1. 内置 USB Serial/JTAG 调试引脚
- 通过内置的 USB 物理收发器,开发者只需使用一根 USB 线直连芯片引脚,即可实现全速 JTAG 下载与软硬件在线调试,无需任何外部调试器(如 J-Link 或 ESP-Prog)。
- USB-JTAG 调试管脚必须严格通过 IO MUX 调用,不支持通过 GPIO 矩阵重映射:
| 信号名称 | 硬绑定引脚 | GPIO 矩阵特性 | 方向 | 功能描述 |
|---|---|---|---|---|
| USB_D+ | GPIO14 | 不支持 | 输入/输出 | 内置调试器物理差分信号正极 |
| USB_D- | GPIO13 | 不支持 | 输入/输出 | 内置调试器物理差分信号负极 |
2. 外部物理 JTAG 引脚 (IO MUX)
- 如果需要连接外部专业的硬件调试器进行极速仿真,ESP32-S31 也提供了底层的物理 JTAG 硬绑定引脚。
- JTAG 外部物理调试引脚与
ADC2和SPI2的部分引脚复用,必须严格通过 IO MUX 配置,不支持通过 GPIO 矩阵重映射:
| 信号名称 | 硬绑定引脚 | GPIO 矩阵特性 | 方向 | 芯片 IO 物理功能描述 |
|---|---|---|---|---|
| MTCK | GPIO55 | 不支持 | 输入 | 测试时钟输入线 (Test Clock) |
| MTDO | GPIO54 | 不支持 | 输出 | 测试数据输出线 (Test Data Out) |
| MTDI | GPIO56 | 不支持 | 输入 | 测试数据输入线 (Test Data In) |
| MTMS | GPIO57 | 不支持 | 输入 | 测试模式选择线 (Test Mode Select) |
JTAG 调试通路选择与控制机制
内置 USB JTAG 与外部物理 JTAG 的切换由 Strapping 管脚 GPIO37 在系统上电复位瞬间(RST)的初始电平状态,以及底层的 eFuse 熔丝共同控制:
JTAG 通路切换控制规则
| 调试接口源 | GPIO37 启动瞬间电平 | EFUSE_JTAG_SEL_ENABLE 熔丝状态 | 调试模式说明 |
|---|---|---|---|
| 内置 USB JTAG | 拉低 / 0 | 0 (默认状态) | 系统默认状态。调试信号走内置 USB PHY,GPIO54 ~ GPIO57 可以作为普通的 GPIO 使用。 |
| 外部物理 JTAG | 拉高 / 1 | 0 (默认状态) | 外部 JTAG 启用。调试信号切换至物理引脚 GPIO54 ~ GPIO57,由外部调试器接管调试。 |
| 永久绑定物理 JTAG | 任意状态 | 1 | 物理 JTAG 永久生效,USB JTAG 调试被硬屏蔽。 |
[!Note]
- 注意:
GPIO37在上电复位瞬间的默认状态是高阻态(悬空)。为了确保系统上电后能默认使用最便利的内置 USB Serial/JTAG 调试器,建议在GPIO37引脚上挂载一个 10 kΩ 的下拉电阻,或保证复位瞬间外部电路不会将该引脚拉高,以防止意外将调试通路切往外部物理 JTAG 导致 USB 调试不可用。
全局物理 GPIO 及功能分配表
下表提供了各管脚的详细信息,部分 GPIO 具有特殊的使用限制,具体可参考表中的注释与限制说明。
| GPIO 编号 | 模拟功能 | LP_GPIO (RTC GPIO) | 注释与物理使用限制 |
|---|---|---|---|
| GPIO0 | - | LP_GPIO0 | 可复用为 XTAL_32K_N (外部低频晶振负极),提供 RTC 极低功耗高精度时钟计时。 |
| GPIO1 | - | LP_GPIO1 | 可复用为 XTAL_32K_P (外部低频晶振正极)。 |
| GPIO2 | - | LP_GPIO2 | LP IO MUX,支持低功耗外设和休眠唤醒。 |
| GPIO3 | - | LP_GPIO3 | LP IO MUX,支持低功耗外设和休眠唤醒。 |
| GPIO4 | DAC0 | LP_GPIO4 | 硬件数模转换器通道 0,支持低功耗下的模拟波形与音频输出。 |
| GPIO5 | DAC1 | LP_GPIO5 | 硬件数模转换器通道 1。 |
| GPIO6 | TOUCH0 | LP_GPIO6 | 电容触摸感应通道 0,支持 Deep-sleep 低功耗触摸按键唤醒。 |
| GPIO7 | TOUCH1 | LP_GPIO7 | 电容触摸感应通道 1,支持 Deep-sleep 低功耗触摸按键唤醒。 |
| GPIO8 | TOUCH2 | - | 电容触摸感应通道 2;千兆以太网 (选项组 A) 专用线。 |
| GPIO9 | TOUCH3 | - | 电容触摸感应通道 3;千兆以太网 (选项组 A) 专用线。 |
| GPIO10 | TOUCH4 | - | 电容触摸感应通道 4。 |
| GPIO11 | TOUCH5 | - | 电容触摸感应通道 5。 |
| GPIO12 | TOUCH6 | - | 电容触摸感应通道 6;千兆以太网 (选项组 A) 专用线。 |
| GPIO13 | TOUCH7 | - | 双重用途/冲突:电容触摸通道 7;内置调试器 USB_D-。当 SDIO 采用 4-bit 传输模式时,调试器会被完全禁用! |
| GPIO14 | TOUCH8 | - | 双重用途/冲突:电容触摸通道 8;内置调试器 USB_D+。同上,4-bit SDIO 模式下会与调试器产生严重物理冲突! |
| GPIO15 | TOUCH9 | - | 电容触摸感应通道 9;千兆以太网 (选项组 A) 专用线。 |
| GPIO16 | TOUCH10 | - | 电容触摸感应通道 10。 |
| GPIO17 | TOUCH11 | - | 电容触摸感应通道 11。 |
| GPIO18 | TOUCH12 | - | 电容触摸感应通道 12;千兆以太网 (选项组 A) 专用线。 |
| GPIO19 | TOUCH13 | - | 电容触摸感应通道 13;千兆以太网 (选项组 A) 专用线。 |
| GPIO20 | - | - | 通用 GPIO;推荐用于高速 SDIO DATA0 或 SPI2。 |
| GPIO21 | - | - | 通用 GPIO;推荐用于高速 SDIO DATA1 或 SPI2。 |
| GPIO22 | - | - | 通用 GPIO;推荐用于高速 SDIO DATA2 或 SPI2。 |
| GPIO23 | - | - | 通用 GPIO;推荐用于高速 SDIO DATA3 或 SPI2。 |
| GPIO24 | - | - | 通用 GPIO;推荐用于高速 SDIO CLK 或 SPI2。 |
| GPIO25 | - | - | 通用 GPIO;推荐用于高速 SDIO CMD 或 SPI2。 |
| GPIO26 | - | - | SPI0/1 专用总线:连接 Flash 片选脚 SPICS / flash_cs_pad,应用层决不可重新配置,严禁他用! |
| GPIO27 | - | - | SPI0/1 专用总线:连接 Flash 数据输出脚 SPIQ / flash_q_pad (D1),严禁它用! |
| GPIO28 | - | - | SPI0/1 专用总线:连接 Flash 写保护脚 SPIWP / flash_wp_pad (D2),严禁它用! |
| GPIO30 | - | - | SPI0/1 专用总线:连接 Flash 挂起脚 SPIHD / flash_hold_pad (D3),严禁它用! |
| GPIO31 | - | - | SPI0/1 专用总线:连接 Flash 时钟脚 SPICLK / flash_ck_pad (CLK),严禁它用! |
| GPIO32 | - | - | SPI0/1 专用总线:连接 Flash 数据输入脚 SPID / flash_d_pad (D0),严禁它用! |
| GPIO33 | - | - | 通用 GPIO。 |
| GPIO34 | - | - | 通用 GPIO。 |
| GPIO35 | - | - | 通用 GPIO。 |
| GPIO36 | - | - | Strapping 管脚:系统启动选择引脚;千兆以太网 (选项组 B) 专用线。请勿加外部强上下拉电平。 |
| GPIO37 | - | - | Strapping 管脚;模拟比较器输入 COMP0 通道;千兆以太网 (选项组 B) 专用线。 |
| GPIO38 | - | - | Strapping 管脚 (Boot Mode 0);模拟比较器输入 COMP1 通道。 |
| GPIO39 | - | - | Strapping 管脚 (Boot Mode 1);模拟比较器输入 COMP2 通道。 |
| GPIO40 | - | - | Strapping 管脚 (Boot Mode 2);模拟比较器输入 COMP3 通道;千兆以太网 (选项组 B) 专用线。 |
| GPIO42 | ADC1_CH0_N | - | 12位逐次逼近型 ADC1 通道 0(负端,硬绑定)。 |
| GPIO43 | ADC1_CH0_P | - | 12位逐次逼近型 ADC1 通道 0(正端,硬绑定);千兆以太网 (选项组 B) 专用线。 |
| GPIO44 | ADC1_CH1_N | - | 双重用途:ADC1 通道 1 (负端);内置高速 USB 2.0 HS OTG 物理 PHY 数据线 DP (Pin 44)。 |
| GPIO45 | ADC1_CH1_P | - | 双重用途:ADC1 通道 1 (正端);内置高速 USB 2.0 HS OTG 物理 PHY 数据线 DM (Pin 45)。 |
| GPIO46 | ADC1_CH2_N | - | 12位逐次逼近型 ADC1 通道 2(负端,硬绑定)。 |
| GPIO47 | ADC1_CH2_P | - | 12位逐次逼近型 ADC1 通道 2(正端,硬绑定);千兆以太网 (选项组 B) 专用线。 |
| GPIO48 | ADC1_CH3_N | - | 12位逐次逼近型 ADC1 通道 3(负端,硬绑定)。 |
| GPIO49 | ADC1_CH3_P | - | 12位逐次逼近型 ADC1 通道 3(正端,硬绑定)。 |
| GPIO50 | ADC2_CH0_N | - | 12位逐次逼近型 ADC2 通道 0(负端,硬绑定)。 |
| GPIO51 | ADC2_CH0_P | - | 12位逐次逼近型 ADC2 通道 0(正端,硬绑定)。 |
| GPIO52 | ADC2_CH1_N | - | 12位逐次逼近型 ADC2 通道 1(负端,硬绑定)。 |
| GPIO53 | ADC2_CH1_P | - | 12位逐次逼近型 ADC2 通道 1(正端,硬绑定)。 |
| GPIO54 | ADC2_CH2_N | - | 12位逐次逼近型 ADC2 通道 2(负端,硬绑定)。 |
| GPIO55 | ADC2_CH2_P | - | 12位逐次逼近型 ADC2 通道 2(正端,硬绑定)。 |
| GPIO56 | ADC2_CH3_N | - | 12位逐次逼近型 ADC2 通道 3(负端,硬绑定)。 |
| GPIO57 | ADC2_CH3_P | - | 12位逐次逼近型 ADC2 通道 3(正端,硬绑定)。 |
| GPIO58 | - | - | UART0 物理调试串口 TXD (系统默认调试终端日志输出脚,悬空/弱上拉)。 |
| GPIO59 | - | - | UART0 物理调试串口 RXD (系统默认接收脚)。 |
| GPIO60 | - | - | Strapping 管脚 (Boot Mode 3);弱上拉。 |
| GPIO61 | - | - | Strapping 管脚 (Boot Mode 4);系统 Boot/固件下载模式选择物理引脚,上电拉低进入下载模式,悬空/拉高进入 Flash 运行。 |