模数转换器 (ADC) 单次转换模式驱动 - ESP32-S3 - — ESP-IDF 编程指南 v5.5 文档
模数转换器 (ADC) 连续转换模式驱动 - ESP32-S3 - — ESP-IDF 编程指南 v5.5 文档
手册 39.3 章节,P 1374
SAR ADC
ADC 电气参数
查看数据手册 esp32-s3_datasheet_cn.pdf
ADC 特性:

可以看出,ESP32 的 ADC 的采样速度并不高,只有 100k SPS,即每秒采样 10,000次,根据奈奎斯特定理,最大可采样频率为 50 kHz。
ADC 架构
ESP32-S3 内置了两个 12 位的 SAR ADC(逐次逼近型ADC),可测量最多来自 20 个管脚的模拟信号。

有四个控制器:
1 个数字控制器(Digital ADC1 Controller):支持高性能多通道扫描和 DMA 连续转换。
支持多通道扫描模式,并可自定义扫描通道顺序
支持单 SAR ADC 采样模式???什么意思,单通道?
提供两个滤波器,滤波系数可配
支持阈值监控,采样值大于设置的高阈值或小于设置的低阈值将产生中断
支持 DMA
2 个RTC 控制器(RTC ADC1 Controller、RTC ADC2 Controller):支持在低功耗模式下工作和单次转换。
支持单次转换
可在低功耗模式下工作
可由 ULP 协处理器配置
1 个内部 PWDET 控制器(Power/Peak Detect Controller):仅供 RF 内部使用,用来检测功率。
特性:
四个控制器均配有独立的 ADC Reader 模块。
通过软件选择可设置 SAR ADC1 的控制权交给 DIG ADC1 控制器还是 RTC ADC1 控制器。
RTC ADC2 控制器和 PWDET 控制器可通过指定的仲裁的方式,轮流获取 SAR ADC2 的控制权。
在芯片设计上 ADC2 是有数字控制器的,但实际上无法使用,使用 RTC 控制器来控制。参考:[ADC-183] SAR ADC2 的数字控制器 (DMA) 无法工作 - ESP32-S3
RTC ADC 控制器
RTC 电源域中的 SAR ADC 控制器,可在低频状态下提供最小功耗 ADC 测量。

大多数情况下,需要和 ULP 协处理器一起配合工作:
RTC ADC 控制器不支持连续扫描和 DMA,但协处理器可通过软件的方式实现。
可在 Deep-sleep 模式下对通道进行周期性检测。在 Deep-sleep 模式下,ADC 采样只能通过 ULP 协处理器触发(通过配置 RTC 外设的寄存器来触发 ADC)。
DIG ADC 控制器
与 RTC ADC 控制器相比,DIG ADC 控制器使用了快速时钟,采样速率大幅提升。
支持专用定时器触发的多通道扫描,。
扫描完成将产生中断。?1个还是素有???
ADC 对应引脚

ADC 转换和衰减

Vref 为 SAR ADC 内部参考电压,出厂设定为 1100 mV。
如需转换大于 Vref 的电压,信号输入 SAR ADC 前可进行衰减。衰减可配置为 0 dB、2.5 dB、6 dB 和 12 dB
单次转换
读取原生数据:
esp_err_t adc_oneshot_read(adc_oneshot_unit_handle_t handle, adc_channel_t chan, int *out_raw)原始值转换为电压值:
esp_err_t adc_cali_raw_to_voltage(adc_cali_handle_t handle, int raw, int *voltage)线程安全:
adc_oneshot_new_unit()
adc_oneshot_config_channel()
adc_oneshot_read()
非线程安全:
adc_oneshot_del_unit()
Kconfig配置:
