本帖最后由 幸福至上 于 2015-3-17 12:21 编辑
最近采用STC15F408AD单片机设计了一块板子,其中的一个功能是进行AD采样转换(10位:0-1023),要转换的信号来源之一是隔离电流检测芯片ACS712的输出,该部分的具体电路图如下图1所示:
图1
图中关于ACS712的接法完全是按照手册上所推荐的连接到AD的连接方式,C21是放置在接近AD输入管脚的位置的。该芯片正常工作,输出符合芯片手册的描述,用电压表实测是:平时无电流通过时,VIOUT输出电压为2.5V,经过一个开关二极管后,大概是2.31V的电压,也就是AD采样转换到的电压值应该是2.31V左右,这是关于硬件设计的介绍。在调试中,我设定每隔100ms采样一次电压,共采集10s(100次),软件中进行AD采样时的程序完全参考STC官方程序,并且做了滤除采样头几次数据和剩余数据做平均处理的算法。测试完成后的数据,会通过串口打印出来。然后遇到的奇特现象如下:
1、如果C21的104的电容接上的话,那么进行AD转换时所得到的转换值出现这样一个现象:第一次测试时,100个数据从前往后是:840-->721,对应的电压值大概是:4.10V-->3.52V,过了大概1分钟,再次测试,100个数据从前往后依次是:518-517之间,对应的电压值大概是:2.53V。再后面的测试基本就稳定在这个数值了。作为对比,如果去掉C21的104电容,则无论什么时候测试,其电压转换值则是:514-519之间,转换值有波动很正常,因为少了一个电容平滑变化。但也说明了刚开始的时候由于该电容的充电,导致了采集数值的偏差很大。但即便这样,到最后的采样数值也是不对的,应该对应的电压值为2.31V,采样值大概为:478左右。
2、作为测试1的对比,我在测试的时候,一直把电压表接入到D10的阴极和GND之间,此时电压表读数为2.31V,再进行AD转换测试,采集出来的100个数值则基本在477-479之间波动了,对应的电压值就正好是3.21V,说明此时AD采样就工作正常了。相对于测试1所描述的,只是多了一个地方:将电压表串到AD输入和地之间,我猜测可能是因为电压表起了一个泄流的作用,不知道是否如此?
第一次设计AD接口电路,有很多需要注意的地方还不太清楚,麻烦大家根据以上所说帮我分析下,指出其中需要改正的地方。先谢谢了~~
现在通过更换硬件器件测试,又有了一些新的变化,去掉了D10这个二极管后(C21有接104电容),ACS712的输出通过一个2KΩ电阻之后,就直接接AD输入了,这下子的测试结果大概在517和518之间波动了,算下来的话,还是比理想值:514多了3-4个读数,这个是正常情况还是不正常情况哦?还有为什么去掉D10,转换结果就正常了许多......?
|