ESP32 是一款集成了 2.4 GHz Wi-Fi 和蓝牙双模的单芯片方案,具有高性能的双核处理器、超低功耗协处理器和多种外设。ESP32 IO接口 是指 ESP32 芯片上的输入输出接口,用于与外部设备或传感器进行通信或控制。ESP32 IO接口 包括以下几种类型:
- GPIO(General Purpose Input Output,通用输入输出):ESP32 芯片有 34 个 GPIO 引脚,其中 6 个用于内部闪存连接,不建议用于其他用途。GPIO 引脚可以配置为数字输入或输出,支持中断、PWM、I2S、DAC 等功能。
- ADC(Analog to Digital Converter,模拟数字转换器):ESP32 芯片有 2 个 12 位的 SAR(逐次逼近)ADC,最多可以读取 18 个不同的模拟通道输入。ADC 可以测量从 0 V 到 Vref 的模拟电压,其中 Vref 是内部参考电压,不同芯片之间有所不同,中值为 1.1 V。为了测量大于 Vref 的电压,可以在输入 ADC 之前对输入电压进行衰减。
- DAC(Digital to Analog Converter,数字模拟转换器):ESP32 芯片有两个 8 位的 DAC 通道,分别连接到 GPIO25(通道 1)和 GPIO26(通道 2)。每个 DAC 通道可以将 0 到 255 的数字值转换为 0 到 Vref 的模拟电压,其中 Vref 是 ESP32 的供电电压。
- SPI(Serial Peripheral Interface,串行外设接口):ESP32 芯片有 4 个 SPI 外设,其中 SPI0 和 SPI1 用于内部与闪存通信,不建议用于其他用途。SPI2 和 SPI3 是通用 SPI 控制器,有时分别称为 HSPI 和 VSPI。它们可以配置为主机模式或从机模式,支持 2 线全双工和 1/2/4/8 线半双工通信。
- I2C(Inter-Integrated Circuit,集成电路总线):ESP32 芯片有 2 个 I2C 外设,可以配置为主机模式或从机模式,支持标准模式(100 Kbps)、快速模式(400 Kbps)和高速模式(3.4 Mbps)。
- UART(Universal Asynchronous Receiver Transmitter,通用异步收发器):ESP32 芯片有 3 个 UART 外设,支持全双工和半双工通信,支持硬件流控、红外编码和解码等功能。
- CAN(Controller Area Network,控制器局域网):ESP32 芯片有 1 个 CAN 外设,支持标准帧格式和扩展帧格式,支持数据帧和远程帧,支持错误检测和错误处理。
- LEDC(LED PWM Controller,LED 脉冲宽度调制控制器):ESP32 芯片有 1 个 LEDC 外设,支持 16 个独立的通道,每个通道可以配置为 PWM 输出或 Sigma-Delta 调制输出,用于控制 LED 的亮度或驱动电机。
- PCNT(Pulse Counter,脉冲计数器):ESP32 芯片有 1 个 PCNT 外设,支持 8 个独立的单元,每个单元可以检测和计数输入信号的上升沿或下降沿,用于测量旋转编码器或其他脉冲信号的频率或位置。
- RMT(Remote Control,遥控):ESP32 芯片有 1 个 RMT 外设,支持 8 个独立的通道,每个通道可以配置为发送或接收模式,用于生成或解析不同的遥控信号,如 NEC、RC5、RC6 等。
- TOUCH(Touch Sensor,触摸传感器):ESP32 芯片有 1 个 TOUCH 外设,支持 10 个触摸通道,每个通道可以连接到一个 GPIO 引脚,用于检测人体对金属电极的触摸。
- SDIO(Secure Digital Input Output,安全数字输入输出):ESP32 芯片有 1 个 SDIO 外设,支持 SD 卡和 SDIO 设备的访问,支持 1/4 位数据总线和高速模式。