已回答假定已回答

关于AD7683与MCU通讯的问题

waxm 在 2013-10-24 詢問的問題
最後回覆由adi_rock於2013-10-29提供

小弟最近在做一个项目,测麦克风输出的正弦波峰峰值。电路图如附件所示。

在通讯端口DCLK DOUT CS都接有上拉电阻至+5V。

现在存在的问题是CS和DCLK两个引脚都有按照datasheet的时序来配置,

DOUT引脚却没有检测到输出的高低电平波形。

请高手帮忙看看问题出在哪里。部分代码如下:

u16 AD7683_Dataread(void)

{

unsigned char i;

unsigned int  dataread;

 

dataread=0x0000;

GPIO_SetBits(GPIOB, GPIO_Pin_15);                      //CS=1

Delay_Us(100);

GPIO_ResetBits(GPIOB, GPIO_Pin_15);            //CS=0

 

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

   {

          GPIO_SetBits(GPIOB, GPIO_Pin_13);           //DCLK=1

    Delay_Us(100);

          GPIO_ResetBits(GPIOB, GPIO_Pin_13);            //DCLK=0

            Delay_Us(100);

          }

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

   {

          GPIO_SetBits(GPIOB, GPIO_Pin_13);           //DCLK=1

    Delay_Us(100);

          GPIO_ResetBits(GPIOB, GPIO_Pin_13);            //DCLK=0          采下降沿的数据

          Delay_Us(100);

          if(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_14))  //read  DOUT

          {

            dataread=dataread&0xfffe;

 

           }

          else

          {

           dataread=dataread|0x0001;

          }

 

    dataread<<=1;

          // Delay_Us(100);

   }

   GPIO_SetBits(GPIOB, GPIO_Pin_13);           //DCLK=1

    Delay_Us(100);

   //GPIO_ResetBits(GPIOB, GPIO_Pin_13);                                                                        

   Delay_Us(100);

  GPIO_SetBits(GPIOB, GPIO_Pin_15);                      //CS=1

  return (dataread);

}

附件

結果