外设说明

[English]

在开展 ESP 系列芯片外设开发前,明确各外设的核心定位、引脚配置规则及引脚功能灵活性(复用/重映射支持),是确保硬件连接正确、功能稳定实现的关键前提。

本文档将针对 ESP32-P4、ESP32-C5、ESP32-C6、ESP32-C2、ESP32-H2、ESP32-S3、ESP32-S2、ESP32-C3、ESP32 型号芯片中已搭载的外设,逐一梳理其基础技术信息,为后续外设的实际驱动开发提供底层技术参考。在这些芯片中,大多数外设在硬件层面都支持引脚重映射功能,仅少数外设由于硬件设计架构或功能逻辑特点存在特殊限制。相关限制会在每个外设的具体说明中单独标注。

文档中提及的相关信息均参考自各芯片的技术规格书,若需进一步了解,可通过 ESP 芯片&模组选型工具 获取芯片技术规格书。

LEDC

LEDC 是脉冲宽度调制(PWM)专用外设,支持多通道 PWM 信号输出,用于需模拟模拟信号的场景,如调节 LED 亮度、控制电机转速等,部分型号,如 ESP32-C5,支持高频输出(最高可达 40 MHz)及高精度占空比配置(最高 20 位分辨率),具体频率和精度可根据应用需求灵活取舍,适配更复杂的模拟控制需求。

外设特性差异

受芯片设计影响,外设在不同芯片下的特性差异如下:

  • 独立 PWM 生成器:即通道数量,通常为 6~8 个,可输出相应数量的独立 PWM 信号。

  • 独立定时器:常为 4 个,用于配置频率和分辨率,可被多个 PWM 通道复用。

  • 占空比精度:最大支持 14~20 位,具体精度取决于芯片型号和使用的分频配置。

备注

PWM 频率与精度存在折中,高频输出可达到数百 kHz 以上,但分辨率会降低;低频输出可实现高精度占空比。

信号线与 IO 口

LEDC 每个通道占用一个 GPIO,用于输出 PWM 信号。

LEDC

信号线

功能说明

PWM 输出

输出 PWM 信号,驱动相关设备

管脚分配

LEDC 外设的引脚仅支持通过重映射分配到可用 GPIO。

I2C

I2C 是一种双线串行通信专用外设,支持主从模式数据传输,用于连接各类传感器、存储器、显示器等外部设备,实现数据采集与控制。

外设特性差异

受芯片设计影响,外设在不同芯片下的特性差异如下:

  • 控制器数量:最多两个主系统 I2C,部分芯片可能还搭载一个低功耗(LP)I2C 控制器。

  • 总线时钟频率:支持标准模式 (100 Kbit/s) 和快速模式 (400 Kbit/s),部分芯片最高可达 800 Kbit/s,但受制于 SCL 和 SDA 上拉强度。

信号线与 IO 口

I2C 共两条信号线,每条信号线占用一个 GPIO。

I2C

信号线

功能说明

SDA

数据传输,用于主从设备见的双向通信

SCL

提供通信时钟,由主设备控制

管脚分配

I2C 外设的引脚仅支持通过重映射分配到可用 GPIO。

SPI

SPI 是一种高速全双工串行通信专用外设,支持主从模式数据传输,用于连接闪存、显示屏、传感器等外部设备,实现高速数据交换。

外设特性差异

受芯片设计影响,外设在不同芯片下的特性差异如下:

  • 控制器模式:支持存储器模式、通用模式及低功耗模式,其中存储器模式仅供系统使用。

  • 控制器数量:最多四个,其中包含两个存储器 SPI(SPI0/1),部分芯片可能还搭载一个低功耗(LP)SPI 控制器。

  • 总线时钟频率:通用主机模式下支持 48MHz 至 80MHz 频率,通用从机模式下支持 32MHz 至 60MHz 频率,具体取决于芯片型号及信号特性。

信号线与 IO 口

SPI 共有最多 10 条信号线,每条信号线占用一个 GPIO。不同模式下占用的 GPIO 引脚数量如下:1 线模式占用 2 个 GPIO 引脚,2 线模式占用 3 个 GPIO 引脚,4 线模式占用 4 个 GPIO 引脚,8 线模式占用 10 个 GPIO 引脚。

