打印

max187使用问题

[复制链接]
1068|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xsgy123|  楼主 | 2013-12-28 19:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
max187使用外部基准电压,上电以后,DIN居然有4V多的电压,那里来的啊,都测过电路,没有短路的地方啊?
程序加进去总是读出4095这个数字,换了时序,不行,换AD也不行,没有示波器,只能靠数字判断,换了几次的程序逻辑,都是4095,程序如下,崩溃中请救救~

uint MAX187read(void)
{
   uchar H,L,i;
   uint count;   //16位变量
   MAX187_CS=0;  //低电平有效,开始转换
   _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
   MAX187_SK=1;
   MAX187_SK=0;
   H=0;     //高位变量清零
   for(i=0;i<4;i++)  //高4位
   {
      MAX187_SK=1;
      if(MAX187_DO) H|=0x01;    //位标量,如为1则H加1,如为0则跳过  
      MAX187_SK=0;
      if(i<3)H<<=1;
   }
   L=0;
   for(i=0;i<8;i++)  //低8位
   {
      MAX187_SK=1;
      if(MAX187_DO) L|=0x01;   //位标量,如为1则L加1,如为0则跳过   
      MAX187_SK=0;
      if(i<7) L<<=1;
   }
   delay(1);
   MAX187_CS=1;
   H&=0X0F;               //屏蔽高四位
   count=H*256+L;//高低八位合并  
  // count=H;
  // count=(count<<8)|L;   
   return count;
}

相关帖子

沙发
秋天落叶| | 2013-12-28 19:37 | 只看该作者
Din 4V? 你是说Ain吧?如果模拟输入超过了参考电压,那读到4095是正常的,先用个电阻拉到地看看

使用特权

评论回复
板凳
sinadz| | 2013-12-28 20:53 | 只看该作者
1 参考电压是否对?
2 时序上可能有问题, CLK拉低 CS拉低后检测DOUT直至高电平, 详见器件参考手册

使用特权

评论回复
地板
无冕之王| | 2013-12-28 21:03 | 只看该作者
sinadz 发表于 2013-12-28 20:53
1 参考电压是否对?
2 时序上可能有问题, CLK拉低 CS拉低后检测DOUT直至高电平, 详见器件参考手册 ...

楼上有道理。max187有内部参考源,如果外接,需要把shutdown悬空来关掉内部的。
很大可能是转换没完成就开始读了。你的时钟多少?几个nop可能不够8.5uS吧。还是按建议检测到Dout变高再开始读比较好

使用特权

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

本版积分规则

229

主题

2603

帖子

1

粉丝