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

芯片启动模式控制

复位释放后,GPIO0GPIO46共同决定启动模式。

启动模式 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

Flash / PSRAM

为了优化模组性能,最好将 Flash 和 PSRAM 的 SPI 速率设置为一致,这样分时访问这两个存储设备时,就不必切换时钟频率了。鉴于 PSRAM 的 SPI 速率最高可设置为 80MHz,因此将 Flash 的 SPI 速率也设置为 80MHz,以确保最佳性能。

管脚序号 管脚名称 单线SPI 双线SPI 四线SPI 八线SPI
Flash PSRAM Flash PSRAM Flash PSRAM Flash PSRAM
33SPICLKCLKCLKCLKCLKCLKCLKCLKCLK
32SPICS0 CS# CS# CS# CS#
28SPICS1 CE# CE# CE# CE#
35SPIDDISI/SIO0DISI/SIO0DISI/SIO0DQ0DQ0
34SPIQDOSO/SIO1DOSO/SIO1DOSO/SIO1DQ1DQ1
31SPIWPWP# SIO2WP# SIO2WP# SIO2DQ2DQ2
30SPIHDHOLD# SIO3HOLD#SIO3 HOLD#SIO3DQ3DQ3
38GPIO33 DQ4 DQ4
39GPIO34 DQ5 DQ5
40GPIO35 DQ6 DQ6
41GPIO36 DQ7 DQ7
42GPIO37 DQS/DM DQS/DM
  • CS0 用于封装内 flash
  • CS1 用于封装内 PSRAM

!!!注意 !!!
红色高亮引脚 用于与封装内 Flash / PSRAM 通讯,不建议作其他用途。
黄色高亮引脚 工作在八线 SPI 模式下不建议使用,其余情况无限制。

SPI × 4

ESP32-S3 具有以下 SPI 接口:

  • SPI0/1,供 ESP32-S3 和加密 DMA (EDMA) 访问封装内或封装外 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
  • 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。


参考资料

ESP32-S3 引脚参考大全