有一段时间没说过模拟芯片了,今天我们就聊一聊模拟芯片,特别是模数转换芯片ADC。

1. 什么是ADC

从本质上来看,模拟芯片和数字芯片最主要的区别,就是处理信号的不同。顾名思义,模拟芯片处理的是模拟信号,而数字芯片处理的是数字信号。模拟信号是随着时间连续变化的,比如温度、湿度、声音、速度等等。它们最大的特点是,在一定的时间范围内有无数个不同的取值。

相比之下,数字信号就是一堆不连续的数值,比如计算机里用的二进制0101。由于晶体管有开和关两种状态,所以可以很自然的表示0和1 两种数值。晶体管没办法做到类似于10%开、或者31.5%关这样的状态,所以它是一个数字信号。

为了连接模拟和数字这两个相互独立的领域,就需要使用两种芯片作为桥梁,一个是模数转换芯片ADC、另外一个是数模转换芯片DAC。

顾名思义,模数转换芯片ADC就是用来把模拟信号转换成数字信号,而模数转换DAC就是正好反过来,把数字信号转换成模拟信号。不过在实际应用里,ADC的占比更高。有数据显示,在模拟数字相互转换的应用里,有80%是ADC。特别是在数字化社会,几乎所有东西都被数字化了,方便后续的处理、传输和存储。

很多朋友可能觉得,不就是模拟信号转成数字信号嘛,听起来好像没什么难度。实际上,ADC芯片是模拟芯片中难度最高的,甚至可能没有之一。在半导体和集成电路领域的顶级会议ISSCC、也就是国际固态电路会议上,就有相当一部分文章是介绍ADC设计。

2. 如何设计和优化ADC

那么,究竟模数转换ADC是怎么实现的呢?简单来说需要采样(Sampling)、量化(Quantization)、编码(Encoding)这么几个过程。也就是说,我们首先需要对这个信号进行采样,每隔一段时间记录一下信号当时的电压值。采集到的数值会经过量化,转换成相应的数字信号值,最后再通过某种编码表示出来,比如补码、格雷码等等。

ADC有很多个参数指标,其中有两个常见的参数,一个是ADC的采样速率(sampling rate)或者叫数据速率(data rate),另一个是分辨率(resolution)。采样速率很好理解,就是单位时间内能做多少次采样,采样点数越多,就越能还原初始信号的样子。

分辨率被定义为输入信号值的最小变化,这个最小数值变化会改变ADC数字输出值的一个码值。在ADC有同样输入范围的情况下,分辨率越高,一个码值所代表的最小变化就越小。如果我们的ADC有3位,那么就可以把整个电压范围分成2^3=8份。如果电压变化范围是0-10V,那么每份就代表1.25V。也就是说,如果电压的变化小于这个值,那么ADC就没办法捕捉到这个细小的变化。需要注意的重要一点是,ADC的分辨率(resolution)和ADC的精度(accuracy)是两个完全不同的概念。

模数转换器adc的转换步骤包括 如何设计一个高精度模数转换ADC(1)

ADC的具体实现形式有很多种,常见的包括逐次逼近型ADC(SAR),还有一种叫Delta-Sigma ADC。比如常见的逐次逼近型ADC在电路里主要集成了一个电压比较器、一个寄存器、还有一个DAC,以及一些控制电路。它的本质就是用二分查找来确定模拟电压对应的数字信号。也就是一开始先拿输入电压和参考电压的一半比较,如果输入电压更大,那就再和参考电压的四分之三再比较。相反,如果输入电压更小,那就在和参考电压的四分之一做比较。以此类推,直到比较完成。

3. ADC驱动设计

然而,即使是最基础的ADC,它在实际的工程应用中也并不简单,因此配套的资源支持也就显得尤为重要。比如,ADC往往不能独立工作,它们需要配合其他的外部电路才能发挥作用,这里面最重要的外部电路之一就是驱动电路。

前面说过,ADC需要对输入信号进行采样、量化和编码,并且输出N位的数字信号,这些操作通常都在数字时钟的一个周期里完成。这就意味着,在采样的过程里,输入信号应该保持不变。这有点类似于数字信号里时钟的保持时间。

在ADC内部,它的输入端其实包含开关和电容阵列,通常等效成一个开关和一个采样电容。当开关闭合的时候,电容充电;等充好电之后,开关断开,,比较器和DAC相互配合在这个时候完成ADC的采样量化的操作。

