AVR120AVR的ADC校正和说明_第1页
AVR120AVR的ADC校正和说明_第2页
AVR120AVR的ADC校正和说明_第3页
AVR120AVR的ADC校正和说明_第4页
AVR120AVR的ADC校正和说明_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、AVR120: AVR的ADC校正和说明翻译:邵子扬AVR120 : AVR的ADC校正和说明翻译:邵子扬 2006年10月20日 shaoziyang理解模拟到数字转换(ADC的特点测量参数说明ADC特点温度、频率和电压的依赖性偏移量和增益误差补偿1介绍这篇应用笔记解释了各种 ADC(模拟到数字转换)的特性以及它们怎样影响测量。同时说明 了怎样在产品测试中测量这些参数,以及怎样在运行时补偿测量误差。AVR单片机的Flash存储器的一个很大的优点在于校正代码可以用程序替换,这样校正代码不会在最终产品中占用空间。2理论在进入讨论前,先介绍一些中心概念。下面小节(一般ADC勺概念)可以忽略如果读者

2、已经熟悉了量化、分辨率和 ADC专化。2.1 一般ADC的概念ADC专变一个模拟输入信号为数字输出参数,表示出输入信号和参考信号的相对大小。为了更好的说明ADC这篇应用笔记区别说明完美、理论和实际的ADC一个完美的ADC只是一个理论概念, 在实际中并不存在。 它有无限分辨率,每个输入在指定 范围输出一个唯一的值。理想的ADC是一个线性转换函数,如图 1。图1.完美的ADC输出参数?模拟输入模拟输入为了定义一个理论的 ADC必须介绍量化的概念。由于将 ADC数字化,不可能连续的输出数 值,输出范围分为一定的台阶,每个都是一个可能的输出值。这意味着一个输出值不是只对应一个唯一输入,而是一个小范围的

3、输入值。结果就是一个阶梯转换函数,分辨率是不同输 出的个数。例如,ADC俞出为8个台阶,即分辨率是 8,或者说3位。转换函数如图2所示, 理论ADC等于完美的ADC在每一级台阶的中间点。 这说明理论ADC本质上是输入参数对应的 最接近的台阶输出参数。图2,理论上的3位ADC专换函数第12页共11页对于一个理论上的 3位ADC最大误差是土 1/2台阶,也就是说最大的量化误差总是1/2 LSB,LSB是输入电压对应输出参数最小数据位。实际的ADC还存在其他误差,这将在后面说明。2.2转换范围Atmel的AVR单片机可以配置为单端输入或者差分输入。单端输入用于测量单个通道的输入电压,差分模式用于测量

4、两个不同通道之间的差。不论哪种模式,每个通道的输入电压范围都要在GNEgiJ Avcc之间。使用单端模式,相对于GND勺输入电压被转换为数值信号。使用差分模式,从差分运放的输出(可选增益)转化为数字量(可能是负数)。一个简化的图例如图 3:图3.简化的ADC俞入电路输入信号单端转换模式转换电路(A)差分转换模式正相输入反相输入转换电路(BJ为了决定转换范围,转换电路需要一个参考电压(Vref),用于代表最大输出值。根据数据手册,对于标准芯片 Vref至少是2V,对于工作电压是 1.8V的芯片参考电压允许低至1V,对于单端输入和差分输入都是一样。2.2.1单端转换范围单端转换输入通道直接连到转换

5、电路,如图3A所示。AVR的10位ADC务从GNtliJ Vref的连续输入信号转换为从 0到1023的离散输出信号。2.2.2差分转换范围差分转换连接两个输入通道到可变增益差分放大器,放大器的输出反馈到转换电路,如图 3B。差分电压从-Vref到+Vref,转换结果从-512到+511。XX即使测量负的差分电压,每个 通道的输入电压范围还是在GNEgiJ AVcc之间。小于-Vref的差分电压将得到最小值(在 10位ADC时是-512 ),大于Vref的差分电压将得到 最大值(在10位ADCM是511)。注意某些型号的器件不能测量负的差分电压,如 ATiny26。2.3校正ADg际的总误差不

6、只是量化误差,这篇文档说明了偏置和增益误差,以及如何进行补偿。 同时介绍了两种测量非线性度的方法,微分法和积分法。对于大多数应用,在使用单端模式时ADC无需校正。典型精度是1-2LSB,既不需要也难以通过校正获得更高的精度。但是,使用差分模式时情况就不同了,特别在高增益时,微小的变化通过放大器就变成了很大的误差,未补偿的误差通常大于20LSBL这些误差需要用软件针对每个器件进行补偿。初看起来20LSB是一个很大的参数,但是这并不代表差分模式就没有用处了,经过简单的校正算法,误差就可以控制在 1-2LSB之内。2.4绝对误差绝对误差是理想直线和实际曲线,包括量化误差的最大差值。因为量化误差,最小

7、绝对误差是? LSB绝对误差或者叫绝对精度是未补偿误差的总和, 线性误差。偏置、增益和非线性在后面说明。包括了量化误差、偏置误差、增益误差和非绝对误差可以通过使用斜坡输入电压测量,在这种情况下所有的输出参数都和输入电压做比较,最大差值给出了绝对误差。注意绝对误差不能直接补偿,除非使用占用很大内存的查表或多项式逼近。但是绝对误差最重要的贡献是可以补偿偏置和增益误差。绝对误差会缩小 ADC勺范围,需要考虑最大和最小输入范围,避免被绝对误差截短。2.5偏置误差偏置误差定义为在 0输入时,实际ADC转换函数和理想直线的差。当输入参数是? LSB时输出没有产生从0变到1,我们就称之为偏置误差。对于正偏置

8、,当输 入从下往上逼近? LSB时输出值大于0;对于负偏置第一次输出变化时输入大于 ? LSB换句 话说,如果实际的转换结果低于理想直线,就是负偏置。偏置示意图如图4。图4.正偏置(A)和负偏置(B)(A)因为单端转换只产生正数结果,所以单端和差分的偏置测量过程是不同的O2.5.1偏置误差-单端通道为了测量偏置误差,从GNEM始增加输入电压直到输出产生第一个转换结果变化。计算输入电压差,这个差值转换到LSB,就等于偏置误差。在图5A,第一次转变发生在 1LS&转变从2到3,等效输入电压是 2? LSB。差值是+1? LSB, 这就是偏置误差,双箭头指示出差值。在图5B中显示了同样的过程

9、,第一次转变发生在2LSB, 从0到1时,等效输入电压为? LSB,偏置误差也就是差值为 -1 ? LSB图5.单端模式下的正偏置(3和负偏置(B)误差模拟输入测量过程如图6。图6.单端偏置误差测量过程保存输入电压为实际电压计算输出从A变到 B 需要的理论电压偏置误差等于(理论-实际)换算为LSB为了补偿单端模式下的偏置误差, 可以从每个测量结果中减去偏置误差。 注意到偏置误差会 影响ADC的范围,一个大的正偏置误差使输出值在输入达到最大值前就已经饱和, 而大的负 偏置误差使输出值变为 0在输入变为最小值前。2.5.2偏置误差-差分通道使用差分通道,测量偏置误差变得更容易,因为不需要外部输入电

10、压。两个差分输入端可以 连接到同一内部电压上,输出就是偏置误差。因为这种方法无法确定何时发生第一次转换, 所以给出误差是? LSB到1LSB(最差情况)。为了补偿差分模式下的偏置误差,同样是从每次测量结果中减去偏置误差。2.6增益误差增益误差的定义是在补偿了偏置误差后,最后输出中点和理想直线的偏离。在补偿了偏置误差后,输入电压是0时输出结果通常也是 0,但是增益误差将导致实际的转换函数斜率偏离 理想直线的斜率。这个增益误差可以通过将输出值比例化来测量和补偿。实时补偿通常使用整数算法, 因为浮点数计算起来要花费较长的时间。为了获得最高的精度,斜率偏离的测量要尽量远离 0点。参数越大,精度越高。这

11、将在后面详细论述。图7显示了一个3位ADC的增益误差,下面的说明同时包括了单端模式和差分模式。输出值八1111111011011100011010001000111模拟输入(A)输出值个模拟输入图7.正(A)和负(B)增益误差例子 为了测量增益误差,输入从0开始直到达到最后的输出。增益补偿的比例系数等于理想输出 值和最后输出值中点除以实际步数。如图7A,输出值在达到最大之前就已经饱和,垂直箭头显示了最后输出的中点。在这个电压下理想输出值是 5.5,比例系数等于5.5除以7。在图7B,输入电压达到最大时输出值只有6,这对于实际值是负偏差。在这个情况下理想的输出值是7.5,比例系数等于 7.5除以

12、6。测量过程如图 8。设置输入到0增加输入直到达到最大输由找出基于前级长度 的最后级巾点2.7非线性当补偿了偏置误差和增益误差后,实际的转换函数应当等于理论 ADC的转换函数。但是由于存在着非线性,时间的曲线和理论曲线还是有微小的差别。有两个办法可以用来测量非线性,它们将在后面说明,图 9显示了两种测量方法。111110 -101 -100 -011 -010 -001 -0/0 1/8 2/84)868 78AREF输出值k模拟输入模拟输入(A)图9.非线性曲线例子2.7.1差分非线性差分非线性(DND定义为在实际台阶宽度和理论宽度(1LSB)之间最大和最小差异。非线性产生变化宽度的量化台阶

13、:所有台阶应当都是1LSB宽,但是有的宽有的窄。为了测量DNL输入一个斜坡电压并记录下所有的转换值。步长由转换间的距离而定,来自 1LSB的最大正偏离和负偏离用来报告最大和最小的DNL2.7.2 整体非线性整体非线性(INL)定义为实际曲线和理论曲线之间最大垂直差。INL可以被解释为所有 DNL的总和。例如,一些连续的负DNL使得实际曲线高于理论曲线,如图9A。负的INL说明实际曲线低于理论曲线。最大和最小INL使用同样的斜坡输入电压测量,记录下每个台阶中点的偏离,其中最大的正偏离和负偏离就是最大和最小的INL o2.7.3测量和补偿在补偿了偏置误差和增益误差之后再测量DNL和INL误差很重要

14、。否则,偏置误差和增益误差会影响测量结果,就不能得到真实的DNL和INL。非线性误差不能通过简单的计算来补偿,可以用多项式逼近或查表法补偿。不过AVR的10位ADC的DNL和INL的典型值是? LSB,足以满足一般的实际应用了。2.8温度、频率和电压影响使用ADC的内部电压参考源时, 必须考虑它的精度。 内部电压参考源和能隙电压成正比,它的特性在数据手册中说明了。特性显示能隙电压轻微的受到供电电压和温度影响。ADC勺精度也受到ADC寸钟的影响。推荐最大的 ADCM钟频率受内部DAC转换电路的限制, 为了优化性能,ADC时钟不要超过200KH乙但是即使频率达到 1MHz也不会显著降低ADC的 分

15、辨率的。不要用高于1MHz的频率来操作ADC2.9带宽和输入阻抗使用单端模式时,ADC的带宽受ADC的时钟速度限制。因为 1次转换需要13个ADC时钟周 期,所以最大时钟 1MHz的ADC时钟意味着大约每秒 77K的采样速度。按照 Nyquist采样定 律单端模式的带宽是 38.5KHz。使用差分模式时,因为差分放大器带宽被限制在4KH乙大于4KHz的信号需要通过外部的滤波器过滤掉,避免非线性。对于Vcc和GND勺输入阻抗典型是 100曜。与之对应的是信号源输出阻抗,它会产生一个 分压。信号源的输出阻抗要足够低才能获得正确的转换结果。3执行图10显示了一个ADC校正的例子。校正测试装置高精度D

16、ACSbit ADCEEPRCM产品测试 控制AVRL -aK" K"*b "Mv _"M "Mv w"M卷数'校正 最终应用在产品测试中,每个设备的 ADCE要使用一个类似的测试装置。 AVR使用高精度DAC(如16 位分辨率)产生校正需要的输入电压。校正完成后,偏置和增益补偿参数编程到 EEPROMK注意这里需要编程 EESAV酷丝,这样在编程Flash存储器是不会擦除 EEPRO伪容的。否则就需要暂存ADC#数。3.1偏置和增益误差补偿的定点算法浮点数运算对于 ADC勺比例化计算缺乏效率。增益补偿的比例系数一般接近1,需

17、要一个比较合适的精度进行 ADC数补偿,这可以使用通过整数进行计算的定点数。因为增益补偿系数肯定不会超过2,如果乘以214也不会超过一个有符号的16位字。换句话说,比例系数可以用两字节1:14的有符号定点数表示。偏置误差和增益误差补偿的公式如公式1。公式1.实际参数=(ADC# 数偏置)*增益系数计算结果取整后,结果是小于或等于计算结果的最大整数。为了保证结果是最接近的整数,在取整前需要加上 0.5 (译者注:即四舍五入)。加上0.5,乘以比例214并减去偏置就得到 了公式2。公式2.214*实际参数=214* ADC参数*增益系数+ 2 14 * 0.5 - 214 *偏置*增益系数因为增益

18、系数和偏置修正是常数,可以进一步进行优化。如果等式两边乘以22得到216,高2字节等于取整后的结果,这样不用右移 16位。我们引入一些常数,并在公式3中总结。公式3.系数=2 14*增益系数修正=2 14 * (0.5-偏置*增益系数)216*实际结果=2 2* (ADC#数*系数+修正)使用这个方法,校正软件计算常数 系数和修正,并存储它们到 EEPROMK运行中,只需要 对ADC#数进行一次乘法,一次加法和左移两位。使用IAR C编译器以及最高速度优化,只需要42个CPU周期。3.1.1 校准测试工装设计超出了这篇笔记的范围。下面只给出了AVR校准流程图,它使用了外部 DAC无需使用多个ADC通道,只使用一个开关切换单端和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论