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
  • 我看评估版上的FSO,SDO,SCO等都接了0r的电阻我的板子上没接,影响大吗?

    评估板程序用什么软件打开,我用记事本打开了一些看了看如:

    AD7760.c中 long sample( ADI_CED1 ced, long board_id )里有很多定义的函数

    error = ced.manual_send_to_ced( board_id, 0x0010, send_array,size_of_send_array );我找不到他原始定义的地方,没法看硬件端口操作啊

    module spi

    (

                input arst,

                input spi_clk,

                // SPI signals

                // Data input from CPLD

              output reg SPI_SEL1,

                // Serial Data

              output reg SPI_MOSI,

                // Serial Clock

              output SPI_SCK,

                // Communication with Parallel block

              input spi_enable,

              input [15:0] spi_register

      );

    没找到read时FSO怎么拉低读数据的,我是用的KEI MDK4写程序的,对于编程还了解的不太深入,希望更进一步指点