谈谈ADC的相关性能参数(一)

本人就职于一家IC设计公司,任系统工程师一职。对于我们公司来说,系统工程师一职主要是负责新芯片的模块框架和功能参数定义,同时还兼着硬件工程师,测试工程师,PM等诸多角色(角色有点多哈,小公司,还是能够理解的吧~)。在一个涉及到ADC模块的芯片研发项目中,让我有机会对ADC模块的相关参数进行了研究学习,希望能稍微帮到大家哈~

1. INL/DNL

说到ADC的参数,可能我们一开始学习的时候比较会关注到他的转换位数,转换速度啊这些。但是我想说的是,对于一个ADC来说,我们在今后的设计中可能更应该去关注这两个参数:INL/DNL。

DNL,即微分非线性,他表征的是我们ADC的实际刻度与理想刻度之间的差值。举个例子,比如说我们手中普通的尺子,正常情况下一小格应该是标准的1mm。但是由于生产精度,材质,受力引发的形变啦等影响,尺子上上标注的1小格可能并不是标准的1mm了,可能是0.98mm,也可能是1.02mm。这样我们在量取一个物件的长度时就会出现误差。那我们的DNL是怎么表征这一参数的呢?还是以尺子举例,比如说我们尺子上的某个1mm刻度线这时候的1mm已经变成了0.98mm,那么我们就可以说这个1mm刻度线的DNL就是(0.98-1)/1=0.02 LSB,这里的LSB就是指我们的一个最小刻度对应的长度是多少,对于一般的尺子就是1mm。同样的,转回到我们ADC上面,你也可以认为我们ADC就是一把尺子,我们ADC的最小刻度(及分辨率)由转换位数N和参考电压VREF决定,最小刻度为 VREF/2^N,也即我们的一个LSB就代表着VREF/2^N的电压。那么在实际转换中,我们也存在和尺子测量长度一样的问题,这时候,我们就用DNL来表达这个误差。比如说,某款ADC的转换位数是10bit,DNL是1LSB,参考电压是1.024V(方便计算哈~),那么我们用ADC测量某电路A点电压是1V,B点电压是1.001V,理想状态下,我们可以说A点电压比B点电压小0.001V。但是,实际上由于DNL误差的存在,我们只能说A点电压比B点电压小0-0.002V之间。

INL,即积分非线性,他表征的是我们ADC的转换值与真实值之间的差距。比如说某款ADC的转换位数是10bit,INL是1LSB,参考电压是1.024V,如果我们转换得到A点的电压值为1V,那么实际上A点的电压范围应该在0.999V-1.001V之间。从整个ADC输出代码来看,我们的INL其实就是DNL的累加和。所以我们可以发现有些ADC即使DNL很小,但是加入你的DNL都往正或者负方向飘,那么这个ADC的INL一定也会很大。通常我们说的无失码ADC就是指我们的ADC的DNL小于1LSB(这是非常好的ADC了),就是说我们的ADC可以转换出整个域内的代码。假如说现在有个12bit ADC的DNL是大于1LSB的,那么我们甚至说这个ADC的有效位数是没有12位的,实际上要判定一个ADC的有效位数要通过下面的动态参数指标来确定。

在我们今后挑选ADC的时候,需要去关注一下这两个参数,计算分析一下,看看我们的ADC是否能满足我们的设计要求。部分朋友可能会对这两个参数的测量比较感兴趣,我们在以后的文章中会提到该如何去测量这一参数。

2. SNR/ENOB/THD

SNR,即信噪比,有的厂商Datasheet会用动态范围来描述(我认为动态范围和信噪比英是同一个概念,不知是否准确~)。表示信号功率与噪声功率的比值,系统内部噪声会使偏离或SNR大于理论值范围,可能造成误差的原因包括:器件量化误差、器件内部噪声和驱动/采样源产生的非线性噪声(应用噪声)。量化噪声关系到转换器的分辨率,转换器内的噪声主要是和输入比较器的完善程度有关(部分描述摘抄自网络)。该参数就是描述期间对于噪声的抑制能力,一般市场上普通的音频设备一般要求SNR大于60dB,微软对于声卡的SNR规定则大于80dB,较高的SNR以为着该ADC有一个较好的有效转换位数,有如下公式:

