版主
  
主题
帖子
积分34308
阅读权限200
注册时间2008-11-22
最后登录1970-1-1
在线时间 小时
|
本帖最后由 litchiate 于 2011-1-27 23:35 编辑
AVR + ds12b887 ,在avr外部复位时经常发生ds12b887数据错乱. 最常见的就是 秒位变零.
51上没发现过这个问题.
avr上电没有问题.
只有在avr RST引脚引起的复位才会出现问题.
推测秒位变零的原因是在复位过程中外部干扰引起ds12b887误将数据写入, 秒位的地址是0,数据也为零,符合avr复位时引脚高阻的特性.
曾经尝试过的办法:开启BOD,12b887写入脚引脚(WR)上拉. 地址锁存脚下拉. 其中有效的只有断开上拉后的写入(WR)引脚.
后来在12b887 WR脚,对地并联一 104电容.结果发现写入不起作用. 后将电容换成152后正常.
累死了. 一晚上再搞这个.
总结下, avr 连接ds12x887在外部复位时经常出现数据错乱的现象,解决方法:将WR引脚上拉,并与地之间并联一小电容.
-------------------------------------------------
之前买的 DS12B887 ,几块钱的二手货,放了也快一年了. 拿出来玩玩.
昨天,今天 读了2天的手册. 晚上开始写程序. 写了发现读出来的数据乱七八糟, 怀疑时序问题, 找了半天都没让它正常显示, 后来发现写进去的数据再读出来总是会少4,
换个PORT,直接正常了. 晕倒.
后来一看出问题的那个port 的第三位没焊好.
找出问题了.然后扔一边,明天继续玩.
那个DS12B887 电池还有电.还能用一阵子. 手里还有10个, 改天把它和 DS1302 还有 GPS 放一起,对照下. 到底能差多少.
分别为
年 月 日 星期
时 分 秒
闹钟的 时分秒
控制寄存器ABCD
最后一个128,说明内部锂电还能用. |
|