基于溫度補償RTC模塊的晶體晶振參考程序說明
來源:http://m.11ed.cn 作者:金洛鑫電子 2019年09月20
說到帶有溫度補償性能的器件,首先想到大多數都是溫補振蕩器,這也是比較知名的一種電子元器件了,但是RTC實時時鐘也同樣可以參與溫度補償設計,而且帶有溫度補償的實時時鐘參考方案里,也有幾顆不同的晶體或振蕩器加持.晶振本身就是一種用于時鐘的頻率組件,基本上帶有基準時鐘模塊的產品都需要用到,所謂的溫度補償簡單的說,就是當周圍溫度驟然上午或下降,超過本身的溫度范圍,會利用自身的精準性和補償功能,讓周圍溫度回歸到正常的范圍內.
實時時鐘(RTC)用于許多需要跟蹤時間和日期信息的應用中.將專用RTC器件添加到電路板的常見解決方案會增加BOM成本并增加電路板空間.更好,更具成本效益的替代方案是將RTC功能實現到微控制器中,該微控制器也執行其他有用的任務.溫度補償實時時鐘(TC-RTC)參考設計是一個完整的RTC解決方案,包括實現具有全時鐘和日歷功能以及溫度補償的RTC所需的所有固件和硬件.與涉及提供類似功能的專用RTC的解決方案相比,該解決方案可顯著節省成本.
TC-RTCRD固件實現以下功能:
1.實時時鐘,計算秒,分,小時,日期,星期幾,月和年,閏年補償有效期至2099年
2.溫度引起的晶振頻率變化的自動時間補償
3.56字節NVRAM,數據存儲在內部閃存中
4.SMBus/I2C接口或UART接口,具體取決于加載的固件
5.1/2Hz速率的方波輸出信號
硬件概述:
TC-RTC參考設計硬件實現為評估板,如圖1所示.使用連接到定時器輸入的外部32kHz晶振作為RTC的時鐘源.RTC評估板提供兩個接口-UART和SMBus/I2C. 這是一款小型混合信號MCU,具有豐富的功能集.下面列出了本參考設計中使用的MCU的功能:
1.高速8051內核,25MHz時鐘,可提供高達25MIPS的吞吐量
2.8kB閃存(在系統可編程)和256字節內部數據RAM
3.25MHz內部振蕩器和外部晶振/石英晶體振蕩器輸入
4.8位500kspsADC
5.片上溫度傳感器
6.硬件增強的UART和SMBus串口
7.三個通用16位計數器/定時器
8.使用定時器和外部時鐘源的實時時鐘模式
有關該MCU的更多詳細信息,請參閱本設計中使用的C8051F300MCU的引腳連接如圖2所示.電路板原理圖和材料清單包含在”溫度補償實時時鐘參考設計套件用戶指南”中.
圖2.TC-RTCC8051F300MCU引腳連接
導致石英晶體頻率偏差的主要參數如下:
1.環境溫度
2.晶瑩剔透
3.供電電壓
其中,影響晶體頻率的主要因素是環境溫度.圖3顯示了諧振器頻率隨溫度變化的曲線圖.從拋物線曲線可以看出,如果溫度從室溫值(25°C)升高或降低,RTC將浪費時間.注意,RTC永遠不會有由溫度變化(即增益時間)引起的正誤差,因為最大頻率是室溫.
圖3.拋物線溫度曲線
最大頻率變化約為-0.04ppm/ºC2.因此,頻率偏差可表示如下:
△f/f=0.04ppmx(△T)2
△T=環境溫度-25ºC
計算時間補償:
TC-RTC參考設計固件每分鐘重復以下步驟一次,以計算和累計丟失的時間.
1.ADC用于測量片內溫度傳感器的芯片溫度.”3.3.計算環境溫度”描述了所涉及的計算.
2.然后使用ADC測量的值計算以ppm為單位的偏差,并將結果存儲在存儲器中.這表示需要補償的微秒數.
在24小時結束時,總累積誤差被加到RTC時間以完成補償過程.假設溫度在一分鐘內沒有廣泛變化.片上溫度傳感器產生的電壓輸出與'F300芯片的絕對溫度成正比,如圖4所示.該電壓與芯片溫度之間的典型關系如下所示=×TEMPc+897mV
VTEMP是溫度傳感器電壓輸出(mV)
TEMPC是模具溫度(ºC) RTC寄存器和非易失性用戶RAM:
圖5顯示了RTC寄存器和NVRAM的地址.RTC寄存器存儲當前時間和日期信息.這些寄存器保存在'F300器件內部易失性RAM中. TC-RTC還提供一個56字節的用戶NVRAM,存儲在'F300設備內部閃存中.這可以用作通用非易失性存儲區域.Flash NVRAM的當前值始終鏡像在RAM中的56字節陣列中.這是因為'F300閃存只能在512字節的頁面中擦除.因此,將一個或多個字節寫入NVRAM是一個三步過程-首先將字節寫入RAM陣列,擦除Flash頁面,將56字節陣列從RAM復制到閃存.
該NVRAM的一個有用的應用是在電源故障之前存儲時間和日期信息.存儲的信息稍后可用于調試或其他目的.為此,應監控電源線,一旦檢測到跌落,應從RTC寄存器讀取時間和日期信息并寫入NVRAM.這應該由外部設備管理,而不是由TC-RTC固件自動完成.
圖5.RTC和NVRAM寄存器
ADC配置:
ADC配置為使用溫度傳感器作為正輸入,接地作為負輸入.VDD用作參考有源晶振電壓,SAR轉換時鐘設置為5MHz.可編程增益放大器(PGA)設置為增益2.通過收集和平均溫度傳感器輸出的65536(64k)樣本,執行過采樣以提高測量精度.首次對TC-RTC板供電-在加載固件后,執行1點偏移校準,如下所示:
1.等待15秒(浸泡時間).這允許模具加熱到正常的操作溫度.
2.使用上述ADC設置測量溫度傳感器輸出.注意:校準測量假設芯片溫度為28ºC.
3.將測量值存儲在非易失性閃存中.
定時器配置:
'F300MCU有三個通用定時器.所有這三個定時器都由TC-RTC固件使用.定時器配置并用于以下目的:
1.Timer0-用于提供SMBusSCL低超時.
2.Timer1-用作UART波特率發生器,或用于SMBus空閑超時(SCL高)檢測.
3.Timer2-它使用外部振蕩器作為時鐘源,用于RTC時間測量.
4.4.UART接口
TC-RTC提供的UART接口是一個簡單的2線接口,僅使用TXD和RXD線路.它支持三個命令.
SMBus界面:
可以進行兩種類型的數據傳輸:從主發送器到尋址的從接收器(WRITE)的數據傳輸,以及從尋址的從發送器到主接收器(READ)的數據傳輸.主器件啟動兩種類型的數據傳輸,并在SCL上提供串行時鐘脈沖.SMBus接口可以作為主設備或從設備運行,并且支持同一總線上的多個主設備.如果兩個或多個主設備嘗試同時啟動數據傳輸,則采用仲裁方案,其中單個主設備總是贏得仲裁.
典型的SMBus事務包括START條件后跟地址字節(Bits7-1:7位從機地址;Bit0:R/W方向位),一個或多個字節數據和STOP條件.在高SCL期間,必須通過低SDA確認(通過主機或從機)接收的每個字節(參見圖6).如果接收設備沒有ACK,則發送設備將讀取NACK(不確認),其在高SCL期間是高SDA. TC-RTC固件使用SMBus接口作為從器件,從器件地址為0xD0.可以通過修改”F30x_TCRTC_Interface.h”中的SLA_ADD宏定義來更改此設置.
實時時鐘(RTC)用于許多需要跟蹤時間和日期信息的應用中.將專用RTC器件添加到電路板的常見解決方案會增加BOM成本并增加電路板空間.更好,更具成本效益的替代方案是將RTC功能實現到微控制器中,該微控制器也執行其他有用的任務.溫度補償實時時鐘(TC-RTC)參考設計是一個完整的RTC解決方案,包括實現具有全時鐘和日歷功能以及溫度補償的RTC所需的所有固件和硬件.與涉及提供類似功能的專用RTC的解決方案相比,該解決方案可顯著節省成本.
TC-RTCRD固件實現以下功能:
1.實時時鐘,計算秒,分,小時,日期,星期幾,月和年,閏年補償有效期至2099年
2.溫度引起的晶振頻率變化的自動時間補償
3.56字節NVRAM,數據存儲在內部閃存中
4.SMBus/I2C接口或UART接口,具體取決于加載的固件
5.1/2Hz速率的方波輸出信號
硬件概述:
TC-RTC參考設計硬件實現為評估板,如圖1所示.使用連接到定時器輸入的外部32kHz晶振作為RTC的時鐘源.RTC評估板提供兩個接口-UART和SMBus/I2C. 這是一款小型混合信號MCU,具有豐富的功能集.下面列出了本參考設計中使用的MCU的功能:
1.高速8051內核,25MHz時鐘,可提供高達25MIPS的吞吐量
2.8kB閃存(在系統可編程)和256字節內部數據RAM
3.25MHz內部振蕩器和外部晶振/石英晶體振蕩器輸入
4.8位500kspsADC
5.片上溫度傳感器
6.硬件增強的UART和SMBus串口
7.三個通用16位計數器/定時器
8.使用定時器和外部時鐘源的實時時鐘模式
有關該MCU的更多詳細信息,請參閱本設計中使用的C8051F300MCU的引腳連接如圖2所示.電路板原理圖和材料清單包含在”溫度補償實時時鐘參考設計套件用戶指南”中.
圖2.TC-RTCC8051F300MCU引腳連接
1.環境溫度
2.晶瑩剔透
3.供電電壓
其中,影響晶體頻率的主要因素是環境溫度.圖3顯示了諧振器頻率隨溫度變化的曲線圖.從拋物線曲線可以看出,如果溫度從室溫值(25°C)升高或降低,RTC將浪費時間.注意,RTC永遠不會有由溫度變化(即增益時間)引起的正誤差,因為最大頻率是室溫.
圖3.拋物線溫度曲線
△f/f=0.04ppmx(△T)2
△T=環境溫度-25ºC
計算時間補償:
TC-RTC參考設計固件每分鐘重復以下步驟一次,以計算和累計丟失的時間.
1.ADC用于測量片內溫度傳感器的芯片溫度.”3.3.計算環境溫度”描述了所涉及的計算.
2.然后使用ADC測量的值計算以ppm為單位的偏差,并將結果存儲在存儲器中.這表示需要補償的微秒數.
在24小時結束時,總累積誤差被加到RTC時間以完成補償過程.假設溫度在一分鐘內沒有廣泛變化.片上溫度傳感器產生的電壓輸出與'F300芯片的絕對溫度成正比,如圖4所示.該電壓與芯片溫度之間的典型關系如下所示=×TEMPc+897mV
VTEMP是溫度傳感器電壓輸出(mV)
TEMPC是模具溫度(ºC) RTC寄存器和非易失性用戶RAM:
圖5顯示了RTC寄存器和NVRAM的地址.RTC寄存器存儲當前時間和日期信息.這些寄存器保存在'F300器件內部易失性RAM中. TC-RTC還提供一個56字節的用戶NVRAM,存儲在'F300設備內部閃存中.這可以用作通用非易失性存儲區域.Flash NVRAM的當前值始終鏡像在RAM中的56字節陣列中.這是因為'F300閃存只能在512字節的頁面中擦除.因此,將一個或多個字節寫入NVRAM是一個三步過程-首先將字節寫入RAM陣列,擦除Flash頁面,將56字節陣列從RAM復制到閃存.
該NVRAM的一個有用的應用是在電源故障之前存儲時間和日期信息.存儲的信息稍后可用于調試或其他目的.為此,應監控電源線,一旦檢測到跌落,應從RTC寄存器讀取時間和日期信息并寫入NVRAM.這應該由外部設備管理,而不是由TC-RTC固件自動完成.
圖5.RTC和NVRAM寄存器
ADC配置為使用溫度傳感器作為正輸入,接地作為負輸入.VDD用作參考有源晶振電壓,SAR轉換時鐘設置為5MHz.可編程增益放大器(PGA)設置為增益2.通過收集和平均溫度傳感器輸出的65536(64k)樣本,執行過采樣以提高測量精度.首次對TC-RTC板供電-在加載固件后,執行1點偏移校準,如下所示:
1.等待15秒(浸泡時間).這允許模具加熱到正常的操作溫度.
2.使用上述ADC設置測量溫度傳感器輸出.注意:校準測量假設芯片溫度為28ºC.
3.將測量值存儲在非易失性閃存中.
定時器配置:
'F300MCU有三個通用定時器.所有這三個定時器都由TC-RTC固件使用.定時器配置并用于以下目的:
1.Timer0-用于提供SMBusSCL低超時.
2.Timer1-用作UART波特率發生器,或用于SMBus空閑超時(SCL高)檢測.
3.Timer2-它使用外部振蕩器作為時鐘源,用于RTC時間測量.
4.4.UART接口
TC-RTC提供的UART接口是一個簡單的2線接口,僅使用TXD和RXD線路.它支持三個命令.
SMBus界面:
可以進行兩種類型的數據傳輸:從主發送器到尋址的從接收器(WRITE)的數據傳輸,以及從尋址的從發送器到主接收器(READ)的數據傳輸.主器件啟動兩種類型的數據傳輸,并在SCL上提供串行時鐘脈沖.SMBus接口可以作為主設備或從設備運行,并且支持同一總線上的多個主設備.如果兩個或多個主設備嘗試同時啟動數據傳輸,則采用仲裁方案,其中單個主設備總是贏得仲裁.
典型的SMBus事務包括START條件后跟地址字節(Bits7-1:7位從機地址;Bit0:R/W方向位),一個或多個字節數據和STOP條件.在高SCL期間,必須通過低SDA確認(通過主機或從機)接收的每個字節(參見圖6).如果接收設備沒有ACK,則發送設備將讀取NACK(不確認),其在高SCL期間是高SDA. TC-RTC固件使用SMBus接口作為從器件,從器件地址為0xD0.可以通過修改”F30x_TCRTC_Interface.h”中的SLA_ADD宏定義來更改此設置.
正在載入評論數據...
相關資訊
- [2024-03-12]FCD-Tech新品FBT0503微型高穩定...
- [2024-03-12]FCD-Tech頻率控制元器件產品F25...
- [2024-03-11]QVS石英晶體數據手冊QPM2-21AF1...
- [2024-03-11]QVS新產品QCT95-CU3S-26.000發布...
- [2024-03-08]IQD幾皮法會破壞你的計時準確性...
- [2024-03-05]GEYER頻率控制元器件產品
- [2024-03-04]Jauch推出JTSxxHC系列可滿足Str...
- [2024-03-02]NEL超低相位噪聲O-CS8系列O-CS8...