找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1280|回复: 3
打印 上一主题 下一主题
收起左侧

关于DS3231时钟芯片的OSF位问题

[复制链接]
跳转到指定楼层
楼主
我做了一个时钟,用的时钟芯片是DS3231,DS3231有钮扣电池供电,理论上时间会一直走不会停。
根据数据手册,寄存器中的OSF位是振荡器停止标志。


我在程序中写了一段代码,MCU通电时读取3231的OSF位,如果为1则认为3231为初次通电或中途断过电,就执行初始化动作(重新写入各设定参数和时间数据)。
------------------------------------
现在出现的问题是,系统有时无缘无故就被初始化了。
  • 我这段代码写入的时间数据很特殊(也只有这段程序会写这个特殊数据),很明显能看出来,MCU是读取了OSC位为1,然而重新写入了时间数据。
  • 不是单单某片DS3231不好,我做了两个不同的时钟,也都出现为个问题。
  • 似乎是在主电源断电(钮扣电池供电)期间出现的,我以前做的一个时钟是长期供电的,就没出现这个问题
  • 钮扣电池是焊接在电路板上的,不存在接触不良的情况。
-------------------------------------
现在要问的是,DS3231的OSF位是不是这么不稳定呢?还是说是什么因素导致我的DS3231不稳定?


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:16255 发表于 2023-10-31 10:52 | 只看该作者
目前我还没有弄清楚是什么原因引起的异常。现在是先删除那段检测OSF位的代码,时钟没有出现过意外复位。
回复

使用道具 举报

板凳
ID:883242 发表于 2023-10-31 13:06 | 只看该作者
先把判断OSF那段代码删除,观察时间是否正常,可以排查出DS3231的硬件问题,还是你的软件问题。
回复

使用道具 举报

地板
ID:16255 发表于 2023-11-3 09:50 | 只看该作者
Hephaestus 发表于 2023-10-31 13:06
先把判断OSF那段代码删除,观察时间是否正常,可以排查出DS3231的硬件问题,还是你的软件问题。

当前该段代码已经屏蔽,目前运行了十多天,未见异常复位的情况出现。
初步认定这个OSF位并不怎么靠谱,以后的程序就不添加这段代码了。
仔细思考一下,我这段代码的实际意义也不太大。时钟都已经断电停走了,时间都不准确了,再去挽救也挽救不回来了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表