备注

实际可用模式取决于具体 SPI 控制器,部分 SPI 外设不支持 8 线模式,请参考芯片技术规格书确认支持的模式。

SPI

信号线

功能说明

适用模式

MOSI

主设备发送数据,从设备接收

2 线模式、4 线模式;在 1 线模式中与 MISO 复用

MISO

从设备发送数据,主设备接收

2 线模式、4 线模式;在 1 线模式中与 MISO 复用

SCLK

提供通信时钟,由主设备控制

1、2、4、8 线模式

CS

片选信号,用于选择从设备

4、8 线模式

IO0 至 IO7

8 条并行数据线,每条线传输 1 bit 数据

8 线模式

管脚分配

SPI 外设的引脚复用和重映射情况取决于 SPI 模式。存储器 SPI (SPI0/1),主要用于连接 Flash 和 PSRAM,默认绑定特定 IO 口;通用 SPI (SPI2 及以上)在大部分芯片上部分信号线既支持复用又可重映射,部分信号线仅支持重映射。

UART

UART(通用异步收发传输器)是一种串行通信外设,支持全双工数据传输,用于连接传感器、调试终端、外部模块等,实现数据收发和控制信号通信。UART 可以在主机与外设之间通过标准串行协议进行异步通信,支持配置波特率、数据位、停止位和校验位。

外设特性差异

受芯片设计影响,外设在不同芯片下的特性差异如下:

  • 控制器数量:多数芯片提供 2 到 6 个 UART 控制器,部分芯片可能还支持低功耗 UART(LP UART)。

  • 波特率范围:多数芯片最高波特率可达 5 MBaud,仅 ESP32-C2 芯片,最高波特率为 2.5 MBaud。实际应用中,波特率可能受 PCB 布线长度、电平匹配、干扰以及外设特性限制,可能需要适当降低波特率以保证通信稳定性。

信号线与 IO 口

UART 根据芯片硬件设计,数据线数量可能为 2 条(TX/RX)或 4 条(TX/RX + RTS/CTS),分别占用 2 个或 4 个 GPIO。

UART

信号线

功能说明

适用模式

TX

发送数据,由 UART 发出

所有 UART 控制器

RX

接收数据,由 UART 接收

所有 UART 控制器

RTS

请求发送,用于硬件流控

支持硬件流控的 UART

CTS

清除发送,用于硬件流控

支持硬件流控的 UART

管脚分配

对于 UART 外设,所有信号线均支持重映射,其中部分信号线还可通过 IO MUX 进行复用。

ADC

ADC(模数转换器)是将模拟信号转换为数字信号的专用外设,用于读取传感器输出、电压信号或其他模拟信号,实现数字处理与控制。ESP 系列芯片通常内置 12 位分辨率的 ADC,可通过配置采样周期、增益和衰减等参数优化测量范围和精度。

外设特性差异

受芯片设计影响,外设在不同芯片下的特性差异如下:

  • 控制器数量:可为 1 个或 2 个。

  • 通道数量:不同芯片差异较大,ESP32-S3 支持采集 20 个 GPIO 的模拟输入,ESP32-C2 仅支持采集 5 个。

信号线与 IO 口

ADC 每个通道占用一个 GPIO,用于输入模拟信号。

ADC

信号线

功能说明

ADCx

对应通道的模拟输入信号,x 表示 ADC 的通道序号

管脚分配

对于 ADC,信号引脚只能通过 IO MUX 进行复用,不支持重映射。

I2S

I2S(Inter-IC Sound)是专用音频串行接口,用于在芯片与音频编解码器、麦克风或音响模块之间传输数字音频数据。I2S 支持标准音频格式(如 PCM),可实现高保真音频采集与输出。

外设特性差异

受芯片设计影响,外设在不同芯片下的特性差异如下:

  • 控制器数量:多数芯片只配置了 1 个 I2S 外设;ESP32-S2/S3 配置了 2 个;ESP32-P4 配置了 3 个;而 ESP32-C2 芯片不搭载 I2S 外设。

  • 时钟频率:BCK 时钟可配置,频率范围一般为 10 kHz~40 MHz;部分芯片支持 APLL 时钟源(如 ESP32-P4),最高可达 240 MHz。

