RTC-溫度補償

迷霧綠洲發表於2018-09-23

溫度補償需求產生的原因

在不同溫度下晶振輸出時鐘產生偏差,作為RTC就是要靠這個晶振來計數去計時,晶振輸出的週期數量不夠或者過多都會導致時間產生偏差。
我們可以計算得到晶振偏差帶來的時間偏差,使用32.768kHZ 時鐘來計數,晶片極端溫度120度情況下是300PPM,這樣每天的秒數是sec = 24x60x60=86400 ,每天偏差的時間就是sec *300PPM = 86400x300/1000000=25.92 這樣可以看出來每天偏差幾乎是半分鐘了。

溫度補償方法分類

溫度補償一般可以使用的方法分為兩類:

  1. 內部溫度感測器的方法
    使用內部整合的溫度感測器測量晶片溫度,在RTC計數時增加或者減少計數器進位的統計門限,例如每秒的計數器就不是32768而是增加了300PPM的32778。這樣時間增長的速度就會和常溫下一致了。
    問題來了
    晶片溫度就一定等於晶振溫度麼?肯定是不等於的,晶片和晶振是分離的,晶片上執行的程式的負荷大小都會影響晶片溫度,晶振一般不會受影響,通過晶片溫度估計晶振溫度看來也是不可行了,所以這種方法也就是簡單場景下的無奈之舉。
  2. 外部溫度感測器的方法
    內部的不行就用外部的吧,直接把溫度感測器貼到晶振上,這種方法會好一些,但是還是會有溫度感測器自身
    的不一致性性和分壓電阻的精度問題會影響溫度測量的準確性,進而影響到時間的精度。

溫度補償的操作方法

獲取全溫度範圍的頻偏曲線

一般測量晶振我們都是通過高低溫箱這樣的裝置提供環境,測量一些溫度環境下的頻率偏差,但是這些裝置也不是能夠給與所有溫度環境的,一般最低也就零下三十度,最高零上90度,再高也就不準或維持不住。
我們獲取的資料一般是這樣的
頻偏資料
描點圖
在這裡插入圖片描述
為了獲得整個溫度下的值我們需要藉助工具進行資料擬合
簡單看下應該是三次的多項式就夠了,擬合後的曲線在這裡插入圖片描述
這樣我們就獲取了所有溫度下的一個公式,進而能得到所有溫度下的頻偏。

相關文章