电路设计论坛
直播中

恩可口

8年用户 686经验值
私信 关注
[问答]

将陀螺仪的输出电压进行AD转换发送给ARM,按照AD7694的时序进行读取,为什么读取的数值一直是0呢?

AD的精英们,我有问题需要解决,麻烦帮我看看 !
电路目的:将陀螺仪的输出电压进行AD转换发送给ARM
陀螺仪:ADXRS610
AD芯片:AD7694
陀螺仪和AD芯片的基准电压源:REF195
运放:AD8031
电路图如下:

其中AD7694的2号脚接入陀螺仪的输出信号(之间有AD8031运放连接),我按照AD7694的时序进行读取,为什么读取的数值一直是0呢?
我电路有问题导致采集到的就是0V?可是我用电压表测了AD7694的输入引脚电压的确有2.5v左右(陀螺仪不动输出信号就是2.5v)。
还是我读取时序有问题?可是我完全按照datasheet提供的时序写的,使用的是ti的LM3S9B92 ARM芯片,请看
//初始CNV  CLK  
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_4,0x00);                    //CNV=0
GPIOPinWrite(GPIO_PORTJ_BASE,GPIO_PIN_4,0x00);           //CLK=0
delayms(500);
//开始转换
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_4,GPIO_PIN_4);                    //CNV=1
delayus(50);
//转换结束
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_4,0x00);                     //CNV=0
delayus(50);
//连续读取16次DAT口数据
         for(i=0;i<16;i++)   
         {   
             GPIOPinWrite(GPIO_PORTJ_BASE,GPIO_PIN_4,GPIO_PIN_4);                                    //CLK=1      
             dump=(dump<<1);
             ISB=GPIOPinRead(GPIO_PORTJ_BASE,GPIO_PIN_3);                    //DATA 读取到的要么是0x00要么是0x08(因为在pin3口)
             SLR2016_display_num(ISB);            
             ISB=(ISB>>3);
                                                     
             ISB=ISB 0X01;
             dump|=ISB;
                                                     
             delayus(50);
             GPIOPinWrite(GPIO_PORTJ_BASE,GPIO_PIN_4,0x00);                                          //CLK=0              
             delayus(50);
         }
   
         dump=dump 0XFFFF;
        SLR2016_display_num(dump);                                                     //显示dump的数值 一直是0啊!!
请帮忙解答!!这个陀螺仪系统全部用的都是AD的产品!!不会不管吧 !!谢谢!!

更多回帖

发帖
×
20
完善资料,
赚取积分