各位老师:您们好,我用microchip的开发板(上面的芯片是30f6014a),与ADS7825通过并行的方式来连接,使用的是内部参考电压,ADS7825的供电是通过一个明纬开关电源15v再接一个7805后稳压来了一个5v供ADS7825,连接电路是ADS7825pdf文档推荐的标准并口输出连接电路,开发板上的6014a通过串口将采集的数据长传到PC机,发现采集电压不稳定,大概有20到30mv的跳动,数字量有70到80的跳动,请问这是什么问题?问题出在哪里,另外,软件上,该延时等待的地方都加了延时,比如当刚BUSY变高后,延时等一会,当BYTE刚变0时,延时等待一会,当BYTE刚变1时延时等一会,也就是说在软件上还有哪里还有优化的地方?硬件上有什么地方要改?请指教,谢谢!
我将电路原理图上传了,请大家看看,另外我还想问问如果一个AD采集芯片采集的好的话,是否采集的数字量变化很小的,比如采集的数字量是124,然后跳到就是在123,124,125,左右跳动,因为我以前用C语言采集过研华的PCL813板(AD芯片是AD574是12位)当时的采集的效果就是数字量跳动就是1到3个字,而有的人说多采几次取平均或滤波,但是我们是要用AD采集来做实时测控用的,不可能去采很多次去平均的,也就是10ms或5ms时采集到的马上就要去参与PID运算进而控制执行机构的,所以AD采集非常关键,每次要求又快又准,又稳定才好,请教各位老师,有什么好的建议或方法?谢谢!
我现在的采集频率是1s一次,如果好了再改到5ms一次,到时是4个通道一起采集,现在试验ADS7825在试验板上上先试验一个通道,1s一次,现将采集时的程序代码贴上,请各位老师指正一下,如果是软件里是否有什么错误:
A1=0; //选择是AI0通道
A0=0;
RC=0;
RC=0; //保证一定的宽度
RC=0;
RC=1;
ADWait=0;
while(BUSY==0)
{
ADWait+=1;
if(ADWait>=1000)
{
ADWait=0;
break;
}
}
for(i=0;i<200;i++); //刚转换完,稍等一会
ADH=0; //ADH和ADL是16位无符号整数
ADL=0;
BYTE=0;
for(i=0;i<200;i++); //稍等一会
ADH=PORTB;
ADH=ADH>>8;
BYTE=1;
for(i=0;i<200;i++); //稍等一会
ADL=PORTB;
ADL=ADL>>8;
AD[0]=ADH;
AD[0]=AD[0]<<8;
AD[0]+=ADL;