|
|
我做了一個時鐘,用的時鐘芯片是DS3231,DS3231有鈕扣電池供電,理論上時間會一直走不會停。
根據(jù)數(shù)據(jù)手冊,寄存器中的OSF位是振蕩器停止標(biāo)志。
我在程序中寫了一段代碼,MCU通電時讀取3231的OSF位,如果為1則認(rèn)為3231為初次通電或中途斷過電,就執(zhí)行初始化動作(重新寫入各設(shè)定參數(shù)和時間數(shù)據(jù))。
------------------------------------
現(xiàn)在出現(xiàn)的問題是,系統(tǒng)有時無緣無故就被初始化了。- 我這段代碼寫入的時間數(shù)據(jù)很特殊(也只有這段程序會寫這個特殊數(shù)據(jù)),很明顯能看出來,MCU是讀取了OSC位為1,然而重新寫入了時間數(shù)據(jù)。
- 不是單單某片DS3231不好,我做了兩個不同的時鐘,也都出現(xiàn)為個問題。
- 似乎是在主電源斷電(鈕扣電池供電)期間出現(xiàn)的,我以前做的一個時鐘是長期供電的,就沒出現(xiàn)這個問題
- 鈕扣電池是焊接在電路板上的,不存在接觸不良的情況。
-------------------------------------
現(xiàn)在要問的是,DS3231的OSF位是不是這么不穩(wěn)定呢?還是說是什么因素導(dǎo)致我的DS3231不穩(wěn)定?
|
|