注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题

dcexpert的个人空间 http://home.eeworld.com.cn/space-uid-573537.html [收藏] [复制] [分享] [RSS]

日志

【ESP32学习】ADC的用法

已有 79 次阅读2018-8-9 21:05 |个人分类:MicroPython

在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原创,如需转载或用于商业用途需征得作者同意并注明出处


本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2018-10-22 20:05 , Processed in 0.014807 second(s), 10 queries , Gzip On, MemCache On.

Powered by EEWORLD电子工程世界

© 2018 http://bbs.eeworld.com.cn/

返回顶部