AD7765的数据输出口SDO输出全是1怎么办

按照芯片资料写的读时序函数,但不知为什么数据输出全是1,是不是得先对AD控制寄存器进行写操作?

用示波器测得读时序和SDO电平如下图

u32 ADC_Read(void)

{

          u8 i;

          u32 temp = 0;

  SCK = 0;

  delay_us(5);

          FSO = 1;

  SCK = 1;

  delay_us(5);

  SYNC = 0;

          SCK = 0;

          delay_us(5);

          SCK = 1;

          delay_us(1);

          FSO = 0;

          for(i=0;i<32;i++)

          {

                    delay_us(5);

                    SCK = 0;

                    temp<<=1;

                    if(SDO==1)

                              temp|=0x01;

                    else

                              temp&=~0x01;

                    delay_us(5);

                    SCK = 1;

          }

          delay_us(1);

          FSO = 1;

          return temp;

}

AD7765.pdf
Parents
  • 看了好多遍了,有的地方感觉还是很模糊,上边说SCO,FSO是作为输出,我也测的SCO是20MHZ,可是没有说明读数据时FSO到底是怎么拉低的,是内部自动的?芯片资料里没说。还有,在读数据时,是不是先要写控制寄存器指令呢,上边也没说。控制寄存器里有个位为:RD GAIN     Read gain. If this bit is set, the next read operation outputs the contents of the digital gain register. 我置位了也不行。  求大神帮忙呀!!!

Reply
  • 看了好多遍了,有的地方感觉还是很模糊,上边说SCO,FSO是作为输出,我也测的SCO是20MHZ,可是没有说明读数据时FSO到底是怎么拉低的,是内部自动的?芯片资料里没说。还有,在读数据时,是不是先要写控制寄存器指令呢,上边也没说。控制寄存器里有个位为:RD GAIN     Read gain. If this bit is set, the next read operation outputs the contents of the digital gain register. 我置位了也不行。  求大神帮忙呀!!!

Children
No Data