搜索
bottom↓
回复: 12

m16ADC转换的误差

[复制链接]

出0入0汤圆

发表于 2008-7-15 13:14:44 | 显示全部楼层 |阅读模式
采用单通道输入模式采样稳定电压,此时,M16引脚上电压为4.16V,得到采样值为844(外部稳压源,5.0V),于是计算得电压(N*5/1024)为4.12V--为什么相差有这么大呢?
测试多种电压值,发现采样算得值均偏小较大,为什么呢.
请马老师指教.
晶振:7.3782M,分频系数:64

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2008-7-16 15:57:39 | 显示全部楼层
如果所有的结果都是固定的偏小,首先检查你的参考电压的准确值是多少。

另外注意程序中的计算方法,如果采用整形变量计算的话采用4字节变量,计算公式为:(N * 5000)/ 1024 ,得到结果显示时,将小数点左移3位。

出0入0汤圆

 楼主| 发表于 2008-7-16 17:50:47 | 显示全部楼层
谢谢马老师.
我重新阅读了您的<基于AVR 的单片嵌入式系统原理与实践应用>一书第十章(10-5,10-6),上面指明了"±2LSB 的绝对精度;",那么,这个结果实际上还是在精度范围之类的.根据10-17的提供的资料,参考了AVR 应用笔记AVR120的内容(误差分析与校正).校正之后结果准确得多了--不过只是对某个确定的板子某个确定的ADC通道有用,要校正所有板子的AI通道,实在是太麻烦,不适合批量生产.
问题来源于测温电路本身范围过大,导致精度不高,使得引脚上0.01V的误差都引起2摄氏度左右的误差--初期考虑不周所致,我还是回头改电路吧.

出0入4汤圆

发表于 2008-7-16 20:51:31 | 显示全部楼层
.

出0入4汤圆

发表于 2008-7-16 21:15:43 | 显示全部楼层
回复的时候出现传输错误,结果如上帖,不编辑了,直接跟上

lz所述问题有误
输入4.16V,参考电压5V,则计算理论AD值为4.16/5 = 0.832
0.832 * 1024 = 851.968 = 851~852
而lz转换所得844,误差达-7lsb!

既然知道avr的ad绝对精度为±2lsb,测出来的误差这么大了,还继续往后计算干啥?抓紧查查是电路还是器件有没有什么问题吧。

另外,既然avr的ad绝对精度±2lsb,则测量5V电压其误差为
2/1024 = 0.001953125
0.001953125*5 = 0.009765625V=0.01V
即5V参考电压下avr的测量精度在±0.01V范围内。

出0入0汤圆

发表于 2008-7-16 23:45:33 | 显示全部楼层
实际上在应用中AD的精度不单单看AD本身,要考虑很多的方面。

手册上已经给出了AVR的AD绝对精度为±2LSB,它包括了AD本身的各种误差,如果按这个理解,10位的AD可靠是8位。

另外就是你的参考电源,根据你的5V看,你没有使用专门的参考电压芯片(因为通常这些芯片为4.096v),那么你的参考电压的精度有1/1000吗?也就是要做到按10位精度的AD,参考电压的精度起码为5/1000 = 0.005v,7805的精度是做不到的(一般在0.3v范围),而且每片7805的输出电压也不同,加上系统里其它功率器件(LED,倾动电路等)的影响,这个5V的就不准确,而且波动也大,肯定影响了AD转换的精度。

还有在我的教材中谈到了其它几种因素,都影响AD的精度。

另外,你用10位AD,就是想达到1/1000的精度,那么从温度传感器到AD的收入,当中肯定有放大等模拟的调理电路,整个电路的这部分精度能达到1/1000吗?如果这个做不到,你就是使用16位的AD又有什么用处?

出0入0汤圆

 楼主| 发表于 2008-7-17 12:25:48 | 显示全部楼层
如马老师所估计的,参考电压为7805提供,与芯片为同一电源,实测精度不够,多在5.06V左右徘徊---考虑到电源的影响,这个误差还是在±2LSB范围之内的(这个条件我之前没有说清楚,谢谢guantingwei 的指点).测量电路是由与1K电阻串联之后的热电阻上的分压加跟随器之后直接接入AD通道,在这个电路中,电源的影响实际上抵消了(但依然受电源稳定性而影响精度,这个问题经软件滤波之后估计可以解决).关键是:这部分测量范围太大(理论上从零到无穷大),因此在平时使用的690~2500范围内达不到1/1000精度---正如马老师所言.
谢谢两位.
要想提高这部分的精度,或许需要改变运放处的电路结构了(依然分压),把跟随变为放大,使690~2500对应0~ACC.还有什么更好的方法吗?(其实测温要求不高,到0.1摄氏度就非常不错了).
附上原来不好的图以及准备的改进电路

(原文件名:不好的测温电路.JPG)

(原文件名:改进的测温电路.JPG)

出0入0汤圆

发表于 2008-7-17 12:34:29 | 显示全部楼层
恒定输入下AVR的10位ADC采样结果,一般抖动在二进制最后1位到2位,再大就有问题

出0入0汤圆

发表于 2008-7-17 12:37:13 | 显示全部楼层
我也做过类似的测温电路不过是用AD574 12位AD转换器,学校要求用PT100做测温元件,放大了10多倍感觉还是太小,而且电压有波动

出0入0汤圆

 楼主| 发表于 2008-7-17 13:21:54 | 显示全部楼层
【7楼】 feng_matrix        恒定输入下AVR的10位ADC采样结果,一般抖动在二进制最后1位到2位,再大就有问题

"再大"是指什么再大呢?这个抖动是由电源稳定性引起的还是说恒定输入会抖动而不恒定输入不抖动或更多?
抖动在1~2位恰恰是±2LSB所说明的吗?
我测的结果是不抖动但是各AD通道没有一致性,得不到相同的结果,只是结果的偏差不同.
请feng_matrix说明一下吧.

出0入0汤圆

发表于 2008-7-20 16:56:14 | 显示全部楼层
学习了。

出0入4汤圆

发表于 2008-7-20 18:02:30 | 显示全部楼层
绝对精度±2LSB,并不意味着测量时ad值要抖动,不是,这个绝对精度基本上是相对于每片具体的芯片的,除此,由于电压的抖动和量化误差,测量出来的ad值有可能会有抖动。

出0入0汤圆

 楼主| 发表于 2008-7-28 15:15:10 | 显示全部楼层
我在6楼第二幅图中有个电阻接错了,Ni1000处360k电阻应该与100k电阻并联而不是连接到地.
sorry
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-29 13:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表