0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ESP32-S3 ADC架构外设的深入分析

云深之无迹 来源:云深之无迹 2023-09-14 09:34 次阅读

逐次逼近寄存器型(SAR)模拟数字转换器(ADC)是采样速率低于5Msps (每秒百万次采样)的中等至高分辨率应用的常见结构。SAR ADC的分辨率一般为8位至16位,具有低功耗、小尺寸等特点。这些特点使该类型ADC具有很宽的应用范围,例如便携/电池供电仪表、笔输入量化器、工业控制和数据/信号采集等。

顾名思义,SAR ADC实质上是实现一种二进制搜索算法。所以,当内部电路运行在数兆赫兹(MHz)时,由于逐次逼近算法的缘故,ADC采样速率仅是该数值的几分之一。

尽管实现SAR ADC的方式千差万别,但其基本结构非常简单(见图1)。模拟输入电压(VIN)由采样/保持电路保持。为实现二进制搜索算法,N位寄存器首先设置在中间刻度(即:100... .00,MSB设置为1)。

这样,DAC输出(VDAC)被设为VREF/2,VREF是提供给ADC的基准电压。然后,比较判断VIN是小于还是大于VDAC。如果VIN大于VDAC,则比较器输出逻辑高电平或1,N位寄存器的MSB保持为1。相反,如果VIN小于VDAC,则比较器输出逻辑低电平,N位寄存器的MSB清0。

随后,SAR控制逻辑移至下一位,并将该位设置为高电平,进行下一次比较。这个过程一直持续到LSB。上述操作结束后,也就完成了转换,N位转换结果储存在寄存器内。

8e06704e-523d-11ee-a25d-92fbcf53809c.png

图1. 简单的N位SAR ADC架构

图2给出了一个4位转换示例,y轴(和图中的粗线)表示DAC的输出电压。本例中,第一次比较表明VIN< VDAC。所以,位3置为0。然后DAC被置为01002,并执行第二次比较。

由于VIN> VDAC,位2保持为1。DAC置为01102,执行第三次比较。根据比较结果,位1置0,DAC又设置为01012,执行最后一次比较。最后,由于VIN> VDAC,位0确定为1

8e2092ee-523d-11ee-a25d-92fbcf53809c.png

图2. SAR工作原理(以4位ADC为例)

注意,对于4位ADC需要四个比较周期。通常,N位SAR ADC需要N个比较周期,在前一位转换完成之前不得进入下一次转换。由此可以看出,该类ADC能够有效降低功耗和空间,当然,也正是由于这个原因,分辨率在14位至16位,速率高于几Msps (每秒百万次采样)的逐次逼近ADC极其少见。一些基于SAR结构的微型ADC已经推向市场。

SAR ADC的另一个显著的特点是:功耗随采样速率而改变。这一点与闪速ADC或流水线ADC不同,后者在不同的采样速率下具有固定的功耗。这种可变功耗特性对于低功耗应用或者不需要连续采集数据的应用非常有利(例如,用于PDA 数字转换器)。

SAR的深入分析

SAR ADC的两个重要部件是比较器和DAC,稍后我们可以看到,图1中采样/保持电路可以嵌入到DAC内,不作为一个独立的电路。

SAR ADC的速度受限于:

DAC的建立时间,在这段时间内必须稳定在整个转换器的分辨率以内(如:½ LSB)

比较器,必须在规定的时间内能够分辨VIN与VDAC的微小差异

逻辑开销

DAC

DAC的最大建立时间通常取决于其MSB的建立时间,原因很简单,MSB的变化代表了DAC输出的最大偏移。另外,ADC的线性也受DAC线性指标的限制。因此,由于元件固有匹配度的限制,分辨率高于12位的SAR ADC常常需要调理或校准,以改善其线性指标。虽然这在某种程度上取决于处理工艺和设计,但在实际的DAC设计中,元件的匹配度将线性指标限制在12位左右。

许多SAR ADC采用具有固有采样/保持功能的电容式DAC。电容式DAC根据电荷再分配的原理产生模拟输出电压,由于这种类型的DAC在SAR ADC中很常用,所以,我们最好讨论一下它们的工作原理。

