AVR120 AVR的ADC校正和说明.doc

上传人:豆**** 文档编号:17401723 上传时间:2022-05-23 格式:DOC 页数:7 大小:312KB
返回 下载 相关 举报
AVR120 AVR的ADC校正和说明.doc_第1页
第1页 / 共7页
AVR120 AVR的ADC校正和说明.doc_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《AVR120 AVR的ADC校正和说明.doc》由会员分享,可在线阅读,更多相关《AVR120 AVR的ADC校正和说明.doc(7页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流AVR120 AVR的ADC校正和说明.精品文档.AVR120:AVR 的 ADC 校正和说明翻译:邵子扬 2006年10月20日shaoziyang特点:l 理解模拟到数字转换(ADC)的特点l 测量参数说明 ADC 特点l 温度、频率和电压的依赖性l 偏移量和增益误差补偿1 介绍这篇应用笔记解释了各种 ADC(模拟到数字转换)的特性以及它们怎样影响测量。同时说明了怎样在产品测试中测量这些参数,以及怎样在运行时补偿测量误差。AVR单片机的Flash存储器的一个很大的优点在于校正代码可以用程序替换,这样校正代码不会在最终产品中占用空间。2 理

2、论在进入讨论前,先介绍一些中心概念。下面小节(一般ADC的概念)可以忽略如果读者已经熟悉了量化、分辨率和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转换函数对于一个理论上的3位ADC,最大误差是1/2台阶,也就是说最大的量化误差总是1/2 LSB,LSB是输入电压对应输出参数最小数据位。实际的ADC还存在其他误差,这将在后面说明。2.2 转换范围Atmel的AVR单片机可以配置为单端输入或者差分输入。单端输入用于测量单个通道的输入电

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

5、连续输入信号转换为从0到1023的离散输出信号。2.2.2 差分转换范围差分转换连接两个输入通道到可变增益差分放大器,放大器的输出反馈到转换电路,如图3B。差分电压从-VREF到+VREF ,转换结果从-512到+511。XX。即使测量负的差分电压,每个通道的输入电压范围还是在GND到AVcc之间。小于-VREF的差分电压将得到最小值(在10位ADC时是-512),大于VREF的差分电压将得到最大值(在10位ADC时是511)。注意某些型号的器件不能测量负的差分电压,如ATiny26。2.3 校正ADC实际的总误差不只是量化误差,这篇文档说明了偏置和增益误差,以及如何进行补偿。同时介绍了两种测

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

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

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

9、)和负偏置(B)误差测量过程如图6。图6. 单端偏置误差测量过程为了补偿单端模式下的偏置误差,可以从每个测量结果中减去偏置误差。注意到偏置误差会影响ADC的范围,一个大的正偏置误差使输出值在输入达到最大值前就已经饱和,而大的负偏置误差使输出值变为0在输入变为最小值前。2.5.2 偏置误差 差分通道使用差分通道,测量偏置误差变得更容易,因为不需要外部输入电压。两个差分输入端可以连接到同一内部电压上,输出就是偏置误差。因为这种方法无法确定何时发生第一次转换,所以给出误差是LSB到1LSB(最差情况)。为了补偿差分模式下的偏置误差,同样是从每次测量结果中减去偏置误差。2.6 增益误差增益误差的定义是

10、在补偿了偏置误差后,最后输出中点和理想直线的偏离。在补偿了偏置误差后,输入电压是0时输出结果通常也是0,但是增益误差将导致实际的转换函数斜率偏离理想直线的斜率。这个增益误差可以通过将输出值比例化来测量和补偿。实时补偿通常使用整数算法,因为浮点数计算起来要花费较长的时间。为了获得最高的精度,斜率偏离的测量要尽量远离0点。参数越大,精度越高。这将在后面详细论述。图7显示了一个3位ADC的增益误差,下面的说明同时包括了单端模式和差分模式。图7. 正(A)和负(B)增益误差例子为了测量增益误差,输入从0开始直到达到最后的输出。增益补偿的比例系数等于理想输出值和最后输出值中点除以实际步数。如图7A,输出

