li0713 发表于 2006-2-5 12:36:18

mega8的ADC问题, 跟万用表测得数据总是有20-40mv的误差

我做了个数据采集板,也就是将mega8采集的电压传到串口上。最近发现一个adc的问题,我采用的是将avcc和aref连接起来,并且接一100欧电阻和电容,程序主要代码如下:



// ADC initialization

// ADC Clock frequency: 125.000 kHz

// ADC Voltage Reference: AVCC pin

ADMUX=0x40;

ADCSRA=0xCE;



但最后采集的数据怎么跟万用表测得数据总是有20-40mv的误差,不知道问题出在哪里?那位碰到类是的问题?帮我考虑一下是什么问题?

例如: 电阻分压测其电压,理论值0.073V 万用表测得0.074V ,但用mega8测得的只有0.059V

谢谢!

wbear 发表于 2006-2-5 15:59:34

我也遇到类似的问题,不知道出现在那里,我一直都没有把这个问题解决?

HJJourAVR 发表于 2006-2-5 16:01:41

Vref稳定且准确?ADC的数值跟Vref有直接关系。

hotpower 发表于 2006-2-5 16:29:38

降速和2次采样相对准确些...

li0713 发表于 2006-2-5 20:00:28

没用的,速度降下来也一样的。他一直就比较低,而不是上下波动。

有谁有什么好的解决办法?双龙的 sl-mega8实验板也有这样问题

谢谢!!

violit 发表于 2006-2-5 20:16:04

既然是恒定的小一定的数值

那就加上他好了~~

最好在测试一下与电压的绝对值有无比例关系

hotpower 发表于 2006-2-5 20:22:02

加个104电容试试...2次采样是必须的.

li0713 发表于 2006-2-5 20:29:51

to hotpower 菜农

   104加了,在portc.0前加的,否则测出来的数据跳动比较大。

to violit

   测出来的电压比万用表测出来的电压不是小于一个恒定值,而是变化的。

我再想想其它办法!

hotpower 发表于 2006-2-5 20:44:52

跳动是正常的,但变化应该在允许的误差范围内...我用过M64以下很多的AVR.

基本都在误差范围内.



而且程序很关键...

violit 发表于 2006-2-5 21:08:24

变化的

如果是与绝对电压成线性变化到简单,那估计是由于芯片内部的线路带来的分压

再一个转换也不能太慢,不然采样电容会泄露,使很多片M8都这样么?

hotpower 发表于 2006-2-5 21:18:01

采样确实不能太慢...我在LPC2132上实验过...

li0713 发表于 2006-2-5 21:27:04

明天我把单片机程序和上位机程序贴出来在看看!!

痛苦!!!

谢谢楼上的兄弟们。有空到武汉来,我请大家到汤狲湖吃鱼丸子!!

哈哈哈!!!

avrboy 发表于 2006-2-5 21:42:07

用外部的基準源比較穩的!!

xcm_gz 发表于 2006-2-6 04:17:44

把供电源换成电池试一下,或许你会发现电源是很重要的。似乎是AVR的AD对电源比较苛刻。

HJJourAVR 发表于 2006-2-6 08:46:33

AVR的ADC不可能有那么大的误差,问题应该在你的身上。



1 Vref稳定且准确?

ADC=VIN*1024/VREF

[采用的是将avcc和aref连接起来,并且接一100欧电阻和电容]??

2 如果有ADC 端口被用作数字输出,那么必须保证在转换进行过程中它们不会有电平的切换

Gorgon_Meducer 发表于 2006-2-6 09:10:11

建议用长度为8的数组做一个缓冲,并求平均值,要稳定地多

li0713 发表于 2006-2-6 21:37:05

谢谢楼上的各位兄弟,问题得到解决1!

如HJJourAVR所言,我实际测量了一下,从7805出来的电压是5.08,然后将

ADC=VIN*(VREF/1023)得到的值跟万用表的值就基本相同了。哈哈!

但就是有点不清楚,怎么7805出来的电压是5.08V而不是所说的5.00V呢?

再次感谢楼上的各位兄弟!!
-----此内容被li0713于2006-02-06,21:41:02编辑过

avrboy 发表于 2006-2-6 23:16:57

你不知道什麼叫理想環境嗎?
页: [1]
查看完整版本: mega8的ADC问题, 跟万用表测得数据总是有20-40mv的误差