请教大家pic16f887 AD采集问题???

[复制链接]
 楼主| kfawj 发表于 2009-3-10 09:45 | 显示全部楼层 |阅读模式
AD设置如下:<br />DC5V供电<br />ADCON1=0x80;<br />ANSEL=0x01;<br />不知道什么原因,AD&nbsp;总是有一个门槛电压20mV?<br />要输入电压大于这个值时才有AD采集值,而且线性关系比较好。<br />但如果采集的电压小于这个值则采集不到数据。<br />很是郁闷,请大家帮忙!!!谢谢啦。<br /><br />输入地与单片机地线最大压差0.7mV<br />这是我目前量到的地线最大压差<br />电源正压与电源输入正压没有量到有压差。<br />
 楼主| kfawj 发表于 2009-3-11 09:48 | 显示全部楼层

别沉底

自己顶<br />顶<br /><br />哪位可以帮帮忙呀?
xieyuanbin 发表于 2009-3-12 14:07 | 显示全部楼层

为什么有压差?你追究过吗?

AD以单片机地为0基准,以你选择的参考电压为+基准。
 楼主| kfawj 发表于 2009-3-13 14:53 | 显示全部楼层

地线有线阻呀

铜箔线不同的程序都会都压差,只不过是线的长短,及布线的是否更加合理?<br />如果没有压差铜箔可能就是超导了?<br />不知道这样说是不是正确?
jetson001 发表于 2009-3-13 16:13 | 显示全部楼层

...

地阻?<br />那也不用20mV!<br />绝对是0<br />你检查你的测量工具吧
 楼主| kfawj 发表于 2009-3-16 11:27 | 显示全部楼层

还没有?

因为我的表就是普通的万用表量得。最多算个参考值吧?<br />您说呢?<br />但如果说是干扰,我用普通的三节1.5V电池供电,仍然会有这个20mV<br />的东东。<br />AD只有一路。<br /><br />就为这事俺已郁闷n天。<br /><br /><br />我非感谢各位的帮助,同时希望更多的热心人指点迷津。<br /><br />谢谢啦!!
yewuyi 发表于 2009-3-16 17:03 | 显示全部楼层

很多问题。。。

分辨率:5V/1024=5MV<br />量化误差:正负1/2LSB<br />一般绝对精度按照2LSB推算的话,就有10MV了,你再有一个地线压差,再加上Vref也可能不准,再加上你程序也可能设置不对等等,所以。。。
兰天白云 发表于 2009-3-17 08:32 | 显示全部楼层

也许采样时间也不够,小电压没感觉了

  
 楼主| kfawj 发表于 2009-3-17 14:09 | 显示全部楼层

to:yewuyi

设置不对,很有可能。<br />请您帮助分析一下是哪里设置不对呢?<br />具体设置部分在楼顶已经有了。<br />而且电源输入部分也接了独石电容(104,101)<br />如果电源有问题是不是换电池就不应该再有类似的问题了呢?<br />我用3节普通电池试了一下,结果是一样了。只不过是电源的纹波不见了!<br />至于Vref您再看一下我的设置吧。<br /><br />谢谢您!如果您有什么怀疑的地方,我也可以把局部电路原理给你发过去好吗?<br /><br />至于程序,我随时可以贴上来,只要大家不烦!!!!!!!
 楼主| kfawj 发表于 2009-3-17 14:25 | 显示全部楼层

to:兰天白云

我也怀疑过这个问题。<br />我用的是内部晶振,还有,我用了12个NOP做为采样时间。<br />但是我记得算过,<br />我加过这样一条语句<br />byte&nbsp;i;<br />for(i=0;i&lt50;i++);<br />代替NOP,但也不管用。<br />这就让我更加郁闷了。<br /><br />我试图采集1023,采集成功。真是急死人啦。<br /><br />恳求各位也帮助想想这个问题吧。<br />辛苦各位,谢谢!!<br />
ijk 发表于 2009-3-18 13:52 | 显示全部楼层

芯片问题?

&nbsp;&nbsp;或许是那片芯片的问题?芯片ADC本身会有offset&nbsp;error.
yewuyi 发表于 2009-3-18 14:48 | 显示全部楼层

呵呵,还从来没用过什么NOP做采集时间的法子。。。

  
 楼主| kfawj 发表于 2009-3-25 11:45 | 显示全部楼层

to:yewuyi

用什么方法做采集时间呢?<br />可以介绍一下吗?
yewuyi 发表于 2009-3-25 21:34 | 显示全部楼层

~~

在典型的前后台系统中,可以这样做:后台执行信号采集程序时,启动AD转换完毕后立即切换过去,然后去执行其它任务,到下一个系统时钟到达时重复以上过程,如果你的系统时钟是1MS,那么就可以做到1KHZ左右的采集速度,呵呵,对于绝大多数系统来说,这个速度足够了。<br /><br /><br /><br />特殊情况例外,可再开帖。
 楼主| kfawj 发表于 2009-3-26 12:00 | 显示全部楼层

主意不错

有点操作系统的意思<br />时间片轮吗?(好玩儿,还没有试过)<br />这个20mV采集数据为零,真是教人郁闷。<br />虽然我也怀疑过电路,但如果是改电路可能就有点麻烦了!<br />因为我只负责程序,电路是另外一个(当然包括布板啦)。<br /><br />哪位老师还有不同的想法,还望讲出来!!!<br />我先谢谢啦。<br />说不定有什么办法就可以解决这个问题呢?!!!
xieyuanbin 发表于 2009-3-26 13:58 | 显示全部楼层

怀疑你的硬件系统干扰过大

你用1.5平方以上的电线将你的单片机地和电源地,单片机电源和电源正连起来,然后将你的信号地和电源地也连起来试试,如果电源线(包括地线)走得很细的话,很可能产生压差从而造成AD有误差.<br />另外AD对模拟信号的输入阻抗也比较敏感,输入阻抗过大会造成AD结果偏小,所以AD采样时间要符合输入阻抗的要求.
 楼主| kfawj 发表于 2009-3-30 13:53 | 显示全部楼层

to:xieyuanbin

同意你的说法。<br />完全有这个可能。<br />我先试一下加一个电压跟随,是不是可以解决这个问题?<br />谢谢啦!!!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

293

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

44

主题

293

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部