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
用于封装内flash
CS1
用于封装内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。