这样问题就来了,首先,如果对ADC的性能要求比较高,比如需要它的采样频率很高,那么把ADC内部这个电容进行充电的时间就会很短。打个比方,如果采样频率是每秒100万次采样,那么充电时间、即捕获时间(TACQ)可能只有300纳秒。如果输入端不加任何电路作为驱动,那么基本就无法满足这么高采样频率的需求。所以针对这个问题,我们通常会在ADC前端加上一个运算放大器作为驱动,这样就可以在较短的采样时间之内提供足够的电荷给采样电容。

模数转换器adc的转换步骤包括 如何设计一个高精度模数转换ADC(2)

这样还没完,虽然我们可以直接把运放和ADC直接连接起来,但我们在实际应用里很少这么设计。因为在采样频率很大的时候,直接连运放的话就需要很高带宽的运放。另外从仿真里也可以看到,在开关切换的时候,一开始的转换可能会产生较大的瞬时电流,而且驱动电路需要能够在较短的ADC捕获时间(TACQ)之内对ADC内部的采样电容完成充电。

为了满足这些条件,并且避免出现很大的瞬时电流,我们可以在ADC之前加入一个RC电路。大学电路里我们学过,RC电路是用来做滤波的,但这里它的主要作用就是利用这个额外的电容,实现更加快速的充电。运放可以把这个电容充满,然后等ADC内部开关闭合的时候,通过这个电容给ADC内部的电容充电。当然除了这个电容之外,一部分的电荷也来自前端的运放。这个RC电路也叫做charge bucket filter电路,它可以有效的降低对前端运放带宽的需求,所以我们选择较低带宽、更低成本的普通运放就可以满足设计需要。同时它也消除掉了一开始的瞬时电流,也极大的提升了电路的稳定性。

问题又来了,如何确定这些放大器和RC电路的具体大小和指标呢?这里有两种方法,一个就是通过理论公式进行推导,这个在网上有非常详细的推导过程,根据ADC的指标,比如分辨率、采样速率、参考电压等等,就可以一步一步推导出所需RC电路和运放的参数数据。看了这些东西,我真的又不由得想起当年学模电的时候被它支配的恐惧……

当然还有另外一种方法,那就是通过现成的设计工具和仿真工具来进行仿真计算。比如德州仪器TI就提供了一系列相关的工具来简化上面所有的计算过程。一开始可以根据ADC的性能指标选择对应的器件,然后使用ADC SAR Drive工具,来直接计算电阻电容的值,并且得到相应的性能指标。

为了进一步简化设计流程,TI不仅提供设计工具,还有一整套完整的生态把这些工具整合起来。

模数转换器adc的转换步骤包括 如何设计一个高精度模数转换ADC(3)

拿SAR驱动设计举例,TI就提供了很多经典的ADC电路设计方案, 比如这个“高电压电池监控器电路”就一步一步的教我们从设计说明目标,到如何选择合适的器件、如何建模仿真,并得到理想的性能指标。并且在设计的过程中,可以随时回顾 “TI 高精度实验室”视频系列作为参考。

模数转换器adc的转换步骤包括 如何设计一个高精度模数转换ADC(4)

具体到这个电路,我们可以随时查看”高精度实验室”里介绍的选择电荷桶电路(charge bucket filter)的方法,并为这个例子里的放大器、增益设置和数据转换器提供良好的趋稳和交流性能。我们还可以直接下载这个电路的设计文件,按照需求来对设计进行改修改。

模数转换器adc的转换步骤包括 如何设计一个高精度模数转换ADC(5)

4. PADC设计中的噪声

之前的文章里介绍过,模拟芯片的一个最大的问题就是容易受到干扰。事实上,模拟信号能够受到干扰的地方太多了,从之前说过的电磁辐射EMI、到电路板的设计缺陷、电源电压的变化,再到周围环境的各种变化,其实都有可能会对模拟芯片和模拟电路造成干扰,从而造成误差。

对于ADC来说,除了这些外在的因素和干扰之外,它自己本身也会引入误差,这个通常叫做量化误差。也就是说,当我们在把一个连续变化的模拟量,量化成离散变化的数字量的时候,必然会引入这种误差。不管我们划分的粒度有多细,分的份有多小,这种量化误差都会存在。

先说理论,对于一个N位的ADC,每一位代表的电压范围可以通过这个公式得到

模数转换器adc的转换步骤包括 如何设计一个高精度模数转换ADC(6)

