如何提高ADC过采样 提高精度精度

查看: 1487|回复: 0
驯服ADC的几个小窍门
& && &&&数模转换是我们在嵌入式系统中用的非常频繁的一个功能,市面上大部分MCU内部都集成了ADC,内置ADC的精度也从以前的10bit变成现在常见的12bit(NXP),还可以看到不少内置16bit精度的MCU(Freescale)。ADC精度攀升的同时,怎么样能够更好的驾驭这匹烈马也同时困扰着各位年轻工程师。
& && &&&数模转换是我们在嵌入式系统中用的非常频繁的一个功能,市面上大部分MCU内部都集成了ADC,内置ADC的精度也从以前的10bit变成现在常见的12bit(NXP),还可以看到不少内置16bit精度的MCU(Freescale)。ADC精度攀升的同时,怎么样能够更好的驾驭这匹烈马也同时困扰着各位年轻工程师,今天就让小编给大伙支两招吧!
隔离数字信号与模拟信号& && &&&这一点应该是各位工程师最先想到,由于模拟信号抗干扰能力比较差,系统有频率比较高的数字信号时,最好能够在硬件上对模拟信号进行隔离。笔者在这方面了解不是很深,实际使用中,在模拟电源跟地前面串了个小磁珠,在要求不是太过苛刻的环境下也够用了,如下图所示:
& && &&&如果大家有进一步的需求,就需要考虑到元器件布局、铺地策略、旁路电容与去耦电容的选取等问题了,可以看一下NXP官方写的关于ADC的硬件设计参考,链接如下:
使用基准电压校准Vref& && &&&很多MCU都有独立的模拟参考电源引脚Vref,常见的硬件设计中都会直接接到LDO的输出端。但实际系统工作中,LDO受负载改变的影响,其输出电压可能存在比较大的波动。因此,推荐使用一个通道实时采集基准电压(常用2.5V、1.24V或者更低等),对Vref电压进行补偿校正。
软件上的配置& && &&&不少MCU内置的ADC都有自动硬件校准功能,从POR启动或者低功耗模式唤醒后,都需要进行校准,校准过程只需要为ADC模块提供固定的时钟,硬件自动完成剩余操作,用户只需要查询完成标志位即可。
& && &&&ADC引脚需要配置成无上下拉的模拟输入引脚,这一点很重要,多余的上下拉都将影响ADC正常采样。
滤 波& && &&&硬件上常见的处理方法为,在采样点上面并联一个电容,这样可以改善采样点的波形,减少高频分量在该点的干扰;同理,软件上面可以采用中值法、平均法等进行滤波,尽量避免采样点上面极值干扰。
& && &&&但是,上述方法是通过牺牲ADC的采样速率来获得采样精度的,在对采样速率有要求的场合下显然不适用。
采样电阻的选取& && &&&理想情况下,ADC引脚作为输入引脚,可以近似为一个阻抗为MΩ级的电阻。很多情况下,为减小整体系统的功耗,很多工程师都会选择一个比较大的采样电阻,以尽量减少电源在采样电阻上面的漏电流。
& && &&&这个时候,工程师很可能遇到这么一个问题:在ADC采样频率比较高的情况下,只使能单通道,采集回来的数据是正确的;当同时开启多个通道进行转换时,采样结果存在非常大的误差。
& && &&&实际上,多通道ADC模块内部结构一般如下图所示:
& && &&&多个转换通道共用一个采样电容,在通道切换过程中,采样电容有一个充放电的过程。当系统工作时,使用示波器观察采样引脚波形,可以看到频率与采样周期相同的脉冲形状尖峰。如果采样前端阻抗比较大,很有可能到达MCU采样瞬间,采样电容上的电压未能到达采样通道引脚的实际电压,导致误差的产生。
& && &&&问题解决方法是考虑减小采样前端电路的阻抗。
Powered by如何提高ADC采样精度_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
如何提高ADC采样精度
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢巧妙避开无线充电“设计陷阱”
PCB顶尖高手独创武林绝学
揭秘MOS管驱动电路设计
让你的企业从0到起飞
USB Type-C快充设计之秘
&07-21&20:00
&07-24&20:00
&07-26&15:00
&07-28&20:00
移入鼠标可放大二维码
一种提高TMS320F2812 ADC精度的方法
来源:本站整理
作者:佚名日 16:25
[导读] TMS320F2812是德州仪器公司(TI)推出的主频最高可达150 MHz的32位高性能数字信号处理器(DSP),内部集成了ADC转换模块。ADC模块是一个12位、具有流水线结构的模数转换器,内置双采
TMS320F2812是德州仪器公司(TI)推出的主频最高可达150 MHz的32位高性能数字信号处理器(DSP),内部集成了ADC转换模块。ADC模块是一个12位、具有流水线结构的模数转换器,内置双采样保持器(S/H),可多路选择16通道输入,快速转换时间运行在25 MHz、ADC时钟或12.5 Msps,16个转换结果寄存器可工作于连续自动排序模式或启动/停止模式。 在现代电子系统中,作为模拟系统与数字系统接口的关键部件,模数转换器(ADC)已经成为一个相当重要的电路单元,用于控制回路中的数据采集。在实际使用中,发现该ADC的转换结果误差较大,如果直接将此转换结果用于控制回路,必然会降低控制精度。为了克服这个缺点,提高其转换精度,笔者在进行了大量实验后,提出一种用于提高TMS320F2812ADC精度的方法,使得ADC精度得到有效提高。 1 ADC模块误差的定义及影响分析 1.1 误差定义 常用的A/D转换器主要存在:失调误差、增益误差和线性误差。这里主要讨论失调误差和增益误差。理想情况下,ADC模块转换方程为y=x×mi,式中x=输入计数值 =输入电压×4095/3;y=输出计数值。在实际中,A/D转换模块的各种误差是不可避免的,这里定义具有增益误差和失调误差的ADC模块的转换方程为y=x×ma±b,式中ma为实际增益,b为失调误差。通过对F2812的ADC信号采集进行多次测量后,发现ADC增益误差一般在5%以内,即0.95 图1理想ADC转换与实际ADC转换 1.2 影响分析 在计算机测控系统中,对象数据的采集一般包含两种基本物理量:模拟量和数字量。对于数字量计算机可以直接读取,而对于模拟量只有通过转换成数字量才能被计算机所接受,因此要实现对模拟量准确的采集及处理,模数转换的精度和准确率必须满足一定的要求。由于F2812的ADC具有一定增益误差的偏移误差,所以很容易造成系统的误操作。下面分析两种误差对线性电压输入及A/D转换结果的影响。 F2812用户手册提供的ADC模块输入模拟电压为0~3 V,而实际使用中由于存在增益误差和偏移误差,其线性输入被减小,分析如表1所列。 下面以y=x×1.05+80为例介绍各项值的计算。当输入为0时,输出为80,由于ADC的最大输出值为4095,则由式y=x×1.05+80求得输入最大电压值为2.8013。 因此,交流输入电压范围为1.7,此时有效位数N=ln4015/ln2=11.971,mV/计数位=2.?6977,其余项计算同上。表1中的最后一行显示了ADC操作的安全参数,其有效位数减少为11.865位,mV/计数位从0.7326增加为0.7345,这将会使转换结果减少0.2%。 在实际应用中,所采集的信号经常为双极型信号,因此信号在送至ADC之前需要添加转换电路,将双极型信号转化为单极型信号。典型的转换电路如图2所示。对于ADC模块,考虑到增益误差和失调误差对输入范围的影响,转换电路需要调整为如图3所示的电路。在图3中,输入增益误差的参考范围已经改变。 对于双极性输入,其0 V输入的增益误差对应单极性输入的1.4315V的增益误差,因此,原有ADC的增益误差和失调误差被增大了。例如,如果ADC的增益误差为5%,失调误差为2%,则其双极性的增益误差计算如下:双极性输入x′= 0.0000 V,单极性的ADC输入电压x = 1.4315 V,其理想的转换值为ye=1./3=1954,而由ya=+80计算得实际转换值,则双极性增益误差为ya-ye=8(9.1%误差)。通过计算可以看出,ADC的误差大大增加,因此要使用ADC进行数据采集,就必须对ADC进行校正,提高其转换精度。 图2理想情况下的电压转换电路 图3校正后的电压转换电路 2 ADC校正 2.1校正方法 通过以上分析可以看出,F2812的ADC转换精度较差的主要原因是存在增益误差和失调误差,因此要提高转换精度就必须对两种误差进行补偿。对于ADC模块采取了如下方法对其进行校正。 选用ADC的任意两个通道作为参考输入通道,并分别提供给它们已知的直流参考电压作为输入(两个电压不能相同),通过读取相应的结果寄存器获取转换值,利用两组输入输出值求得ADC模块的校正增益和校正失调,然后利用这两个值对其他通道的转换数据进行补偿,从而提高了ADC模块转换的准确度。图1示出了如何利用方程获取ADC的校正增益和校正失调。具体计算过程如下: ① 获取已知输入参考电压信号的转换值yL和yh。 ② 利用方程y=x×ma+b及已知的参考值(xL,yL)和(xH,yH)计算实际增益及失调误差: 实际增益ma=(yH-yL)/(xH-xL); 失调误差 b="yL" -xL×ma。 ③ 定义输入x=y×CalGain-CalOffset,则由方程y=x×ma+b得校正增益CalGain=1/ma=(xH-xL)/(yH -yL),校正失调CalOffset=b/ma=yL/ma-xL。 ④ 将所求的校正增益及校正失调应用于其他测量通道,对ADC转换结果进行校正。 上述即为实现ADC校正的全过程,通过使用这种方法,ADC的转换精度有很大提高。由于这种方法是通过某个通道的误差去修正其他通道的误差,因此要采用这种方法,必须保证通道间具有较小的通道误差。对F2812ADC转换模块,由于其通道间的增益及失调误差均在0.2%以内,所以可以采用这种方法对其进行校正。 2.2 软件实现 与一般的ADC转换程序相比,带校正的ADC转换程序需要另外增加两个程序段:校正值的计算以及利用校正值对ADC进行处理。为了方便操作及转换结果获取,实现中定义了结构体变量ADC?CALIBRATION?VARS,用来保存ADC转换后的各种数据。另外,提高程序的通用性,采样的方式、参考电压值及高低电压理想的转换值均在ADC转换头文件ADCCalibration.h中定义。ADC?CALIBRATION?VARS定义如下: typedefstruct{ Uint*RefHighChA//参考高电压所连通道地址 Uint*RefHighChA//参考低电压所连通道地址 Uint*ChoA//0通道地址 UintAvg_RefHighActualC//参考高电压实际转换值 UintAvg_RefHighActualC//参考低电压实际转换值 UintRefHighIdealC//参考高电压理想转换值 UintRefLowC//参考低电压实际转换值 UintCalG//校正增益 UintCalO//校正失调 //校正通道的转换值 UintCh0; UintCh16; }ADC CALIBRATION VARS; 整个A/D转换任务由中断函数intADC()和主函数ADCCalibration()构成。中断函数主要用于转换数据的读取,而校正参数计算及各通道转换结果的修正在主函数完成。校正完后,将结果保存到所定义的结构体变量中。此处,对ADC的校正采用单采样单校正的处理方法,当然也可以采用多采样单校正的处理方法,但是为了提高精度,如果设计系统开支允许,建议最好使用单采样单校正的方法,以提高ADC精度。 2.3实验结果 笔者在自己所使用的F2812系统上进行了实验,选用1 V和2 V作为参考电压,选用通道A6和A7作为参考通道,通过对0 V、0.5 V、1.5 V、2.5 V校正前后的数据进行比较,发现采用上述校正方法后,ADC的转换准确度明显得到改善,比较结果如表2所列。 注:由参考电压计算得:CalGain=0.965;CalOffset=6.757。 表2中所给出的数据只是笔者进行大量实验后所得数据的一组,实验证明通过校正后ADC的误差能被控制在0.5%以内,这对大多数测控系统来说已满足要求,对于转换精度要求更高的系统,可以采用外扩A/D转换器。 结语 A/D转换器是数据采集电路的核心部件,其良好的精度与准确性是提高数据采集电路性能的关键。TMS320F2812作为TI公司推出的一款集微控制器及数字信号处理器于一身的32位处理器,以其运行速度高和强大的处理功能得到广泛应用,而对其ADC模块精度的提高,将进一步提高其在控制领域中的应用。本文提出的用于提高ADC模块精度的校正算法,经实际应用证明实用可行。
TMS320F281相关文章
TMS320F281相关下载
技术交流、积极发言! 发表评请遵守相关规定。
在经过数十年的实验室研究之后,人工智能终于开始走出实验室,进入收获阶段,比如应用于无人驾驶,所以现在也是人工智能科学家创业的最好时期。...
7月11日,华为消费者业务CEO余承东在第十六届中国互联网大会发表“打造智慧互联网时代的极致用户体验”主题演讲,分享了在移动互联网时代里华为在改...
创新实用技术专题
版权所有 & 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-文档分类:
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,
下载前请先预览,预览内容跟原文是一样的,在线预览图片经过高度压缩,下载原文更清晰。
您的浏览器不支持进度条
下载文档到电脑,查找使用更方便
还剩?页未读,继续阅读
播放器加载中,请稍候...
该用户其他文档
下载所得到的文件列表如何提高adc采样精度.doc
文档介绍:
如何提高ADC采样精度
一、减小电源噪声
从噪声角度讲,线性稳压器具有较好的输出。市电经降压、整流和滤波,再经过线性稳压器。强烈建议在整流输出端连接滤波电容。请参考线性稳压器的数据手册。如果使用开关型电源,建议使用一个线性稳压器为模拟部分供电。
建议在电源线和地线之间连接具有好的高频特性的电容,即在靠近电源一端应放置一个0.1μF和一个1至10μF的电容。
电容允许交流信号通过,小容量的电容过滤高频率的噪声,大容量的电容过滤低频率的噪声。通常瓷介电容具有较小的容值(1pF至0.1μF),和较小的耐压(16V至50V)。建议在靠近主电源(VDD和VSS)和模拟电源(VDDA和VSSA)管脚的地方,放置这样的瓷介电容。这样的电容可以过滤由PCB线路引出的噪声。小容值的电容可以响应电流的快速变化,并快速地放电适应快速的电流变化。
钽电容也可以与瓷介电容一道使用。可以使用大容值的电容(10μF至100μF)过滤低频率的噪声,通常可以使用电解电容。建议把它们放在靠近电源端。
可以使用在电源线上串联铁氧体电感滤除高频噪声。因为串联的电阻非常小,除非电流非常大,这个方法可以产生非常小的(可以忽略的)直流损失。在高频时,它的电阻很大。 STM32F10xxx端
多数的STM32F10xxx微控制器的VDD和VSS管脚都是互相靠近的,VREF+和VSSA也是靠近的。因此可以在非常靠近微控制器的地方放置一个电容器。每一对VDD和VSS管脚都需要使用单独的去藕电容器。
VDDA管脚必须连接到2个外部的去藕电容器(10nF瓷介电容+1μF的钽电容或瓷介电容)。参见图14和图15的去藕电路例子。
对于100脚和144脚封装的产品,可以在VREF+上连接一个外部的ADC的参考输入电压,从而改善对输入低电压的精度(参见2.2.4节)。在VREF+上的电压范围是2.4V至VDDA。如果在VREF+上单独提供参考电压,必须在这个管脚上连接2个电容器,10nF和1μF,而且VREF+不能超出2.4V至VDDA的范围。
2、电源稳压的建议
供电系统应该有好的线性和负载调节特性,因为ADC模块使用VREF+或VDDA作为模拟参考,数字
数值的输出是这个参考电压与模拟输入信号的比值,VREF+必须在各种负载情况下保持稳定。任何时候,不管因为开启了一部分的电路导致负载增加,电流的增加不应引起电压的下降。如果在宽的电流范围内能够保持电压的稳定,这样的电源具有好的负载调节特性。例如:LD电压调压器,在VIN从2.8V至16.5V的范围内(Iload = 10mA)的典型线性调节是0.035%,在Iload从0至1.5A的范围内的负载调节是0.2%(详见LD1086的数据手册)。
线性调节的数值越低,稳压性能越好。同样,负载调节数值越低,稳压性能越好,输出的电压越稳定。
还可以使用诸如LM236作为VREF+的参考电压,这是一个2.5V的电压参考二极管(详见LM236数据手册)。
3、消除模拟输入信号的噪声
平均值方法
平均值法是一个简单的技术,通过对一个模拟输入信号的多次采样和软件计算取平均值实现。这个技术有利于消除那些不频繁变化的模拟输入信号上的噪声。
平均值法需要在一个相同的模拟输入电压上进行多次采样,保证模拟输入信号在转换完成之前,保持在相同的电压,否则模拟输入的变化将会出现在结果数值中,从而引入新的误差。增加一个外部滤波器,使用一个外部滤波器可以消除高频噪声,没有必要使用昂贵的滤波器去处理超出需要频率之外的频率分量。因此,一个相对简单的具有阻断频率fC,刚好超过需要频率的低通滤波器,可以有效地限制噪声和假波。采样速率超过最高的需要频率即可,通常为2~5倍于fC。
注: 组成外部滤波器的R和C数值,应该满足2.2.5节和2.2.6节的要求。
4、将最大的信号幅度与ADC动态范围匹配
这个方法可以通过合理地选择参考电压或使用一个前级放大器,使用ADC的全量程输出,得到
最大可能分辨率,从而提高精度。
选择参考电压(仅适合于100脚和144脚封装的产品)
在要测量信号希望的范围内选择参考电压。如果要测量的信号有偏移,则参考电压也应该有相应的偏移。如果要测量的信号有由一个最大的幅度,则参考电压也应该有相应的最大幅值。这个参考电压与要测量信号的幅值匹配,就能够使用
ADC模块的全范围输出,得到最大的分辨率。
在100脚和144脚封装的STM32F10xxx产品中,ADC参考电压由外部的VREF+提供,VREF-管脚必须与地线相连。VREF+管脚为上述匹配方法提供了可能。
例如:如果要测量的信号在0V至2.5V之间变化,建议选用VREF+ = 2.5V;可以选用LM235作为参考电压(详见LM235的数据手册),下图示范了这些条件。
VREF+上的电压必须处于2.4V和VDDA之间。
使用前置放大器
如果要测量的信号太小(与ADC的测量范围相比),则最好使用一个外部的前级放大器,这个方法可以用于所有封装的STM32F10xxx产品,特别是那些没有VREF+管脚的封装。
例如:如果要测量的信号变化范围是0V至1V之间,而VDDA是3V,这个信号可以被放大,使它的峰-峰幅度与VDDA的数值相同,增益为3。图17示范了这个例子。
这个放大器可以把输入信号的范围转换至ADC模块的范围,它同样可以在输入信号与ADC输入之间引入偏移量。特别要注意设计这个放大器时不要引入额外的误差(如额外的偏移,放大镜增益的稳定性、线性度、频率响应等
5、模拟信号源的阻抗计算
假定最大允许的误差是1/4LSB,下面计算一下最大允许信号源的阻抗。 VC是内部CADC电容器上的电压(参见图9)。这样得到:误
差= VAIN – VC = ? LSB 图18
最差情况下的误差:VAIN = VREF+
令tS是采样时间。
tS = TS / fADC,其中TS是按周期计算的采样时间(1)
对于给定的tS,对应VAIN = VREF+的误差大于对应VAIN & VREF+时的误差,这是因为把CADC从0V充
电至VAIN,在VAIN = VREF+时需要比在VAIN & VREF+时需要更多的时间(参见图18)。因此VAIN = VREF+时是计算最大允许信号源阻抗时需要考虑的最坏情况。
● Rmax = (RAIN + RADC)max
● N是ADC的分辨率(对于STM32而言,N = 12) 这样得到: 。
综合表达式(1)、(2)和(3),我们得到:
对于TS = 7.5,fADC = 14MHz,CADC = 12pF和RADCmax = 1k?,在要求误差为
1/4 LSB时的最大允许信号源阻抗为:
即:RAINmax = 3.6k?1
内容来自淘豆网转载请标明出处. 上传我的文档
 下载
 收藏
如果需要外文文献,请发邮件,然后我下载了后上传上来:)
 下载此文档
正在努力加载中...
使用过采样技术提升+STM32+的+ADC+采样精度
下载积分:15
内容提示:使用过采样技术提升+STM32+的+ADC+采样精度
文档格式:PDF|
浏览次数:601|
上传日期: 10:44:28|
文档星级:
全文阅读已结束,如果下载本文需要使用
 15 积分
下载此文档
阅读此文档的用户还读了
使用过采样技术提升+STM32+的+ADC+采样精度
官方公共微信}

我要回帖

更多关于 ad采样精度怎么计算 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信