ESP32 GPIO专项

2 ESP32系列GPIO硬件架构

2.1 GPIO硬件架构及其分配原则

ESP32系列的GPIO架构如下图所示(下图为ESP32):
chrome_AWDTtlXSXc.png
chrome_JKccr4VVc3.png
可以得到:

  1. ESP32系列的GPIO系统由如下两个模块组成:
    1. IO_MUX性能更高、延迟更低、资源占用更少,但是可选的IO有限
    2. GPIO matrix性能略低有额外的延迟,但是允许信号路由到任意GPIO。部分高速外设的速率会因此因此受限(例如80Mhz SPI),且部分功能必须使用 IO_MUX (例如I2S、以太网)。
  2. 从CPU来的外设信号到物理引脚有如下的两种方式:
    1. 通过 IO_MUX 进行直接连接到对应的若干引脚
    2. 先通过 IO_MUX 再使用 GPIO matrix 路由到任意IO
  3. 在分配GPIO时,若电气布线允许则应当按照如下的规则进行分配(优先级从高到低):
    1. 标注并避免使用Strapping引脚
    2. 优先分配 GPIO matrix 无法满足需求的引脚
    3. 其次优先使用可以由 IO_MUX 直接连接的引脚
    4. 低速IO可以根据电气布线情况进行优化

2.2 Strapping引脚

2.3 ESP32 Series IO_MUX功能表

2.3.1 ESP32 IO_MUX功能表

2.3.2 ESP32-S3 IO_MUX功能表