当前位置: 代码迷 >> 单片机 >> MAX187岂有此理中,有请飘过的各路神仙拯救迷途的人
  详细解决方案

MAX187岂有此理中,有请飘过的各路神仙拯救迷途的人

热度:21   发布时间:2016-04-28 15:08:01.0
MAX187莫名其妙中,有请飘过的各路神仙拯救迷途的人
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;
}
------解决方案--------------------
1 参考电压是否对?
2 时序上可能有问题, CLK拉低 CS拉低后检测DOUT直至高电平, 详见器件参考手册

------解决方案--------------------
引用:
1 参考电压是否对?
2 时序上可能有问题, CLK拉低 CS拉低后检测DOUT直至高电平, 详见器件参考手册

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