實測STM32的RTC,什麼校準都不做,不斷電,半年後快了13分鐘

【測試結果】
TOOL的RTC時鐘一直都是通過上位機這裏手動校準的,這次做了了實驗,測試期間不做任何校準,看看半年後效果。

測試是從去年的9月29號開始

截至到今年的4月5號,快了13分鐘


【誤差原因】

因爲晶振對溫度敏感,下面是典型的溫度對晶振影響:

STM32支持LSI內部低速時鐘或者LSE外置低速時鐘,使用外部就要接32768Hz的晶體。

一個月的典型誤差50秒左右。


【校準】

以外置RTC  DS3231爲例,精度是:
Accuracy ±2ppm from 0°C to +40°C        ---- 每個月30天算的最大誤差是2*10^-6 * 24 * 60 *60 * 30 = 5.184秒
Accuracy ±3.5ppm from -40°C to +85°C  ---- 每個月30天算的最大誤差是3.5*10^-6 * 24 * 60 *60  * 30 = 9.072秒

使用STM32內部RTC不行,白天溫度不穩定的話,當天的誤差差不多就有1-2秒。主要是晶振不是溫補的。

ST提供了一些方案,但是不實用:

方法1:Smooth digital calibration

這種方法使用比較麻煩,當前提供的案例需要用戶使用超高精度的信號時鐘,精確到幾個ppm,發送這個信號給板子做校準。然後示波器測量實際的輸出效果來確實是否採用這個校準值。



方法2: RTC時鐘同步

官方提供的例子沒什麼參考價值,倒騰了高精度的HSE來實現。

方法3: 使用50Hz/60Hz高精度參考時鐘輔助

這個實用性也有點差。

3、當前推薦方案

(1)使用外置溫補晶振,但價格略高,10塊錢左右:

(2)使用自帶溫補的RTC芯片。

【RTC校準軟件包】

https://www.st.com/en/embedded-software/x-cube-rtc.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章