标题: 关于DS3231时钟芯片的OSF位问题 [打印本页]

作者: mengsiu    时间: 2023-10-10 11:01
标题: 关于DS3231时钟芯片的OSF位问题
我做了一个时钟,用的时钟芯片是DS3231,DS3231有钮扣电池供电,理论上时间会一直走不会停。
根据数据手册,寄存器中的OSF位是振荡器停止标志。


我在程序中写了一段代码,MCU通电时读取3231的OSF位,如果为1则认为3231为初次通电或中途断过电,就执行初始化动作(重新写入各设定参数和时间数据)。
------------------------------------
现在出现的问题是,系统有时无缘无故就被初始化了。-------------------------------------
现在要问的是,DS3231的OSF位是不是这么不稳定呢?还是说是什么因素导致我的DS3231不稳定?



作者: mengsiu    时间: 2023-10-31 10:52
目前我还没有弄清楚是什么原因引起的异常。现在是先删除那段检测OSF位的代码,时钟没有出现过意外复位。
作者: Hephaestus    时间: 2023-10-31 13:06
先把判断OSF那段代码删除,观察时间是否正常,可以排查出DS3231的硬件问题,还是你的软件问题。
作者: mengsiu    时间: 2023-11-3 09:50
Hephaestus 发表于 2023-10-31 13:06
先把判断OSF那段代码删除,观察时间是否正常,可以排查出DS3231的硬件问题,还是你的软件问题。

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




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1