8447|0

1万

帖子

25

TA的资源

版主

楼主
 

【ESP32学习】ADC的用法 [复制链接]

 
在ESP32中,内置了 2 个 12 位的逐次逼近数字模拟转换器,由 5 个专用转换器控制器管理,可测量来自 18 个管脚的模拟信号。ADC 还可测量 vdd33 等内部信号。部分管脚有 1 个可编程增益放大器,用于测量微弱模拟信号。

主要特性
  • 采用 2 个 SAR ADC,可支持同时采样与转换
  • 采用 5 个专用 ADC 控制器,可支持不同应用场景(比如,高性能、低功耗,或功率检测和峰值检测)
  • 支持 18 个模拟输入管脚
  • 1 个内部电压 vdd33 通道、2 个 pa_pkdet 通道(部分控制器支持)
  • 可配置 12 位、11 位、10 位、9 位多种分辨率
  • 支持 DMA(1 个控制器支持)
  • 支持多通道扫描模式(2 个控制器支持)
  • 支持 Deep-sleep 模式运行(1 个控制器支持)
  • 支持 ULP 协处理器控制(2 个控制器支持)

ESP32的ADC有两种方式:RTC SAR ADC和DIG SAR ADC。RTC SAR ADC是在低频状态下提供最小功耗的 ADC,而DIG SAR ADC性能和吞吐均实现了一定优化,具备以下特点:
  • 高性能。时钟更快,因此采样速率实现了大幅提升。
  • 支持多通道扫描模式。每个 SAR ADC 的测量规则可见样式表。扫描模式可配置为单通道模式、双通道模式或交替模式。
  • 扫描可由软件或 I2S 总线发起。
  • 支持 DMA。扫描完成即发生中断。


目前MicroPython中,只支持DIG SAR ADC1的功能,ADC2暂时不能使用。

ADC的使用和DAC类似,也是需要指定一下引脚。

  1. from machine import ADC, Pin

  2. adc = ADC(Pin(34))
  3. adc.read()
复制代码

ADC默认是12位的,因此返回值是0-4095。我们也可以将它设置为 9/10/11/12等几种方式,如:
  1. adc.width(ADC.WIDTH_10BIT)
复制代码


也可以指定衰减,用于扩大信号范围,支持0/2.5/6/11dB等,如:

  1. adc.atten(ADC.ATTEN_6DB)
复制代码


相比ESP8266和STM32,ESP32的ADC更加灵活和复杂,使用范围也更广。


此内容由EEWORLD论坛网友dcexpert原创,如需转载或用于商业用途需征得作者同意并注明出处


点赞 关注(1)
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表