SNR=6.02N+1.76dB

ENOB,即有效位数,上述公式中的N代表的是理想的转换位数,那么加入我们通过一些手段测量到了ADC的SNR,那么我们就可以确定该ADC的有效位数是多少。ENOB真实的反映了我们ADC的有效位数是多少,让我们可以真正了解这个ADC的真实性能。有效位数ENOB是在ADC器件信噪比基础上计算出来的,它将传输信号质量转换为等效比特分辨率。实际上系统噪声使输出信号失真,失真大小就反映在信噪比上。ADC的比特分辨率可以用来计算给定器件的理论信噪比,反过来也成立,所以器件的信噪比测量值也可用来计算有效器件比特分辨率。所有噪声源和器件的不精确性合在一起,可以转化为量化误差与有效器件分辨率(部分描述摘抄自网络)。

THD,即总谐波失真,总谐波失真是输入信号与系统所有谐波的总功率比,它可提供系统对称和非对称非线性产生的总失真大小,用以表达其对信号的谐波含量的作用或者影响。还有一个参数叫THD+N,相当于还加上了噪声的影响,常见于一些音频ADC中。总谐波失真是指用信号源输入时,输出信号(谐波及其倍频成分)比输入信号多出的额外谐波成分,通常用百分数来表示。一般来说,1MHz频率处的总谐波失真最小,因此不少产品均以该频率的失真作为它的指标。所以测试总谐波失真时,是发出1MHz的声音来检测,并希望这个值越小越好。

上面说到的SNR/ENOB/THD属于ADC的动态性能参数,而INL/DNL属于ADC的静态性能参数,不同的应用场景下对于ADC性能参数的影响也是不一样的,我们在设计时需要重点考虑。

3. ADC的输入阻抗

我这里单独把这个ADC的输入阻抗参数拉出来说一下,是因为我发现身边有些朋友在设计这种ADC电路时没有考虑过这个参数,所以这里单独说一下。一般在我们使用ADC时,尤其是MCU内部自带的ADC,都会说明一下对外面信号源阻抗的要求。以我们公司的一款MCU产品的内部ADC为例,我们会注明我们的ADC对外面的输入阻抗要求是10K。这项参数意味着我们的被测信号源的内阻不能大于10K,否则我们的输出精度将无法被保证。原因是芯片内部的ADC电路前面有一个采样保持电路,假如外面内阻太大会直接影响到这个电路的充放电,从而影响到我们最终的转换精度,所以这里特别说明一下,我们今后在设计时要关注一下我们使用的ADC对信号源的输入阻抗是否有要求。

4. ADC的转换时间

实际应用中,尤其是对于一个MCU开发者来说,我们在使用MCU内部的ADC后,很多人都会去配一下各种时间,但是当有人问起来我们的ADC转换速度是多少时,往往一脸懵逼,因为很多人并不知道该如何计算ADC的转换时间。以SAR ADC为例,一般MCU内部自带的ADC可有有几个配置可以影响到ADC的转换速度:转换位数N,ADC时钟f,采样保持时间t。那么我们的ADC转换一次的时间就是N*1/f+t,这就是我们ADC转换一次的时间,多以我们会发现有的MCU可以选择10bit或者12bit输出模式,有的人会想这是不是多此一举,实际上从上面的公式可以看出,我们的转换位数会影响到我们ADC的转换速度的。另外说一句,对于同一个ADC,假如我们的转换速度设置很快也会降低我们的ADC精度,因此你会发现所有ADC 的Datasheet中的转换精度描述一栏的测试条件栏中会加上对转换速度的限制条件。所以,我们在使用ADC时,若没有速度的要求,建议将ADC的转换速度适当降低,以换取较为准确的精度。


我们后面的文章会说说如何去测量我们ADC的INL/DNL以及SNR等参数。

今天困了,暂时不写了~~~

你可能感兴趣的:(谈谈ADC的相关性能参数(一))