已回答假定已回答

AD7694电路及串口传输

jeffupright 在 2014-4-9 詢問的問題
最後回覆由adi_yu於2015-1-20提供

AD的精英们,我有问题需要解决,麻烦帮我看看 !

电路目的:将陀螺仪的输出电压进行AD转换发送给ARM

陀螺仪:ADXRS610

AD芯片:AD7694

陀螺仪和AD芯片的基准电压源:REF195

运放:AD8031

电路图如下:

232.jpg

其中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的产品!!不会不管吧 !!谢谢!!

結果