信号线与 IO 口

I2S 外设共 4 条信号线,每条信号线占用一个 GPIO 口。

I2S

信号线

功能说明

WS

字同步信号,用于标识音频帧

BCK

位时钟信号,由主设备提供

DATA

音频数据传输

MCLK

主时钟信号,用于外部音频设备同步

管脚分配

I2S 外设的引脚仅支持通过重映射分配到可用 GPIO。

LCD_CAM

LCD_CAM 是 ESP 系列芯片中提供的一个复合型外设,通过同一个硬件模块提供 LCD 接口和 CAM 接口两种功能,共享硬件资源。

  • LCD 接口功能:用于驱动并行 RGB LCD 显示屏,实现屏幕图像的刷新与显示。

  • CAM 接口功能:用于连接摄像头,采集图像数据并传输到芯片内部存储器,便于后续处理。

外设特性差异

受芯片设计影响,外设在不同芯片下的特性差异如下:

  • 控制器数量:ESP32-P4 和 ESP32-S3 芯片搭载了 LCD_CAM 外设,ESP32-S2 仅搭载 LCD 接口。

信号线与 IO 口

LCD_CAM 外设的信号线数量取决于选择的数据位宽模式,通常为 14 至 30 条。每条信号线占用一个 GPIO 口。

LCD_CAM

信号线

功能说明

XCLK

外部时钟输入

SDA (SCCB)

串行控制数据

SCL (SCCB)

串行控制时钟

IO0 至 IO7

摄像头数据输出,可以选择数据位宽模式,此处假设为 8 位并行数据

VSYNC

帧同步信号

HREF

行有效信号

PCLK

像素时钟,由摄像头输出

管脚分配

LCD_CAM 外设的引脚仅支持通过重映射分配到可用 GPIO。

RMT

RMT 是 ESP 系列芯片提供的远程控制专用外设,用于产生精确时间间隔的信号或捕获输入脉冲,广泛应用于红外遥控、LED 灯带控制、编码信号解析等场景。

外设特性差异

受芯片设计影响,外设在不同芯片下的特性差异如下:

  • 外设支持:多数 ESP 系列芯片提供 4 个 RMT 通道,ESP32-P4 和 ESP32-S3 提供 8 个通道,ESP32-C2 不搭载 RMT 外设。

  • 发射/接收模式:RMT 支持多种发送与接收模式,其中 ESP32-P4 和 ESP32-S3 的部分通道还可通过 GDMA 进行高速数据访问。

信号线与 IO 口

RMT 每个通道占用一个 GPIO,用于发送或接收脉冲信号。

RMT

信号线

功能说明

CH0 至 CHx

RMT 通道信号,根据需求开启对应数量的通道

管脚分配

RMT 外设的引脚仅支持通过重映射分配到可用 GPIO。

USB-OTG

USB-OTG(On-The-Go)是 ESP 系列芯片提供的 通用串行总线外设,支持 USB 设备(Device)和主机(Host)模式,可广泛应用于 USB 外设连接、数据传输、外设充电等场景。

外设特性差异

受芯片设计影响,外设在不同芯片下的特性差异如下:

  • 外设支持:仅 ESP32-P4、ESP32-S2 和 ESP32-S3 搭载 USB-OTG 外设。

  • 速度模式:多数芯片仅支持全速和低速模式,ESP32-P4 还额外支持高速 OTG。

  • 通道数量:ESP32-P4 在设备模式下提供 15 个附加端点,主机模式下提供 16 个主机通道;ESP32-S3 在设备模式下提供 6 个附加端点,主机模式下提供 8 个主机通道。

信号线与 IO 口

USB-OTG 外设使用 5 条信号线,每条信号线占用一个 GPIO。物理连接通常通过板载 Micro-USB 或 USB-C 接口实现,与外部设备进行数据传输和电源检测。

USB-OTG

信号线

功能说明

