打印

AD7683与MCU通讯的问题

[复制链接]
1677|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);
}

ad7683.jpg (229.56 KB )

ad7683.jpg

相关帖子

沙发
au529|  楼主 | 2013-10-25 15:01 | 只看该作者
有人吗,大神帮忙看一看吧

使用特权

评论回复
板凳
li880wert| | 2013-10-25 15:21 | 只看该作者
DOUT IO 有没配置下拉输入

使用特权

评论回复
地板
au529|  楼主 | 2013-10-25 17:34 | 只看该作者
上拉,下拉,浮空输入,开漏输出,推挽输出,都试过了。
现在在调CS和MCLK的时间。

使用特权

评论回复
5
au529|  楼主 | 2013-11-18 16:57 | 只看该作者
后来更换了,换了个供应商,换了ic,有返回值了,测得非常准,谢谢大家。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

28

帖子

1

粉丝