AD采集的值怎么都在变化?

[复制链接]
4034|28
 楼主| thf2008 发表于 2009-8-17 10:20 | 显示全部楼层 |阅读模式
大家好,我现在用AD的例程采集数据,每次采集的数据都不一样是怎么回事?希望高手指点一下!
linhai2009 发表于 2009-8-17 10:25 | 显示全部楼层
只要相差不是太大,我觉得应该是外部模拟量不稳定的问题
dewlife 发表于 2009-8-17 16:21 | 显示全部楼层
肯定会有些波动
 楼主| thf2008 发表于 2009-8-18 12:16 | 显示全部楼层
我测得是稳定的核心电压1.8V,是不是设置不对?
 楼主| thf2008 发表于 2009-8-18 12:17 | 显示全部楼层
我的AD初始化程序如下:
void InitAdc(void)
{
        unsigned int i;
        
        

        
        AdcRegs.ADCTRL1.bit.RESET=1;
        NOP;
        AdcRegs.ADCTRL1.bit.RESET=0;
        AdcRegs.ADCTRL1.bit.SUSMOD=3;
        AdcRegs.ADCTRL1.bit.ACQ_PS=0;
        AdcRegs.ADCTRL1.bit.CPS=0;
        AdcRegs.ADCTRL1.bit.CONT_RUN=0;
        AdcRegs.ADCTRL1.bit.SEQ_CASC=1;
        
        AdcRegs.ADCTRL3.bit.ADCBGRFDN=3;
        for(i=0;i<10000;i++)        NOP;
        AdcRegs.ADCTRL3.bit.ADCPWDN=1;
        for(i=0;i<5000;i++)        NOP;
        AdcRegs.ADCTRL3.bit.ADCCLKPS=15;
        AdcRegs.ADCTRL3.bit.SMODE_SEL=1;
        
//        AdcRegs.MAX_CONV.bit.MAX_CONV=15;
    AdcRegs.ADCMAXCONV.all=0x0001;
        AdcRegs.ADCCHSELSEQ1.bit.CONV00=0;
        AdcRegs.ADCCHSELSEQ1.bit.CONV01=0;

        
//        AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1;
//        AdcRegs.ADC_ST_FLAG.bit.INT_SEQ2_CLR=1;        
        
        AdcRegs.ADCTRL2.bit.EVB_SOC_SEQ=0;
        AdcRegs.ADCTRL2.bit.RST_SEQ1=0;
        AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1;
        AdcRegs.ADCTRL2.bit.INT_MOD_SEQ1=0;
        AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1=0;
        AdcRegs.ADCTRL2.bit.EXT_SOC_SEQ1=0;
        AdcRegs.ADCTRL2.bit.RST_SEQ2=0;
        AdcRegs.ADCTRL2.bit.SOC_SEQ2=0;
        AdcRegs.ADCTRL2.bit.INT_ENA_SEQ2=0;
        AdcRegs.ADCTRL2.bit.INT_MOD_SEQ2=0;
        AdcRegs.ADCTRL2.bit.EVB_SOC_SEQ2=0;
        AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;
        
        
        
        
}
linhai2009 发表于 2009-8-18 16:20 | 显示全部楼层
相差有多大?
shuizhongyu 发表于 2009-8-18 19:08 | 显示全部楼层
造成采集值变化一般为几个方面,基准电压不稳,或者频繁切换通道,另一重要的单片机要选择一个稳定的时钟信号
 楼主| thf2008 发表于 2009-8-21 20:46 | 显示全部楼层
没有频繁切换频道,你指的基准电压是指哪个?1.8V吗?
 楼主| thf2008 发表于 2009-8-23 13:14 | 显示全部楼层
回复六楼的:简直就是乱码,不过有数据显示!
linhai2009 发表于 2009-8-23 13:31 | 显示全部楼层
你直接将输入引脚接地,看看得到的数值是多少?你可能没有校准吧
sinadz 发表于 2009-8-23 18:22 | 显示全部楼层
应该是你外部模拟量在不断变化,是正常的,你可以用软件处理一下,取平均值,估计会稳定点
 楼主| thf2008 发表于 2009-8-24 10:38 | 显示全部楼层
是这样的,当我输入为了零的时候,数据很准确没有变化,只要不是零数据总是在变化,而且我再内部用了16次滤波处理!
 楼主| thf2008 发表于 2009-8-24 10:38 | 显示全部楼层
如果我把输入端接地的话采集的数据就不在变化拉!
linhai2009 发表于 2009-8-24 11:18 | 显示全部楼层
你接的是一个稳压源??
 楼主| thf2008 发表于 2009-8-25 08:35 | 显示全部楼层
我接的是另一块板子的电源,那个板子也是采集卡,那个采集卡可以采集到1.8的数据!我觉得是软件有问题,哪里有好的AD初始化程序?
linhai2009 发表于 2009-8-25 09:18 | 显示全部楼层
你确定那个板子的电源稳定吗?
jettlau 发表于 2009-8-27 18:03 | 显示全部楼层
肯定会有些波动
 楼主| thf2008 发表于 2009-8-30 09:29 | 显示全部楼层
那个板子的电源是这个板子提供的,是稳定的
linhai2009 发表于 2009-8-30 11:42 | 显示全部楼层
你采集的就是DSP坐在的板子上的1.8V稳压电源??
 楼主| thf2008 发表于 2009-8-31 12:57 | 显示全部楼层
是通过运放处理后的1.8的信号!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

221

主题

2024

帖子

2

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