原理图设计
概述
ESP32-S31 系列芯片的核心电路只需要 30 个左右的电阻电容电感和 1 个无源晶振,以及 1 个 SPI flash。为了能够更好地保证 ESP32-S31 系列芯片的工作性能,本章将详细介绍 ESP32-S31 系列芯片的原理图设计。
下图所示为 ESP32-S31 的核心电路参考设计,您可以将它作为您的原理图设计的基础。
备注
核心电路已经是最小电路,请不要随意删减器件。
ESP32-S31 系列芯片参考设计原理图
ESP32-S31 系列芯片的核心电路图的设计有以下重要组成部分:
下文将分别对这些部分进行描述。
电源
电源电路设计的通用要点有:
使用单电源供电时,建议供给 ESP32-S31 的电源电压为 3.3 V,最大输出电流至少 800 mA。
建议在总电源入口处(外部电源接入 PCB 的位置)添加 ESD 保护器件和至少 10 μF 的大电容。
电源管理如图 ESP32-S31 系列芯片电源管理图 所示。
ESP32-S31 系列芯片电源管理图
有关电源管脚的更多信息,请查看 ESP32-S31 系列芯片技术规格书 > 章节 电源。
数字电源
ESP32-S31 的管脚 VDDPST_1 是电源输入管脚,与数字 LP 电源域相关,工作电压范围为 3.0 V ~ 3.6 V。建议在电路中靠近该电源管脚处添加 0.1 μF 电容。
管脚 VDDPST_3 和 VDDPST_4 是电源输入管脚,与数字 HP 电源域相关,工作电压范围为 3.0 V ~ 3.6 V。建议在电路中靠近这两个电源管脚处分别添加 0.1 μF 电容。
管脚 VCCA/VDDPST_2 是电源输入管脚,与 USB_PHY 和数字 HP 电源域相关,工作电压范围为 3.0 V ~ 3.6 V。建议在电路中靠近该电源管脚处添加 0.1 μF 电容。
管脚 VDD_SPI 是电源输入/输出管脚,与 flash 电源域相关,推荐使用 VDD_SPI 输出电源给封装外 flash 供电。建议靠近该电源管脚和 flash 处添加 0.1 μF 及 1 μF 去耦电容。
当前管脚 VDD_SPI 只能输出 3.3 V,同时请在 GPIO36 外部添加上拉电阻。
管脚 VDD_PSRAM_1P8_1 和 VDD_PSRAM_1P8_2 是电源输入管脚,与 PSRAM 电源域相关。建议在电路中靠近这两个电源管脚处分别添加 0.1 μF 及 1 μF 电容。
管脚 VDD_LDO_1P8 是电源输出管脚,可作为输出电源给封装内 PSRAM、封装外 flash 和内部 SD GPIO 使用。
推荐使用 VDD_LDO_1P8 输出电源给封装内 PSRAM 供电,即将 VDD_PSRAM_1P8_1 和 VDD_PSRAM_1P8_2 连接至 VDD_LDO_1P8。
ESP32-S31 系列芯片 PSRAM 电源电路图
模拟电源
ESP32-S31 的 VDDA1 至 VDDA4 管脚 为模拟电源管脚,工作电压范围为 3.0 V ~ 3.6 V。
建议在电路中靠近 VDDA1 和 VDDA2 电源管脚处添加 10 nF 和 1 μF 电容。
对于 VDDA3 和 VDDA4,当 ESP32-S31 工作在 TX 时,瞬间电流会加大,往往引起电源的轨道塌陷。所以在电路设计时建议在 VDDA3 和 VDDA4 的电源走线上增加一个 10 μF 电容,该电容可与 1 μF 电容或其他电容搭配使用。
建议在总电源入口添加另一个 10 μF 电容。如果总电源入口靠近 VDDA3 和 VDDA4,可以合并仅使用一个 10 μF 电容。
另外,在靠近 VDDA3 和 VDDA4 处还需添加 LC 滤波电路,用于抑制高频谐波,同时请注意该电感的额定电流最好在 500 mA 及以上。
其余电容电路请参考 ESP32-S31 系列芯片参考设计原理图。
上电时序与复位
ESP32-S31 的 CHIP_PU 管脚为高电平时使能芯片,为低电平时复位芯片。
当 ESP32-S31 使用 3.3 V 系统电源供电时,电源轨需要一些时间才能稳定,之后才能拉高 CHIP_PU,激活芯片。因此,CHIP_PU 管脚上电要晚于系统电源 3.3 V 上电。
复位芯片时,复位电压 VIL_nRST 范围应为 (–0.3 ~ 0.15 × VDDPST_1) V。为防止外界干扰引起重启,CHIP_PU 管脚引线需尽量短一些。
图 ESP32-S31 系列芯片上电和复位时序图 为 ESP32-S31 系列芯片的上电、复位时序图。
ESP32-S31 系列芯片上电和复位时序图
上电和复位时序参数说明见表 上电和复位时序参数说明。
参数 |
说明 |
最小值 (ms) |
|---|---|---|
tSTBL |
CHIP_PU 管脚拉高激活芯片前,VDDA1、VDDA2、VDDA3、VDDA4、VDDPST_1、VDDPST_2、VDDPST_3、VDDPST_4 达到稳定所需的时间 |
1 |
tRST |
CHIP_PU 电平低于 VIL_nRST 从而复位芯片的时间 |
1 |
注意
CHIP_PU 管脚不可浮空。
为确保芯片上电和复位时序正常,一般采用的方式是在 CHIP_PU 管脚处增加 RC 延迟电路。RC 通常建议为 R = 10 kΩ,C = 1 μF,但具体数值仍需根据实际的电源特性配合芯片的上电、复位时序进行调整。
如果应用中存在以下场景:
电源缓慢上升或下降,例如电池充电;
需要频繁上下电的操作;
供电电源不稳定,例如光伏发电。
此时,仅仅只有 RC 电路不一定能够满足时序要求,有概率会导致芯片无法进入正常的工作模式或者 flash 擦除操作可能偶尔无法彻底完成从而出现问题。此时,请预留电源监控芯片,保证在电源异常的情况下可以复位芯片,电源监控芯片的阈值建议 3.0 V 左右。
Flash 及 PSRAM
目前 ESP32-S31 系列芯片固件仅支持 NOR flash。
ESP32-S31 需要配合封装外 flash 一起使用,用于存储应用的固件和数据。ESP32-S31 支持以 SPI、Dual SPI、Quad SPI/QPI 等接口模式连接 flash,最大可支持 256 MB flash。
ESP32-S31 内部封装了八线、1.8 V 工作电压的 PSRAM,但是 PSRAM 的管脚并没有引出芯片。
表 芯片与封装外 flash 的管脚对应关系 列出了所有 SPI 模式下芯片与 flash 的管脚对应关系。
管脚序号 |
管脚名称 |
Single SPI |
Dual SPI |
Quad SPI/QPI |
|---|---|---|---|---|
36 |
SPICS |
CS# |
CS# |
CS# |
37 |
SPIQ |
DO |
DO |
DO |
38 |
SPIWP |
WP# |
WP# |
WP# |
40 |
SPIHD |
HOLD# |
HOLD# |
HOLD# |
41 |
SPICLK |
CLK |
CLK |
CLK |
42 |
SPID |
DI |
DI |
DI |
为了减少软件适配的风险,推荐使用乐鑫官方适配过的 flash 型号,具体选型请咨询商务或者技术团队。建议如图 ESP32-S31 系列芯片封装外 Flash 电路图 所示在 SPI 线上预留 0 Ω 串联电阻,以便在需要时进行灵活调整,实现降低驱动电流、减小对射频的干扰、调节时序、提升抗干扰能力等功能。
ESP32-S31 系列芯片封装外 Flash 电路图
时钟源
ESP32-S31 外部可以有两个时钟源:
外置主晶振时钟源(必选)
目前 ESP32-S31 系列芯片固件仅支持 40 MHz 晶振。
ESP32-S31 的无源晶振部分电路如图 ESP32-S31 系列芯片无源晶振电路图。注意,选用的无源晶振自身精度需在 ±10 ppm。
ESP32-S31 系列芯片无源晶振电路图
XTAL_P 时钟走线上必须添加一个串联电感,初始建议使用 24 nH (0201)。该电感作为系统正常启动的必须的元器件,即使不使用射频功能也需要该电感,也可以用来减弱晶振高频谐波对射频性能的影响,最终值需要通过测试后确认。
外部匹配电容 C1 和 C2 的初始值可参考以下公式来决定:
其中 CL (负载电容)的值可查看所选择晶振的规格书,Cstray 的值为 PCB 的寄生电容。C1 和 C2 的最终值需要通过对系统测试后进行调节确定。调试方法如下:
通过 认证测试工具,选择 TX tone 模式。
使用综测仪或者频谱仪查看 2.4 GHz 信号,解调得到实际频偏。
通过调整外置负载电容,把频偏调整到 ±10 ppm(室温)以内。
当中心频率偏正时,说明等效负载电容偏小,需要增加外置负载电容。
当中心频率偏负时,说明等效负载电容偏大,需要减小外置负载电容。
通常两个外置负载电容相等,在特殊情况下,也可以有略微差异。
备注
尽管 ESP32-S31 内部带有自校准功能,但是自身频偏过大(例如大于 ±10 ppm)、工作温度范围内稳定度不高等晶振本身的质量问题仍然会影响芯片的正常工作,导致射频指标性能下降。
建议晶振的幅值大于 500 mV。
如果出现功能性的 Wi-Fi 或蓝牙无法连接,排除软件原因后,可以采用上文中的方法,通过调节晶振的电容来保证频偏满足要求。
RTC 时钟源(可选)
ESP32-S31 支持外置 32.768 kHz 的无源晶振作为 RTC 时钟。使用外部 RTC 时钟源是为了使时间更准确,从而降低平均功耗,但对于功能没有任何影响。
外置 32.768 kHz 无源晶振的电路如图 ESP32-S31 系列芯片外置 32.768 kHz 无源晶振电路图 所示。
ESP32-S31 系列芯片外置 32.768 kHz 无源晶振电路图
请注意 32.768 kHz 晶振选择要求:
等效内阻 (ESR) ≤ 70 kΩ。
两端负载电容值根据晶振的规格要求进行配置。
并联电阻 R 用于偏置晶振电路,电阻值要求 5 MΩ < R ≤ 10 MΩ。
该电阻一般无需上件。
如果不需要该 RTC 时钟源,则 32.768 kHz 晶振的管脚也可配置为通用 GPIO 口使用。
射频
射频电路
ESP32-S31 系列芯片的射频电路主要由三部分组成:PCB 板射频走线、芯片匹配电路、天线及其匹配电路。各部分电路应满足以下设计规范:
PCB 板射频走线:需进行 50 Ω 阻抗控制。
芯片匹配电路:请尽量靠近芯片放置,优先采用 CLCCL 结构。
CLCCL 结构构成带通滤波器,主要用来调整阻抗点,抑制高频谐波和低频噪声,以及提高抗干扰能力。
芯片匹配电路如图 ESP32-S31 系列芯片射频匹配电路图 所示。
天线及其匹配电路:为保证辐射性能,建议天线的输入阻抗为 50 Ω 左右。为保险起见,推荐在靠近天线位置增加一组 CLC 匹配电路,用于调节天线的输入阻抗。
整体匹配电路建议至少有两组 CLC 结构。
ESP32-S31 系列芯片射频匹配电路图
射频调试
射频匹配网络的参数值和 PCB 板有关,不要直接使用模组的匹配值,须按照下述射频调试进行确认。
图 ESP32-S31 射频调试示意图 展示了射频调试的大概过程。
ESP32-S31 射频调试示意图
将芯片匹配电路靠近芯片的端口定义为端口 1,将其靠近天线的端口定义为端口 2,则 S11 用来描述从端口 1 反射回来的信号功率与输入信号功率之比,如果匹配阻抗与芯片阻抗共轭,则传输性能最佳。S21 用来描述从端口 1 到端口 2 的信号功率传输损耗。如果 S11 接近芯片共轭阻抗点 40+j0,且 S21 在 4.8 GHz 和 7.2 GHz 频率下小于 -35 dB,则匹配电路可满足传输要求。
将芯片匹配电路的两端分别接到综测仪上,测试其信号反射参数 S11 及传输参数 S21。调试该匹配电路中元件的数值,直至 S11 和 S21 满足上述要求。如果芯片的 PCB 板严格设计遵循章节 PCB 版图布局 里的规范,用户可以参考表 匹配电路元器件推荐数值范围 来调试该匹配电路。
位号 |
推荐数值范围 |
物料编号 |
|---|---|---|
C11 |
1.2 ~ 1.8 pF |
GRM0335C1H1RXBA01D |
L2 |
2.0 ~ 3.0 nH |
LQP03TN2NXB02D |
C12 |
1.8 ~ 1.2 pF |
GRM0335C1H1RXBA01D |
射频匹配器件请采用 0201 物料,芯片端匹配电路的第一个电容需要添加枝节。
备注
如果不需要射频功能,建议不要在固件中初始化射频堆栈。此时,射频管脚可以悬空。如果启用射频功能,请确保已连接天线,否则可能导致系统不稳定或射频电路损坏。
UART
ESP32-S31 有 4 个 UART 接口,即 UART0 ~ UART3。U0TXD 和 U0RXD 默认为 GPIO58 和 GPIO59,其他 UART 信号可以通过 GPIO 交换矩阵功能配置到任意空闲的 GPIO 管脚上。
ESP32-S31 还有 1 个 LP UART,可以配置到任意 LP GPIO 管脚上。
UART0 通常作为下载和 log 打印的串口。关于如何使用 UART0 进行下载,请参考章节 下载指导。U0TXD 线上建议串联 499 Ω 电阻用于抑制谐波。
应用通信建议优先使用 UART0 以外的 UART,并在 TX 线上串联电阻用于抑制谐波。
SPI
在使用 SPI 功能时,为了提高 EMC 性能,请在 SPI_CLK 线上添加串联电阻(或磁珠)以及对地电容。如果空间允许,建议在其他 SPI 线上也添加串联电阻和对地电容。另外,请确保 RC/LC 器件靠近芯片或模组的管脚放置。
Strapping 管脚
芯片每次上电或复位时,都需要一些初始配置参数,如加载芯片的启动模式等。这些参数通过 strapping 管脚控制。复位放开后,strapping 管脚和普通 IO 管脚功能相同。
GPIO37、GPIO60 和 GPIO61 为 strapping 管脚。
所有的 strapping 管脚信息,可参考 ESP32-S31 系列芯片技术规格书 > 章节 启动配置项。
下面主要介绍和启动模式有关的 strapping 管脚信息。
芯片复位释放后,GPIO60 和 GPIO61 共同决定启动模式,详见表 芯片启动模式控制。
启动模式 |
GPIO61 |
GPIO60 |
|---|---|---|
SPI Boot(默认) |
1 |
任意值 |
Joint Download Boot |
0 |
1 |
备注
加粗 表示默认值和默认配置。
Joint Download Boot 模式下支持以下下载方式:
USB-Serial-JTAG Download Boot
USB-OTG Download Boot
UART Download Boot
GPSPI Download Boot
除了 SPI Boot 和 Joint Download Boot 模式,ESP32-S31 还支持 SPI Download Boot 模式。
Strapping 管脚的时序参数包括 建立时间 和 保持时间。更多信息,详见图 Strapping 管脚的时序参数图 和表 Strapping 管脚的时序参数说明。
Strapping 管脚的时序参数图
参数 |
说明 |
最小值 (ms) |
|---|---|---|
tSU |
建立时间,即拉高 CHIP_PU 激活芯片前,电源轨达到稳定所需的时间 |
0 |
tH |
保持时间,即 CHIP_PU 已拉高、strapping 管脚变为普通 IO 管脚开始工作前,可读取 strapping 管脚值的时间 |
3 |
注意
建议在 GPIO61 管脚处预留上拉电阻。
不要在 GPIO61 管脚处添加较大的电容,可能会导致进入下载模式。
外置阻容
ESP32-S31 系列芯片有以下需要外接电容的管脚:
VREF_TOUCH 是 TOUCH 参考电压电容管脚,建议在电路中靠近该管脚处添加 0.47 μF 电容。如果不使用 TOUCH 功能,该管脚可以悬空。
VREF_ADC 是 ADC 参考电压电容管脚,建议在电路中靠近该管脚处添加 0.1 μF 电容。如果不使用 ADC 功能,该管脚可以悬空。
GPIO
ESP32-S31 系列芯片通过 IO MUX 表格或者 GPIO 交换矩阵来配置 GPIO。IO MUX 是默认的外设管脚配置(详见 ESP32-S31 系列芯片技术规格书 > 附录 ESP32-S31 管脚总览),GPIO 交换矩阵用于将可以配置的外设信号传输至 GPIO 管脚。更多关于 IO MUX 和 GPIO 交换矩阵的信息,请参考 ESP32-S31 技术参考手册 > 章节 IO MUX 和 GPIO 交换矩阵。
部分外设的 GPIO 管脚是固定的,部分是可以任意配置的,具体信息请参考 ESP32-S31 系列芯片技术规格书 > 章节 外设。
使用 GPIO 时,请注意:
Strapping 管脚的上电状态。
请注意 GPIO 复位后的默认配置,详见下表。对于未使用、处于高阻态且无内部上下拉的管脚,建议配置上拉或下拉电阻,或在软件初始化时开启内部上下拉,以避免不必要的耗电,具体方向按外部电路要求选择。
避免使用 flash 占用的管脚。
Deep-sleep 模式下只能控制 LP GPIO,即 GPIO0 至 GPIO7。
管脚序号 |
管脚名称 |
供电管脚 |
复位时 |
复位后 |
|---|---|---|---|---|
1 |
ANT |
|||
2 |
VDDA3 |
|||
3 |
VDDA4 |
|||
4 |
CHIP_PU |
|||
5 |
XTAL_32K_N/GPIO0 |
VDDPST_1 |
||
6 |
XTAL_32K_P/GPIO1 |
VDDPST_1 |
||
7 |
GPIO2 |
VDDPST_1 |
||
8 |
GPIO3 |
VDDPST_1 |
||
9 |
GPIO4 |
VDDPST_1 |
||
10 |
GPIO5 |
VDDPST_1 |
||
11 |
VDDPST_1 |
|||
12 |
GPIO6 |
VDDPST_1 |
||
13 |
GPIO7 |
VDDPST_1 |
||
14 |
GPIO8 |
VDDPST_1 |
IE |
|
15 |
GPIO9 |
VDDPST_1 |
IE |
|
16 |
GPIO10 |
VDDPST_1 |
IE |
|
17 |
GPIO11 |
VDDPST_1 |
IE |
|
18 |
VREF_TOUCH |
|||
19 |
GPIO12 |
VDDPST_1 |
IE |
|
20 |
GPIO13 |
VDDPST_1 |
IE |
|
21 |
GPIO14 |
VDDPST_1 |
IE |
|
22 |
GPIO15 |
VDDPST_1 |
IE |
|
23 |
GPIO16 |
VDDPST_1 |
IE |
|
24 |
GPIO17 |
VDDPST_1 |
IE |
|
25 |
GPIO18 |
VDDPST_1 |
IE |
|
26 |
GPIO19 |
VDDPST_1 |
IE |
|
27 |
SDIO_DATA0 |
VDDPST_SD |
IE |
|
28 |
SDIO_DATA1 |
VDDPST_SD |
IE |
|
29 |
SDIO_DATA2 |
VDDPST_SD |
IE |
|
30 |
VDD_PSRAM_1P8_1 |
|||
31 |
SDIO_DATA3 |
VDDPST_SD |
IE |
|
32 |
SDIO_CLK |
VDDPST_SD |
IE |
|
33 |
SDIO_CMD |
VDDPST_SD |
IE |
|
34 |
VDD_PSRAM_1P8_2 |
|||
35 |
VDD_LDO_1P8 |
|||
36 |
SPICS |
VDD_SPI |
WPU |
WPU, IE |
37 |
SPIQ |
VDD_SPI |
WPU |
WPU, IE |
38 |
SPIWP |
VDD_SPI |
WPU |
WPU, IE |
39 |
VDD_SPI |
|||
40 |
SPIHD |
VDD_SPI |
WPU |
WPU, IE |
41 |
SPICLK |
VDD_SPI |
WPU |
WPU, IE |
42 |
SPID |
VDD_SPI |
WPU |
WPU, IE |
43 |
VCCA/VDDPST_2 |
|||
44 |
USB_DP |
VDDPST_2 |
||
45 |
USB_DM |
VDDPST_2 |
||
46 |
GPIO33 |
VDDPST_3 |
DRV=3 |
USB_PU, IE, DRV=3 |
47 |
GPIO34 |
VDDPST_3 |
DRV=3 |
USB_PU, IE, DRV=3 |
48 |
GPIO35 |
VDDPST_3 |
IE |
|
49 |
GPIO36 |
VDDPST_3 |
IE |
IE |
50 |
GPIO37 |
VDDPST_3 |
IE |
IE |
51 |
GPIO38 |
VDDPST_3 |
IE |
IE |
52 |
GPIO39 |
VDDPST_3 |
IE |
IE |
53 |
GPIO40 |
VDDPST_3 |
IE |
IE |
54 |
VDDPST_3 |
|||
55 |
GPIO42 |
VDDPST_3 |
IE |
|
56 |
GPIO43 |
VDDPST_3 |
IE |
|
57 |
GPIO44 |
VDDPST_3 |
IE |
|
58 |
GPIO45 |
VDDPST_3 |
IE |
|
59 |
GPIO46 |
VDDPST_3 |
IE |
|
60 |
GPIO47 |
VDDPST_3 |
IE |
|
61 |
GPIO48 |
VDDPST_3 |
||
62 |
GPIO49 |
VDDPST_3 |
||
63 |
VREF_ADC |
|||
64 |
VDDPST_4 |
|||
65 |
GPIO50 |
VDDPST_4 |
||
66 |
GPIO51 |
VDDPST_4 |
||
67 |
GPIO52 |
VDDPST_4 |
IE |
|
68 |
GPIO53 |
VDDPST_4 |
IE |
|
69 |
MTDO |
VDDPST_4 |
IE |
|
70 |
MTCK |
VDDPST_4 |
IE |
|
71 |
MTDI |
VDDPST_4 |
IE |
|
72 |
MTMS |
VDDPST_4 |
IE |
|
73 |
GPIO58 |
VDDPST_4 |
IE |
|
74 |
GPIO59 |
VDDPST_4 |
IE |
|
75 |
GPIO60 |
VDDPST_4 |
WPU, IE |
WPU, IE |
76 |
GPIO61 |
VDDPST_4 |
WPU, IE |
WPU, IE |
77 |
VDDA1 |
|||
78 |
XTAL_N |
|||
79 |
XTAL_P |
|||
80 |
VDDA2 |
|||
81 |
GND |
IE – 输入使能
WPU – 内部弱上拉电阻使能
DRV – 驱动强度
取值 0 ~ 3 分别对应约 5、10、20、40 mA。
GPIO33、GPIO34 管脚的默认驱动电流为 40 mA,其余 IO 管脚的默认驱动电流均为 20 mA。
USB_PU – USB 上拉电阻使能
USB 管脚(GPIO33 和 GPIO34)默认开启 USB 功能,此时管脚是否上拉由 USB 上拉电阻决定。USB 上拉由 USB_SERIAL_JTAG_DP/DM_PULLUP 控制,USB 上拉电阻的具体阻值可通过 USB_SERIAL_JTAG_PULLUP_VALUE 位控制。
USB 管脚关闭 USB 功能时,用作普通 GPIO,默认禁用管脚内部弱上/下拉电阻,可通过 IO_MUX_GPIOn_MCU_WPU/WPD 配置。
ADC
ADC 功能对应的 GPIO 管脚如下表所示。
GPIO 管脚 |
ADC 功能 |
|---|---|
GPIO42 |
ADC1_CH0_N |
GPIO43 |
ADC1_CH0_P |
GPIO44 |
ADC1_CH1_N |
GPIO45 |
ADC1_CH1_P |
GPIO46 |
ADC1_CH2_N |
GPIO47 |
ADC1_CH2_P |
GPIO48 |
ADC1_CH3_N |
GPIO49 |
ADC1_CH3_P |
GPIO50 |
ADC2_CH0_N |
GPIO51 |
ADC2_CH0_P |
GPIO52 |
ADC2_CH1_N |
GPIO53 |
ADC2_CH1_P |
MTDO/GPIO54 |
ADC2_CH2_N |
MTCK/GPIO55 |
ADC2_CH2_P |
MTDI/GPIO56 |
ADC2_CH3_N |
MTMS/GPIO57 |
ADC2_CH3_P |
使用 ADC 功能时,请靠近管脚添加 0.1 μF 的对地滤波电容,精度会更准确一些。
SD/MMC 主机控制器
ESP32-S31 系列芯片集成一个 SD/SDIO/MMC 主机控制器,不能作为从机。该 SD/MMC 主机外设共有两个卡槽 (slot),用于插入 SD 卡、连接 SDIO 设备或连接 eMMC 芯片,每个卡槽均可独立使用。
卡槽 1 (SDMMC_HOST_SLOT_0) 的信号通过 IO MUX 使用 GPIO20 ~ GPIO25,支持 SD 3.0 版本,1.8 V/3.3 V 在芯片内部自动切换。
卡槽 2 (SDMMC_HOST_SLOT_1) 的信号通过 IO MUX 使用 GPIO35 ~ GPIO40。
DATA0 |
DATA1 |
DATA2 |
DATA3 |
CLK |
CMD |
|
|---|---|---|---|---|---|---|
SLOT0 |
GPIO20 |
GPIO21 |
GPIO22 |
GPIO23 |
GPIO24 |
GPIO25 |
SLOT1 |
GPIO35 |
GPIO36 |
GPIO37 |
GPIO38 |
GPIO39 |
GPIO40 |
使用 slot0 时,因为 GPIO 电源域是内部电源,所以无需添加上拉,建议每根线上添加一个串联电阻,在 CLK 线上预留对地电容用于可能的调试。此外,如果使用 1 bit 模式,其他没有使用的管脚也不能再作为其他用处。
使用 slot1 时,请在 GPIO 管脚处添加上拉电阻,建议每根线上添加一个串联电阻,在 CLK 线上预留对地电容用于可能的调试。
USB
ESP32-S31 系列芯片带有一个集成了收发器的 USB 2.0 高速 OTG 外设,管脚 44 USB_DP 和管脚 45 USB_DM 分别作为 USB 2.0 高速 OTG 接口的 USB_D- 和 USB_D+ 的专用数字管脚,其余信号通过 GPIO 交换矩阵可配置使用任意 GPIO 管脚。
ESP32-S31 系列芯片包含一个 USB 串口/JTAG 控制器,GPIO33 和 GPIO34 分别作为 USB 串口/JTAG 控制器接口的 USB_D- 和 USB_D+ 的专用数字管脚。
GPIO33 和 GPIO34 线上建议预留串联电阻(初始值可为 22/33 Ω)和对地电容(初始可不上件),并注意靠近芯片端放置。
USB RC 电路如图 ESP32-S31 系列芯片 USB RC 电路图 所示。
ESP32-S31 系列芯片 USB RC 电路图
ESP32-S31 系列芯片也支持通过 USB 进行下载和 log 打印,下载指导请参考章节 下载指导。
触摸传感器
ESP32-S31 提供了多达 14 个电容式传感 GPIO,能够探测由手指或其他物品直接接触或接近而产生的电容差异。这种设计具有低噪声和高灵敏度的特点,可以用于支持使用相对较小的触摸板。设计中也可以使用触摸板阵列以探测更大区域或更多点。
ESP32-S31 的触摸传感器同时还支持防水、跳频检测和数字滤波等功能来进一步提高传感器的性能。
触摸传感器功能对应的 GPIO 管脚如下表所示。
GPIO 管脚 |
触摸传感器功能 |
|---|---|
GPIO6 |
TOUCH_CH0 |
GPIO7 |
TOUCH_CH1 |
GPIO8 |
TOUCH_CH2 |
GPIO9 |
TOUCH_CH3 |
GPIO10 |
TOUCH_CH4 |
GPIO11 |
TOUCH_CH5 |
GPIO12 |
TOUCH_CH6 |
GPIO13 |
TOUCH_CH7 |
GPIO14 |
TOUCH_CH8 |
GPIO15 |
TOUCH_CH9 |
GPIO16 |
TOUCH_CH10 |
GPIO17 |
TOUCH_CH11 |
GPIO18 |
TOUCH_CH12 |
GPIO19 |
TOUCH_CH13 |
使用 TOUCH 功能时,建议靠近芯片侧预留串联电阻,用于减小线上的耦合噪声和干扰,也可加强 ESD 保护。该阻值建议 470 Ω 到 2 kΩ,推荐 510 Ω。具体值还需根据产品实际测试效果而定。
以太网 MAC
ESP32-S31 为以太网通信提供了一个符合 IEEE-802.3 标准的媒体访问控制器 (MAC) 接口,支持通过 MII 接口、RMII 接口或 RGMII 接口与外部快速以太网 PHY 进行通信(一次仅可使用一种接口)。
接口定义和 GPIO 的对应如下:
GPIO 管脚 |
MII 接口管脚 |
RMII 接口管脚 |
RGMII 接口管脚 |
|---|---|---|---|
GPIO8 |
MII_TXD0 |
RMII_TXD0 |
RGMII_TXD0 |
GPIO9 |
MII_TXD1 |
RMII_TXD1 |
RGMII_TXD1 |
GPIO10 |
MII_TXD2 |
N/A |
RGMII_TXD2 |
GPIO11 |
MII_TXD3 |
N/A |
RGMII_TXD3 |
GPIO12 |
MII_TXEN |
RMII_TXEN |
RGMII_TX_CTL |
GPIO13 |
MII_TX_CLK |
RMII_CLK |
RGMII_TX_CLK |
GPIO14 |
MII_RX_CLK |
N/A |
RGMII_RX_CLK |
GPIO15 |
MII_RXDV |
RMII_CRS_DV |
RGMII_RX_CTL |
GPIO16 |
MII_RXD3 |
N/A |
RGMII_RXD3 |
GPIO17 |
MII_RXD2 |
N/A |
RGMII_RXD2 |
GPIO18 |
MII_RXD1 |
RMII_RXD1 |
RGMII_RXD1 |
GPIO19 |
MII_RXD0 |
RMII_RXD0 |
RGMII_RXD0 |
任意 GPIO |
MII_RX_ER |
N/A |
N/A |
任意 GPIO |
MII_CRS |
N/A |
N/A |
任意 GPIO |
MII_COL |
N/A |
N/A |
任意 GPIO |
MDIO |
MDIO |
MDIO |
任意 GPIO |
MDC |
MDC |
MDC |
建议在 MII/RMII/RGMII 的 CLK 线上添加串联电阻用于调节。
RMII 接口中的时钟信号(GPIO13)仅为输入。如果需要时钟输出方案,请使用 REF_GMAC_CLK_PAD 信号(GPIO35)连接至 GPIO13 和 PHY 端。
LCD 与 Camera 控制器
ESP32-S31 的 LCD_CAM 控制器包含一个独立的 LCD 控制模块和 Camera(摄像头)控制模块,可以外接 LCD 和摄像头设备。
LCD_CAM 控制器的 LCD 和 CAM 接口通过 GPIO 交换矩阵可配置使用任意 GPIO 管脚。如果对高速率有要求,请使用 IO MUX 定义的 GPIO,如下表所示。
GPIO 管脚 |
并行 LCD 接口管脚 |
RGB 888 接口管脚 |
RGB565 接口管脚 |
|---|---|---|---|
GPIO2 |
LCD_DATA19 |
R3 |
– |
GPIO3 |
LCD_DATA20 |
R4 |
– |
GPIO4 |
LCD_DATA21 |
R5 |
– |
GPIO5 |
LCD_DATA22 |
R6 |
– |
GPIO7 |
LCD_DATA23 |
R7 |
– |
GPIO8 |
LCD_DATA0 |
B0 |
B3 |
GPIO9 |
LCD_DATA1 |
B1 |
B4 |
GPIO10 |
LCD_DATA2 |
B2 |
B5 |
GPIO11 |
LCD_DATA3 |
B3 |
B6 |
GPIO12 |
LCD_DATA4 |
B4 |
B7 |
GPIO13 |
LCD_DATA5 |
B5 |
G2 |
GPIO14 |
LCD_DATA6 |
B6 |
G3 |
GPIO15 |
LCD_DATA7 |
B7 |
G4 |
GPIO16 |
LCD_DATA8 |
G0 |
G5 |
GPIO17 |
LCD_DATA9 |
G1 |
G6 |
GPIO18 |
LCD_DATA10 |
G2 |
G7 |
GPIO19 |
LCD_DATA11 |
G3 |
R3 |
GPIO33 |
LCD_DATA12 |
G4 |
R4 |
GPIO34 |
LCD_DATA13 |
G5 |
R5 |
GPIO35 |
LCD_DATA14 |
G6 |
R6 |
GPIO36 |
LCD_DATA15 |
G7 |
R7 |
GPIO37 |
LCD_DATA16 |
R0 |
– |
GPIO38 |
LCD_DATA17 |
R1 |
– |
GPIO39 |
LCD_DATA18 |
R2 |
– |
GPIO40 |
LCD_PCLK |
LCD_PCLK |
LCD_PCLK |
GPIO43 |
LCD_H_ENABLE |
LCD_H_ENABLE |
LCD_H_ENABLE |
GPIO44 |
LCD_H_SYNC |
LCD_H_SYNC |
LCD_H_SYNC |
GPIO45 |
LCD_V_SYNC |
LCD_V_SYNC |
LCD_V_SYNC |
GPIO 管脚 |
Camera 接口管脚 |
|---|---|
GPIO46 |
CAM_DATA0 |
GPIO47 |
CAM_DATA1 |
GPIO48 |
CAM_DATA2 |
GPIO49 |
CAM_DATA3 |
GPIO50 |
CAM_DATA4 |
GPIO51 |
CAM_DATA5 |
GPIO52 |
CAM_DATA6 |
GPIO53 |
CAM_DATA7 |
GPIO54 |
CAM_PCLK |
GPIO55 |
CAM_XCLK |
GPIO56 |
CAM_V_SYNC |
GPIO57 |
CAM_H_SYNC |