ADI 技术
直播中

杜亚琼

7年用户 171经验值
私信 关注
[问答]

AD7694电路及串口传输

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

回帖(14)

张虎豹

2018-12-11 10:52:50
您好,您的问题已经提交给ADI相关专家,将邀请专家尽快回答您的问题。谢谢!
举报

周伟

2018-12-11 11:00:22
您好!
建议您检查时序信号,可使用示波器测量通信时序信号,并与数据手册中相关时序图进行对比检查。
举报

李岩

2018-12-11 11:16:42
引用: 213123d 发表于 2018-12-11 16:59
您好!
建议您检查时序信号,可使用示波器测量通信时序信号,并与数据手册中相关时序图进行对比检查。

我遇到的问题跟jeffupright一样,CS和clk波形如下,SDO无输出,求解
举报

李岩

2018-12-11 11:25:24
请问你后来怎么解决的?我也遇到这样的问题
举报

更多回帖

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