电容式DAC包括一个由N个按照二进制加权排列的电容和一个“空LSB”电容组成的阵列。图3是一个16位电容式DAC与比较器相连接的范例。采样阶段,阵列的公共端(所有电容连接的公共点,见图3)接地,所有自由端连接到输入信号(模拟输入或VIN)。采样后,公共端与地断开,自由端与VIN断开,在电容阵列上有效地获得了与输入电压成比例的电荷量。然后,将所有电容的自由端接地,驱动公共端至一个负压-VIN。

8e371730-523d-11ee-a25d-92fbcf53809c.png

图3. 16位电容式DAC示例

作为二进制搜索算法的第一步,MSB电容的底端与地断开并连接到VREF,驱动公共端电压向正端移动½VREF。

因此,VCOMMON= -VIN+ ½ × VREF

如果VCOMMON< 0 (即VIN > ½ × VREF),比较器输出为逻辑1。如果VIN< ½ × VREF,比较器输出为逻辑0。

如果比较器输出为逻辑1,MSB电容的底端保持连接至VREF。否则,MSB电容的底端连接至地。

接下来,下一个较小电容的底端连接至VREF,将新的VCOMMON电压与地电位进行比较。

继续上述过程,直至所有位的值均确定下来。

简言之,VCOMMON= -VIN+ BN-1× VREF/2 + BN-2× VREF/4 + BN-1× VREF/8 + ... + B0 × VREF/2N-1(B_为比较器输出/ADC输出位)。

DAC校准

对于一个理想的DAC来讲,每个与数据位相对应的电容应该精确到下一个较小电容的两倍。在高分辨率ADC (如16位)中,这会导致过宽的数值范围,以致无法用经济、可行的尺寸实现。16位的SAR ADC (如MAX195)实际由两列电容组成,利用电容耦合减小LSB阵列的等效容值。MSB阵列中的电容经过微调以降低误差。LSB电容的微小变化都将对16位转换结果产生明显的误差。

不幸的是,仅仅依靠微调并不能达到16位的精度,或者补偿由于温度、电源电压或其它参数的变化所造成的性能指标的改变。考虑到上述原因,MAX195内部为每个MSB电容配置了一个校准DAC,这些DAC通过电容耦合到主DAC输出,根据它们的数字输入调节主DAC的输出。

校准时,首先要确定用于补偿每个MSB电容误差的修正代码,并存储该代码。此后,当主DAC对应的数据位为高电平时就把存储的代码提供给适当的校准DAC,补偿相关电容的误差。一般由用户发起校准过程,也可以在上电时进行自动校准。为降低噪声效应,每个校准过程都执行许多次(MAX195大约持续14,000个时钟周期),结果取平均值。当供电电压稳定后最好进行一次校准。

高分辨率ADC应该在电源电压、温度、基准电压或时钟等任何一个参数发生显著变化后进行再校准,因为这些参数对直流偏移有影响。如果只考虑线性指标,可以容许这些参数有较大改变。因为校准数据是以数字方式存储的,无需频繁转换即可保持足够的精度。

比较器

比较器需要具有足够的速度和精度,尽管比较器的失调电压不影响整体的线性度,它将给系统传输特性曲线带来一个偏差,为减小比较器的失调电压引入了失调消除技术。然而,还必须考虑噪声,比较器的等效输入噪声通常要设计在1 LSB以内。比较器必须能够分辨出整个系统精度以内的电压,也就是说比较器需要保证与系统相当的精度。

SAR ADC与其它ADC结构的比较

与流水线ADC相比

流水线ADC采用一种并行结构,并行结构中的每一级同时进行一位或几位的逐次采样。这种固有的并行结构提高了数据的吞吐率,但要以功耗和延迟为代价。所谓延迟,在此情况下定义为ADC采样到模拟输入的时间与输出端得到量化数据的时间差。例如,一个5级流水线ADC至少存在5个时钟周期的延迟,而SAR只有1个时钟周期的延迟。

