AD7683与MCU通讯的问题

[复制链接]
2120|4
 楼主| au529 发表于 2013-10-24 15:05 | 显示全部楼层 |阅读模式
小弟最近在做一个项目,测麦克风输出的正弦波峰峰值。电路图如附件所示。
在通讯端口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);
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| au529 发表于 2013-10-25 15:01 | 显示全部楼层
有人吗,大神帮忙看一看吧
li880wert 发表于 2013-10-25 15:21 | 显示全部楼层
DOUT IO 有没配置下拉输入
 楼主| au529 发表于 2013-10-25 17:34 | 显示全部楼层
上拉,下拉,浮空输入,开漏输出,推挽输出,都试过了。
现在在调CS和MCLK的时间。
 楼主| au529 发表于 2013-11-18 16:57 | 显示全部楼层
后来更换了,换了个供应商,换了ic,有返回值了,测得非常准,谢谢大家。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

28

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部