GD32F303的RTC模塊框圖如下圖所示,RTC時鐘源可選擇HXTAL/128、LXTAL或IRC40K,一般為了實現(xiàn)更精準的RTC時間,MCU系統(tǒng)均會外掛32.768KHz LXTAL低頻晶振,但由于低頻晶振負阻抗較大,不容易起振,若外部電路布線、匹配電容選擇以及驅(qū)動模式配置不合適,可能會存在啟動或運行過程中LXTAL停振的風險,當LXTAL停振后,RTC將會面臨時間停止的狀況,此時我們應該如何處理?
1、首先我們需要優(yōu)化LXTAL部分硬件電路,避免啟動及運行過程中低頻晶振停振,低頻晶振的選擇、晶振電路的layout、匹配電容的選擇、MCU驅(qū)動模式的配置,都會影響低頻晶振工作的穩(wěn)定性,我們后續(xù)會專門開一講來進行講解;
2、增加代碼冗余操作,提高系統(tǒng)穩(wěn)定性,可軟件上檢測低頻晶振是否正常,異常后可將RTC時鐘切換到內(nèi)部低頻時鐘,檢測低頻晶振是否正常的方法可選擇以下兩種:(1)選擇一個timer定時1s讀取RTC時間,如果連續(xù)3S讀取RTC時間均為同一個數(shù)值,此時可判斷LXTAL停振;(2)可通過RTC寄存器時鐘同步來進行判斷,RTC計數(shù)值會在每個RTC時鐘的上升沿進行內(nèi)部更新,并與APB1時鐘進行同步,軟件上可首先清除RSYNF同步標志位,然后等待其置位,如果LXTAL停振,RSYNF同步標志將無法置位,此時增加超時判斷,可判斷LXTAL時鐘停振。
以上即為本期講解,如有建議或問題歡迎評論區(qū)討論!
-
單片機
+關注
關注
6037文章
44558瀏覽量
635236 -
嵌入式
+關注
關注
5082文章
19123瀏覽量
305151 -
晶振
+關注
關注
34文章
2866瀏覽量
68033 -
RTC
+關注
關注
2文章
538瀏覽量
66522
發(fā)布評論請先 登錄
相關推薦
評論