需要注意的是,延迟的定义只是相对于ADC的吞吐率而言,并非指SAR的内部时钟,该时钟是吞吐率的许多倍。流水线ADC需要频繁地进行数字误差校准,以降低对流水线上每一级闪速ADC (即比较器)的精度要求。而SAR ADC的比较器精度只需与整体系统的精度相当即可。流水线ADC一般比同等级别的SAR需要更多的硅片面积。与SAR一样,精度高于12位的流水线ADC通常需要一些某种形式的微调或校准。

与闪速ADC相比

闪速ADC由大量的比较器构成,每个比较器包括一个宽带、低增益预放大器和锁存器。预放大器必须仅用于提供增益,不需要高线性度和高精度,这意味着只有比较器的门限值才需具有较高的精度。所以,闪速ADC是目前转换速率最快的一种架构。

与Σ-Δ转换器相比

传统的过采样/Σ-Δ转换器被普遍用于带宽限制在大约22kHz的数字音频应用。近来,一些宽带Σ-Δ转换器能够达到1MHz至2MHz的带宽,分辨率在12位至16位。这通常由高阶Σ-Δ调制器(例如,4阶或更高)配合一个多位ADC和多位反馈DAC构成。Σ-Δ转换器具有一个优于SAR ADC的先天优势:即不需要特别的微调或校准,即使分辨率达到16位至18位。

由于该类型ADC的采样速率要比有效带宽高得多,因此也不需要在模拟输入端增加快速滚降的抗混叠滤波器。由后端数字滤波器进行处理。Σ-Δ转换器的过采样特性还可用来“平滑”模拟输入中的任何系统噪声。

Σ-Δ转换器要以速率换取分辨率。由于产生一个最终采样需要采样很多次(至少是16倍,一般会更多),这就要求Σ-Δ调制器的内部模拟电路的工作速率要比最终的数据速率快很多。数字抽取滤波器的设计也是一个挑战,并要消耗相当大的硅片面积。在不远的将来,速度最高的高分辨率Σ-Δ转换器的带宽将不大可能高出几兆赫兹很多。

总结

综上所述,SAR ADC的主要优点是低功耗、高分辨率、高精度、以及小尺寸。由于这些优势,SAR ADC常常与其它更大的功能集成在一起。SAR结构的主要局限是采样速率较低,并且其中的各个单元(如DAC和比较器),需要达到与整体系统相当的精度。

我们的ESP32有这么多的通道可以干这个事情。

8e49ec0c-523d-11ee-a25d-92fbcf53809c.png

我这里主要是写的S3

8e67224a-523d-11ee-a25d-92fbcf53809c.png

另外,ADC是操作GPIO,所以相关的一些电气参数要看着点

8e876b9a-523d-11ee-a25d-92fbcf53809c.png

这个是ADC的相关参数

8ea518de-523d-11ee-a25d-92fbcf53809c.png

完整的引脚映射

8ed3e20e-523d-11ee-a25d-92fbcf53809c.jpg






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模拟数字转换器

    关注

    0

    文章

    73

    浏览量

    12390
  • 逐次逼近寄存器

    关注

    0

    文章

    7

    浏览量

    8156
  • SAR ADC
    +关注

    关注

    2

    文章

    15

    浏览量

    7572
  • ESP32
    +关注

    关注

    13

    文章

    897

    浏览量

    15861

原文标题:ESP32-S3 ADC外设

