ESP32-IO_MUX 和 GPIO 交换矩阵

时间:2024-05-21 18:14:21

名词扫盲

IO_MUX:即为IO的数据选择器,在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,作用主要是用于信号的切换
GPIO matrix:即为 GPIO 交换矩阵,是外设输入和输出信号和 pad 之间的全交换矩阵。

概述

ESP32 芯片有 34 个物理 GPIO pad。每个 pad 都可用作一个通用 IO,或连接一个内部的外设信号。IO_MUX、RTC IO_MUX 和 GPIO 交换矩阵用于将信号从外设传输至 GPIO pad。这些模块共同组成了芯片的 IO 控制。

注意:这 34 个物理 GPIO pad 的***为:0-19, 21-23, 25-27, 32-39。其中 GPIO 34-39 仅用作输入管脚,其他的既可以作为输入又可以作为输出管脚。

本章描述了数字 pad(控制信号:FUN_SEL、IE、OE、WPU、WDU 等)和 162 个外设输入以及 176 个外设输出信号(控制信号:SIG_IN_SEL、SIG_OUT_SEL、IE、OE 等)和快速外设输入/输出信号(控制信号:IE、OE等)以及 RTC IO_MUX 之间的信号选择和连接关系。
ESP32-IO_MUX 和 GPIO 交换矩阵

  1. IO_MUX 中每个 GPIO pad 有一组寄存器。每个 pad 可以配置成 GPIO 功能(连接 GPIO 交换矩阵)或者直连功能(旁路 GPIO 交换矩阵,快速信号如以太网、SDIO、SPI、JTAG、UART 等会旁路 GPIO 交换矩阵以实现更好的高频数字特性。所以高速信号会直接通过 IO_MUX 输入和输出。)

  2. GPIO 交换矩阵是外设输入和输出信号和 pad 之间的全交换矩阵。
    • 芯片输入方向:162 个外设输入信号都可以选择任意一个 GPIO pad 的输入信号。
    • 芯片输出方向:每个 GPIO pad 的输出信号可来自 176 个外设输出信号中的任意一个。

  3. RTC IO_MUX 用于控制 GPIO pad 的低功耗和模拟功能。只有部分 GPIO pad 具有这些功能。