文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>uclinux的MAX197--A/D驱动调试

uclinux的MAX197--A/D驱动调试

时间:2009-03-08  来源:c5435

 

问题分析:向max197发送控制字0x40设置max197的工作模式为常规、操作内部时钟模式、内部控制采集、满量程电压为0-5v。正常的反映应该是max197的会发出一个中断。但是max197没有发出。

分析问题,可能产生的原因有:

1)                   44b0采用的是3.3v的工作电压,CS、WR高电平都是3.3V的,数据线也是3.3v的。而原来在单片机上都是5v的电压。

2)                   44b0的时钟周期比单片机快好多倍,max197接受没有这么快。

3)                   控制字没有发送成功。

4)                   芯片坏了。

5)                   供电电压低了。因为我采用的是arm板上的5v电压经过一个保护二极管的电压。

问题排查:

1.  查了资料max197的工作电压是4.75-5.25v。所以改到保护二极管前,问题依旧。

2.  查了max197的资料,并且询问了maxim公司的技术支持的工程师,他说datasheet芯片的参数绝对是真是的,而资料上的输入的高电平在2.4v以上就是高电平,低电平是低于0.8v就是低电平。所以这个也没有问题。

3.  CS,WR的脉冲宽度最小是80ns,44b0的CS,WR脉宽大盖在200ns,所以这点不会有问题。

4.  换了原来做好的水质检测仪上的好芯片,问题还在。

5.  分析时序:最开始我也曾注意到时序的问题,用了个循环,不停的发控制字,用示波器捕捉信号,CS和WR低电平都有2个,第一个低电平的时候发出的数据是40,第二个低电平发出的数据是00。我认为这是一个正确的工作时序,能够发出数据。

所有的问题排除之后今天又来分析时序。又重新做了51的板子来连接max197,用51分析时序。51的时序只有一个低电平,在一个低电平的时间内发送。Max197可以正常的产生中断。重新去分析时序。我发送0x4040。得到的结果和发0x40的时序是相同的。于是就试着发送0x400040。这个时候时序是第一个第二个低电平都是发送40产生了正常中断;44b0如果按照16位的模式的话,先发送低位然后发送高位的,也就是说0x00000040发送的时候第一个脉冲低8位的实际发的是40,第二个脉冲实际发出去的是00。改成0x400040,第一个第二个脉冲都是发的40,这个时候正常中断。再改成0x400000第一个是00,第二个是40,这个时候也是正常中断。综上所述: 必须在第二个电平发出的40控制字才可以正常中断。也就是说控制字必须写在高字段内才行。0x00400000;也就是说必须写在17—23位时,这个时候对应的DATA0—8第一次低电平发的时候0――7位,第二个低电平发的是17-23位就是40。这个时候就可以正常中断了。
相关阅读 更多 +
排行榜 更多 +
爱是小事最新版

爱是小事最新版

休闲益智 下载
悬案2刹那惊颤游戏

悬案2刹那惊颤游戏

冒险解谜 下载
几何飞行内购修改版

几何飞行内购修改版

飞行射击 下载