esp32s3 开发指北
esp32s3 开发指北(持续更新)
切换目标芯片:Ctrl + Shift + P 调出命令面板,选择 ESP-IDF: Device Configuration,再选择 Device Target,再选择具体的芯片。
引脚注意事项
不建议使用/谨慎使用 的管脚
在网上搜 esp32s3 不建议使用的管脚,发现总有人写了 6-11 脚,全是抄来抄去不翻官方手册的人乱写,明明 esp32s3 的 SPI Flash 连接的是 26-32 脚,还非要把 esp32 的 6-11 写上去。更有甚者把这两个一块写上去了,怎么的,缺的 FLash 你给我补呗。
| 管脚 | 功能 | 管脚 | 功能 | 管脚 | 功能 | 
|---|---|---|---|---|---|
| GPIO 26 | SPICS1 | GPIO 27 | SPIHD | GPIO 28 | SPIWP | 
| GPIO 29 | SPICS0 | GPIO 30 | SPICLK | GPIO 31 | SPIQ | 
| GPIO 32 | SPID | GPIO 33 | 八线 SPI 占用 | GPIO 34 | 八线 SPI 占用 | 
| GPIO 35 | 八线 SPI 占用 | GPIO 36 | 八线 SPI 占用 | GPIO 37 | 八线 SPI 占用 | 
| GPIO 0 | 芯片启动模式 | GPIO 3 | JTAG 信号源 | GPIO 19 | USB 用于调试 | 
| GPIO 20 | USB 用于调试 | GPIO 45 | VDD_SPI 电压 | GPIO 46 | 芯片启动/日志打印 | 
启动配置项
芯片在上电或硬件复位时,可以通过Strapping管脚和eFuse位配置如下启动参数,无需微处理器的参与:
- 芯片启动模式
- Strapping 管脚:GPIO0 和 GPIO46
 
 - VDD_SPI 电压
- Strapping 管脚:GPIO45
 
 - ROM日志打印
- Strapping 管脚:GPIO46
 
 - JTAG 信号源
- Strapping 管脚:GPIO3
 
 
Strapping 管脚的默认配置
| Strapping 管脚 | 默认配置 | 值 | 
|---|---|---|
| GPIO0 | 弱上拉 | 1 | 
| GPIO3 | 浮空 | - | 
| GPIO45 | 弱下拉 | 0 | 
| GPIO46 | 弱下拉 | 0 | 
芯片启动模式控制
复位释放后,GPIO0和GPIO46共同决定启动模式。  
| 启动模式 | GPIO0 | GPIO46 | 
|---|---|---|
| SPI Boot | 1 | 任意值 | 
| Joint Download Boot | 0 | 0 | 
- 在 SPI Boot 模式下,ROM 引导加载程序通过从 SPI flash 中读取程序来启动系统。
 - 在 Joint Download Boot 模式下,用户可通过 USB 或 UART0 接口将二进制文件下载至 flash,或将二进制文件下载至 SRAM 并运行 SRAM 中的程序。
- USB Download Boot:
- USB-Serial-JTAG Download Boot
 - USB-OTG Download Boot
 
 - UART Download Boot
 
 - USB Download Boot:
 
Flash / PSRAM
为了优化模组性能,最好将 Flash 和 PSRAM 的 SPI 速率设置为一致,这样分时访问这两个存储设备时,就不必切换时钟频率了。鉴于 PSRAM 的 SPI 速率最高可设置为 80MHz,因此将 Flash 的 SPI 速率也设置为 80MHz,以确保最佳性能。
| 管脚序号 | 管脚名称 | 单线SPI | 双线SPI | 四线SPI | 八线SPI | ||||
|---|---|---|---|---|---|---|---|---|---|
| Flash | PSRAM | Flash | PSRAM | Flash | PSRAM | Flash | PSRAM | ||
| 33 | SPICLK | CLK | CLK | CLK | CLK | CLK | CLK | CLK | CLK | 
| 32 | SPICS0 | CS# | CS# | CS# | CS# | ||||
| 28 | SPICS1 | CE# | CE# | CE# | CE# | ||||
| 35 | SPID | DI | SI/SIO0 | DI | SI/SIO0 | DI | SI/SIO0 | DQ0 | DQ0 | 34 | SPIQ | DO | SO/SIO1 | DO | SO/SIO1 | DO | SO/SIO1 | DQ1 | DQ1 | 
| 31 | SPIWP | WP# | SIO2 | WP# | SIO2 | WP# | SIO2 | DQ2 | DQ2 | 
| 30 | SPIHD | HOLD# | SIO3 | HOLD# | SIO3 | HOLD# | SIO3 | DQ3 | DQ3 | 38 | GPIO33 | DQ4 | DQ4 | 
| 39 | GPIO34 | DQ5 | DQ5 | ||||||
| 40 | GPIO35 | DQ6 | DQ6 | ||||||
| 41 | GPIO36 | DQ7 | DQ7 | ||||||
| 42 | GPIO37 | DQS/DM | DQS/DM | ||||||
CS0用于封装内flashCS1用于封装内PSRAM
!!!注意 !!!
红色高亮引脚 用于与封装内 Flash / PSRAM 通讯,不建议作其他用途。
黄色高亮引脚 工作在八线 SPI 模式下不建议使用,其余情况无限制。
SPI × 4
ESP32-S3 具有以下 SPI 接口:
- SPI0/1,供 ESP32-S3 和加密 DMA (EDMA) 访问封装内或封装外 Flash/PSRAM 
- 引脚:详见上一节 Flash / PSRAM
 
 - SPI2,通用 SPI 控制器,具有单独的 DMA 通道 
- 引脚:可通过 GPIO 交换矩阵连接任意 IO 管脚
管脚序号 管脚名称 功能 14 GPIO9 FSPIHD 15 GPIO10 FSPICS0 16 GPIO11 FSPID 17 GPIO12 FSPICLK 18 GPIO13 FSPIQ 19 GPIO14 FSPIWP  
 - 引脚:可通过 GPIO 交换矩阵连接任意 IO 管脚
 - SPI3,通用 SPI 控制器,和部分外设共用一个 DMA 通道
- 引脚:可通过 GPIO 交换矩阵连接任意 IO 管脚
 
 
UART × 3
ESP32-S3 有三个 UART(通用异步收发器)控制器,即 UART0、UART1、UART2,支持异步通信(RS232 和 RS485)和 IrDA,通信速率可达到 5 Mbps。
下面是ESP32-S3 UART的默认引脚。  
| 功能/引脚 | UART0 | UART1 | UART2 | 
|---|---|---|---|
| 发送(TX) | GPIO43 | GPIO17 / 任意IO | 任意IO | 
| 接收(RX) | GPIO44 | GPIO18 / 任意IO | 任意IO | 
IIC × 2
ESP32-S3 有两个 IIC 总线接口,根据用户的配置,总线接口可以用作 IIC 主机或从机模式。
IIC 总线分软件和硬件对象,通过配置可以在任意引脚上实现 IIC 功能。  
I2S × 2
ESP32-S3 有两个标准 I2S 接口,可以以主机或从机模式,在全双工或半双工模式下工作,并且可被配置为 I2S 串行 8/16/24/32 位的收发数据模式,支持频率从 10 kHz 到 40 MHz 的 BCK 时钟。 I2S 接口有专用的 DMA 控制器。任意引脚都可以配置为 I2S。





