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