11、值在达到最大之前就已经饱和,垂直箭头显示了最后输出的中点。在这个电压下理想输出值是5.5,比例系数等于5.5除以7。在图7B,输入电压达到最大时输出值只有6,这对于实际值是负偏差。在这个情况下理想的输出值是7.5,比例系数等于7.5除以6。测量过程如图8。2.7 非线性当补偿了偏置误差和增益误差后,实际的转换函数应当等于理论ADC的转换函数。但是由于存在着非线性,时间的曲线和理论曲线还是有微小的差别。有两个办法可以用来测量非线性,它们将在后面说明,图9显示了两种测量方法。图9. 非线性曲线例子2.7.1 差分非线性差分非线性(DNL)定义为在实际台阶宽度和理论宽度(1LSB)之间最大和最小差异

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

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

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

15、,每个设备的ADC都要使用一个类似的测试装置。AVR使用高精度DAC(如16位分辨率)产生校正需要的输入电压。校正完成后,偏置和增益补偿参数编程到EEPROM中。注意这里需要编程EESAVE熔丝,这样在编程Flash存储器是不会擦除EEPROM内容的。否则就需要暂存ADC参数。3.1 偏置和增益误差补偿的定点算法浮点数运算对于ADC的比例化计算缺乏效率。增益补偿的比例系数一般接近1,需要一个比较合适的精度进行ADC参数补偿,这可以使用通过整数进行计算的定点数。因为增益补偿系数肯定不会超过2,如果乘以214也不会超过一个有符号的16位字。换句话说,比例系数可以用两字节1:14的有符号定点数表示。

16、偏置误差和增益误差补偿的公式如公式1。公式1.实际参数 = (ADC参数 偏置)* 增益系数计算结果取整后,结果是小于或等于计算结果的最大整数。为了保证结果是最接近的整数,在取整前需要加上0.5(译者注:即四舍五入)。加上0.5,乘以比例214并减去偏置就得到了公式2。公式2.214 * 实际参数 = 214 * ADC参数 * 增益系数 + 214 * 0.5 - 214 * 偏置 * 增益系数因为增益系数和偏置修正是常数,可以进一步进行优化。如果等式两边乘以22,得到216,高2字节等于取整后的结果,这样不用右移16位。我们引入一些常数,并在公式3中总结。公式3.系数 = 214 * 增益

17、系数修正 = 214 * (0.5 偏置 * 增益系数)216 * 实际结果 = 22 * (ADC参数 * 系数 + 修正)使用这个方法,校正软件计算常数系数和修正,并存储它们到EEPROM中。运行中,只需要对ADC参数进行一次乘法,一次加法和左移两位。使用IAR C编译器以及最高速度优化,只需要42个CPU周期。3.1.1 校准测试工装设计超出了这篇笔记的范围。下面只给出了AVR校准流程图,它使用了外部DAC。无需使用多个ADC通道,只使用一个开关切换单端和差分模式。ADC参数认为和使用的通道是一致的,多路复用不会引入误差。软件执行过程如图11。图11. 软件校正流程这一段程序应当先编程到

18、AVR单片机中以进行校正,以后在用最终的程序替换。再次说明要编程EESAVE熔丝,这样在编程Flash时可以防止将EEPROM的数据也擦除了。3.1.2 补偿运行时补偿的代码可以做为一个小函数,每次ADC测量后都通过这个函数校正,使用公式3中的系数和修正参数。图12. 配置和增益补偿的流程图计算过程可以用下面的C函数,也可以用宏的方式表示:signed int adc_compensate(signed int adcvalue, signed int factor, signed long correction)return (signed long)adcvalue*factor)+correction)16);存放在EEPROM中的参数可以在程序启动时复制到SRAM中,这样可以在程序中快速访问。4 参考l Robert Gordon A Calculated Look at Fixed-Point Arithmeticl Application Note AVR210 Using the AVR Hardware Multiplier(全文完)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com