其中FSR是ADC支持的电压范围。那么在这个ADC里可以区分的最小的电压变化,就是LSB的一半。举个例子,一个3位的ADC,输入电压从0到8V之间变化。那么它的LSB就是8/2^3 = 1V,能分辨的最小电压变化是1/2V。也就是说,当输入电压是0-0. 5V之间的时候,输出其实都是0,从0.5-1.5之间的时候,输出都是1,以此类推。所以输出其实是一个阶梯曲线。

再结合前面说的环境噪声、也称作热噪声(thermal),那么一个ADC的总噪声就是热噪声和量化噪声的平方和再开方。

模数转换器adc的转换步骤包括 如何设计一个高精度模数转换ADC(7)

是不是看到这里就有点上头了,这个其实只是刚开始。对于一个给定的ADC来说,我们要去量化和测量它的这两个噪声,这样才能更好的、有针对性的设计包含ADC的整个系统。

拿Delta-Sigma ADC举例,它的这两种噪声取决于ADC的分辨率、参考电压、以及输出速率。对于一个包含ADC的系统来说,这种噪声分析更加的复杂。在一个典型的模数转换系统里,通常包含各种模拟噪声滤波器、运放、ADC、以及对数字信号进行处理的数字滤波器、FPGA、MCU等模拟数字芯片,这也构成了一个信号链。要分析这个信号链的噪声,我们不仅要对ADC本身做噪声分析,还要考查整个信号链里每个元件的噪声,以及所有这些元件之间的相互影响。

模数转换器adc的转换步骤包括 如何设计一个高精度模数转换ADC(8)

这个东西听起来好像很复杂,但我们可以使用信号链的有效噪声带宽(Effective Noise Bandwidth)来量化这个分析过程。当然我们也需要一系列的工具、软件和参考资料,来帮助我们做定量分析。

事实上,前面的很多内容都来自TI的电子书《高精度ADC噪声分析基础》。这本书结合了大量TI工程师的设计实践经验,详细介绍了ADC的噪声来源、如何量化分析、如何有效的设计电路来优化ADC的噪声表现。这本书写的非常通俗易懂,同时也兼顾了技术深度,强烈推荐给大家。

在前面说过的TI”高精度实验室”教程里,除了这里介绍的驱动电路设计和噪声分析之外,还有最基本的ADC基础、SAR与Delta-sigma ADC的原理与比较、误差分析、低功耗设计、高速设计等等,非常全面。每个视频后还有配套习题,方便我们巩固学习成果。我觉得无论你是模电新手还是老炮,都能找到适合你的内容。

“高精度实验室”、ADC电路设计指导手册都是TI ADC工具箱的一部分,这里面还有《模拟工程师口袋参考书》,可以用来快速查找和计算各种信号链的调参方法,包括运放带宽、稳定性等等。这些设计资源可以和ADC 模拟工程师计算器,TI TINA 以及Pspice for TI 配合使用,形成了一站式的设计体验。我把这些内容的链接都放在了下面的参考资料里,想学习这方面知识的朋友,一定记得从这里开始。

参考文献:

1. TI 精密ADC学习中心

https://www.ti.com.cn/zh-cn/data-converters/adc-circuit/precision-adcs/learning-center.html

2. TI高精度实验室线上培训视频

https://training.ti.com/ti-precision-labs-adcs

3. 模拟工程师口袋参考指南

https://www.ti.com/seclit/eb/slyw038c/slyw038c.pdf

4. ADC 噪声分析基础 电子书

https://www.ti.com/lit/eb/slyy192/slyy192.pdf

5. 电路设计指导手册

https://www.ti.com.cn/zh-cn/design-resources/design-tools-simulation/analog-circuits/overview.html

6. 模拟工程师计算器

https://www.ti.com.cn/tool/cn/ANALOG-ENGINEER-CALC

7. TI TINA

https://www.ti.com.cn/tool/cn/TINA-TI

8. Pspice for TI

https://www.ti.com.cn/tool/cn/PSPICE-FOR-TI

9. 参考设计

https://www.ti.com.cn/zh-cn/data-converters/adc-circuit/precision-adcs/reference-designs.html#search?famid=2019

免责声明:本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将立即删除内容!本文内容为原作者观点,并不代表本公众号赞同其观点和对其真实性负责。

模数转换器adc的转换步骤包括 如何设计一个高精度模数转换ADC(9)

,