USB2 OTG PHY DP

USB 数据正极(差分信号)

USB2 OTG PHY DM

USB 数据负极(差分信号)

ID

OTG 模式识别,判断主机/设备角色

VBUS

电源检测或提供,视模式而定

GND

地线

管脚分配

USB-OTG 外设的信号差分引脚(DP 和 DM)通过 IO MUX 和其他功能复用,或使用专用引脚,不支持重映射;其余控制信号仅支持重映射。在 ESP32-S3 芯片使用外部 USB PHY 时,所有信号线均通过 IO MUX 复用,不支持重映射。

TWAI

TWAI 是 ESP 系列芯片提供的 CAN 总线兼容通信接口,支持车载和工业总线通信,用于与 CAN 网络上的传感器、控制器及执行器进行数据交换。

外设特性差异

受芯片设计影响,外设在不同芯片下的特性差异如下:

  • 外设数量:多数芯片通常提供 1 个 TWAI 控制器;ESP32-P4 最多可搭载 3 个 TWAI 控制器;少数芯片,例如 ESP32-C2 不搭载 TWAI 外设。

信号线与 IO 口

TWAI 外设使用 2 条信号线,每条信号线占用一个 GPIO。物理连接通常通过板载 CAN 接口(2 针或 DB9 转接板) 与外部 CAN 网络连接,实现总线通信。

TWAI

信号线

功能说明

TWAI_H(CAN_H)

CAN 总线高电平信号线,用于差分传输

TWAI_L(CAN_L)

CAN 总线低电平信号线,与 TWAI_H 形成差分信号

管脚分配

TWAI 外设的引脚仅支持通过重映射分配到可用 GPIO。

PCNT

PCNT 是 ESP 系列芯片提供的 脉冲计数器,用于对外部信号的脉冲数量进行计数,可用于测量旋转编码器脉冲、按键计数或频率统计等场景。

外设特性差异

受芯片设计影响,外设在不同芯片下的特性差异如下:

  • 外设数量:ESP32-C2 和 ESP32-C3 不搭载 PCNT 外设;其他芯片,例如 ESP32-S3,提供 4 个 PCNT 控制器。

信号线与 IO 口

PCNT 外设使用 2 条信号线,每条信号线占用一个 GPIO。

PCNT

信号线

功能说明

Pulse 输入

用于接收计数脉冲信号

Control 输入

用于控制计数方向或使能计数

管脚分配

PCNT 外设的引脚仅支持通过重映射分配到可用 GPIO。

Touch

Touch 外设是 ESP 系列芯片提供的 电容式触摸传感器接口,可用于检测触摸或接近信号,实现按键替代、滑动手势或电容式按钮应用。

外设特性差异

受芯片设计影响,外设在不同芯片下的特性差异如下:

  • 外设数量:ESP32、ESP32-P4、ESP32-S2 和 ESP32-S3 芯片上提供了 14 个触摸通道。

信号线与 IO 口

Touch 外设每个通道占用一个 GPIO,用于电容式触摸检测。

Touch

信号线

功能说明

CH0 至 CHx

Touch 通道信号,根据需求开启对应数量的通道

管脚分配

Touch 外设的引脚仅支持通过 IO MUX 复用,不支持重映射。

USB/JTAG

USB/JTAG 外设是 ESP 系列芯片提供的 调试与下载接口,用于程序下载、调试和芯片烧录。

外设特性差异

受芯片设计影响,外设在不同芯片下的特性差异如下:

  • 外设数量:ESP32-C2 和 ESP32-S2 不搭载该外设,其余芯片均提供 1 个 USB/JTAG 接口。

信号线与 IO 口

USB/JTAG 外设使用 2 条信号线,每条信号线占用一个 GPIO。物理连接通常通过板载 Micro-USB 或 10 到 20 针 JTAG 调试头 连接外部调试器,实现程序烧录、调试和调试器通信。

USB/JTAG

信号线

功能说明

USB_D+

USB 差分数据正

USB_D-

USB 差分数据负

管脚分配

USB/JTAG 外设的引脚仅支持通过 IO MUX 复用,不支持重映射。