文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ESP32ESP32-S3是否有类似ARM的位带操作?

    目前有个项目不可避免的要在中断函数内处理大量位操作。为了减少开销,我们想知道ESP32ESP32-S3,是否有类似ARM的位带区和位带别名区,或者类似的区域能够通过地址直接读取数据的某一位?目前使用的版本是release/v4.4 在
    发表于 02-14 08:11

    使用VScode编辑和编译esp32-s3,目标设备选择esp32-s3时报错如何解决?

    使用VS code编辑和编译esp32-s3,目标设备选择esp32-s3时报错,报错信息如附件图 使用esp32-s2时编译和下载运行都没问题。编译esp32-s3时报错:espto
    发表于 02-16 07:37

    ESP32-S3有DAC吗?

    ESP32-S3有DAC吗,有些地方写有DAC,有些地方没写DAC,
    发表于 02-17 08:05

    ESP32-S3 ADC读取问题求解

    我正在尝试测试 ESP32-S3 中的 ADC 功能。下面是我的测试代码。我正在使用 GPIO4。当我尝试在 GPIO4 中运行 0V 时,我读取了一段时间大约为零的值,然后我读取了大约 400 的原始值一段时间,然后又回到零,这种行为会重复。有没有人知道这里发生了什么?
    发表于 02-28 06:01

    ESP32-S3哪些GPIO可以连接到那些PWM输出?

    只需要一份包含 ESP32-S3 外设及其相关 GPIO 表的文档。例如,哪些 GPIO 连接到 PWM 输出。
    发表于 03-01 08:18

    为什么ADC在定制板上对ESP32-S3上的触摸信号不起作用?

    已经查看了硬件设计指南,但找不到任何具体说明它为什么不工作的原因。为什么 ADC 在我的定制板上对 ESP32-S3 上的触摸信号不起作用,而它在开发板上可以工作,这可能是什么原因?
    发表于 03-01 07:38

    ESP32-S3/C3上的RSA外围设备比S2慢50%的原因?

    ) 的 esp_mpi_enable_hardware_hw_op() 函数启用它。我遇到的问题/疑问是为什么与 ESP32-S2 相比,ESP32-S3ESP32-C3 的性能
    发表于 04-12 07:39

    ESP32-S3(ESP32-S2,ESP32)在商用触摸按键面板上使用安全吗?

    ESP32ESP32-S2 和 ESP32-S3 的数据表中提到:[indent]ESP32-S3(ESP32-S2,
    发表于 04-12 07:03

    ESP32-S3 ADC读取问题求解

    我正在尝试测试ESP32-S3 中的 ADC 功能。下面是我的测试代码。我正在使用 GPIO4。当我尝试在 GPIO4 中运行 0V 时,我读到的值有一段时间大约为零,然后我读到的原始值大约为 400 一段时间,然后又回到零,这种行为会重复。有谁知道这里发生了什么吗?
    发表于 04-12 06:34

    为什么ADC在定制板上对ESP32-S3上的触摸信号不起作用?

    ,但找不到任何具体说明它为什么不工作的原因。为什么 ADC 在我的定制板上对 ESP32-S3 上的触摸信号不起作用,而它在开发板上可以工作,这可能是什么原因?
    发表于 04-12 07:06

    ESP32-S3技术参考手册

    ESP32­S3 技术参考手册面向使用 ESP32-S3 系列产品进行底层软件开发的人员,介绍了 ESP32-S3 系列产品中内置的硬件模块,包括概述、功能列表、硬件
    发表于 09-18 08:15

    ESP32-S3技术规格书

    ESP32-S3 是一款低功耗的 MCU 系统级芯片 (SoC),支持 2.4 GHz Wi-Fi 和低功耗蓝牙 (Bluetooth® LE) 无线通信。芯片集成了高性能的 Xtensa® 32 位 LX7 双核处理器、超低功耗协处理器、Wi-Fi 基带、蓝牙基带、RF 模块以及
    发表于 09-18 07:53

    ESP32-S3硬件设计指南

    本文提供基于 ESP32-S3 的硬件设计的指导规范。ESP32-S3 是一款具有超高性能的 Wi-Fi +Bluetooth® 5 (LE) 系统级芯片。这些规范将帮助您提升原理图和 PCB 版图设计的准确性。
    发表于 09-18 08:06

    合宙ESP32-S3开发板特性解读

    穿越万水千山,奔赴与工程师朋友的约定——合宙ESP32-S3超值MCU开发板,来了! 1 合宙ESP32-S3开发板简介 合宙CORE-ESP32S3是基于乐鑫ESP32-S3芯片进行
    的头像 发表于 01-11 18:45 8444次阅读

    新品上市 | 合宙ESP32-S3开发板

    穿越万水千山,奔赴与工程师朋友的约定——合宙ESP32-S3超值MCU开发板,来了!1合宙ESP32-S3开发板简介合宙CORE-ESP32S3是基于乐鑫ESP32-S3芯片进行设计的
    的头像 发表于 01-13 15:53 1763次阅读
    新品上市 | 合宙<b class='flag-5'>ESP32-S3</b>开发板