黃蘇芳
摘? 要:針對目前批量RTC常溫校正流程復雜、精度低、每個廠家都要獨立設計一套等問題,筆者提出在芯片燒寫階段,由燒寫器完成RTC校正工作。這種方法的采用使得廠家不需要為RTC常溫校正專門設計一套軟件或專門購置一套工具,就可以滿足低成本、快速量產的需要。
關鍵詞:RTC;燒寫器;批量常溫補償
中圖分類號:TN98? ? ? 文獻標識碼:A 文章編號:2096-4706(2019)01-0030-03
Design and Implementation of RTC Correction Tool Based on Programmer
HUANG Sufang
(Hangzhou Vango Technologies,Inc,Hangzhou? 310000,China)
Abstract:In order to solve the problems of complex process,low precision and independent design for each manufacturer of batch RTC at room temperature correction,the author proposes that RTC correction should be completed by programmer in the chip burning stage. The adoption of this method makes it possible for the manufacturer to meet the needs of low cost and fast mass production without designing a set of software or purchasing a set of tools for RTC normal temperature calibration.
Keywords:RTC;programmer;batch normal temperature compensation
1? 校正原理
1.1? 晶振特性簡介
本文所介紹的RTC校正方法所涉及的數據與公式,均根據我們所使用的日本精工的晶體VT-200-F得到。
1.2? 晶體的振蕩頻率-溫度特性
根據音叉型石英晶體的振蕩頻率與溫度之間存在的關系(如圖1所示),在頂點溫度(即25℃)時,晶體的振蕩頻率偏差最小。溫度偏離頂點溫度越遠,則晶體的振蕩頻率偏差越大。晶體的振蕩頻率偏移率(ppm)與溫度之間存在如下關系:
1.3? 測溫度
目標芯片自帶溫度傳感器,可以測試溫度Tosc,但是由于芯片生產工藝偏差,每個芯片都存在差異,該Tosc與實際晶體溫度T存在常溫偏移。
2? 校正方案
根據式(2)可知,我們的主要目標是要獲取ΔT和Δftem,可以根據式(5)和式(6)計算。也就是說常溫(15℃至35℃)RTC校正目的就是獲取溫度的常溫偏移和標準秒脈沖的常溫頻率偏移率。其它條件都是已知的。
在常溫下,開啟目標芯片高精度秒脈沖輸出(未校正前),標準秒脈沖輸出比對。使用高頻工作的MCU(比如48M)的32位定時器分別捕獲目標芯片秒脈沖和標準秒脈沖。得到對應的秒脈沖的捕獲值N0和Nosc,帶入式(9),得到。將和獲取到的標準環境溫度T帶入式(6),計算Δftem。開啟目標芯片測溫功能,獲取目標芯片溫度Tosc,并將之與標準環境溫度值T比對,帶入式(5),計算出ΔT,將ΔT和Δftem通過燒寫接口寫入目標芯片的flash指定的infor區位置。客戶代碼可以從該地址獲取當前芯片的常溫偏移以及目標晶體的常溫偏移。全溫范圍的晶振頻率可以使用式(3)計算。
3? 硬件設計
如圖2硬件結構圖所示,本設計硬件結構包含ARM模塊、電源管理模塊、RTC模塊、測溫模塊和用戶界面模塊等。
3.1? ARM模塊
ARM模塊是芯片主控模塊,接收并長期存儲上位機軟件hex和配置參數,捕獲RTC芯片秒脈沖、目標芯片秒脈沖和目標芯片溫度值,計算出校正值,接收外界按鍵觸發。
ARM采用之前仿真器使用的LPC2148,由于LPC2148具備成熟的與目標芯片JTAG通訊設計,脫機下載模塊,LPC2148與PC間的USB通訊設計,可以縮短開發周期。
ARM與其它模塊接口:
(1)ARM通過USB與PC通訊,接收并長期存儲上位機軟件hex和配置參數;
(2)ARM通過IIC與RTC芯片通訊,配置RTC芯片,捕獲RTC芯片秒脈沖;
(3)ARM通過IIC與溫度芯片通訊,配置溫度芯片,測試溫度芯片溫度值,檢測目前測試環境溫度是否符合標準;
(4)ARM通過JTAG與目標芯片通訊,配置目標芯片,讀取目標芯片測溫值和捕獲目標芯片秒脈沖,完成對目標芯片進行脫機下載,將校正值寫入目標芯片的flash固定位置處;
(5)ARM通過按鍵、LED、蜂鳴器、液晶配置工作模式,響應啟動信息,提示當前狀態。
ARM使用到的資源:
(1)定時器0的定時功能,啟動按鈕按下后通過定時器實現運行燈交替閃爍;
(2)定時器1的兩個通道捕獲功能,同時捕獲兩路秒脈沖;
(3)四線普通IO口,實現與目標芯片的JTAG通訊;
(4)Flash功能,存儲目標芯片hex。
3.2? 電源管理模塊
(1)該系統采用5V電壓供電;
(2)通過SPX1117轉成3.3V提供給ARM、RTC芯片溫度芯片;
(3)通過IO口和MOS管對目標芯片板供電與否進行控制。由于需要在固定上電時間內完成溫度測試,并且出于對目標板接入和拔出過程的安全性考慮,需要控制對目標芯片的供電。在對目標板不供電的情況下將其插上,只有當啟動按鈕按下時,才對目標板供電,當測試完成時,對目標板斷電,取下目標板。電路如下:增加RC濾波電路,濾除由于開關電源目標板大電容充電帶來的電源抖動;通過LED燈提示當前對目標芯片板的供電狀態,同時它也是一個放電回路;可以安裝自恢復保險絲保護目標板短路帶來的風險;
(4)采用CAT1025芯片對電源進行管理,由于ARM工作電壓范圍為:3V~3.6V,當電源電壓低于3V時,復位ARM模塊;
(5)由于需要和PC機通訊,所以需要支持USB供電,USB提供5V電壓給該系統;
(6)在工人使用時,需要支持外部電源供電。外部電源通常有9V電壓和5V電壓兩種可選。由于9V電壓轉到5V電壓會產生較多熱量,不利于溫度測試。所以采用5V電壓的外部電源供電;
(7)USB的5V電壓電源和外部電源提供的5V電壓電源間經0.3V壓降的二極管隔離。防止外部電源倒灌到USB燒壞電腦主板;
(8)通過電源開關,控制該系統的電源開啟和斷開;
(9)使用自恢復保險絲,提供短路保護。
3.3? RTC模塊
RTC模塊采用美信公司DS3231芯片。DS3231是低成本、高精度I2C實時時鐘(RTC),具有集成的溫補晶振(TCXO)。該芯片輸出的1Hz方波在15℃至35℃范圍內精度為±2ppm,RTC跳差在0.1ppm,不同芯片間存在差異,需要通過軟件校正。
DS3231工作需要3.3V電壓。由于是模擬器件,所以需要對電源加濾波。在布板時,考慮電源電容與DS3231必須大面積接觸,保持暢通,否則將會影響RTC精準度。
RTC通過高速(400kHz)I2C接口與ARM通訊。DS3231可編程方波輸出,ARM配置輸出1Hz方波,送入ARM的捕獲口,進行標準秒脈沖捕獲。
帶有數字的溫度傳感器輸出,精度為±3℃,不能滿足我們的測溫精度要求。
3.4? 測溫模塊
TMP275是TI公司于2006年推出的一款低功耗的數字輸出溫度傳感器。在-20℃~100℃范圍內其精確度達±0.5℃,在采用12位可編程分辨率時,15℃至35℃范圍內精度跳差為0.0625℃,不同芯片間差異需要軟件校正。通過I2C與ARM通訊,ARM配置TMP275的工作模式,讀取溫度值。芯片采用小巧的8引腳MSOP封裝。接口設計簡單。由于ARM模塊功耗較高,工作電流約100mA,其芯片溫度比環境溫度高,并會影響周邊。但由于測溫模塊必須測試環境溫度,因此,在布板時應注意,將測溫模塊和ARM模塊間分開布置,然后將他們通過細線連接。
3.5? 用戶界面模塊
為了界面友好,設計時應提供蜂鳴器和LED指示燈,提示當前狀態。
(1)兩盞電源指示燈,采用紅色燈提示電源狀態,這兩盞燈分別為系統電源燈、目標板電源燈;
(2)三盞配置燈,為黃色。其中校正燈采用黃紅雙色燈,當校正按鈕按下后,它指示當前溫度狀況是否在規定溫度范圍內(15℃~35℃)。如果溫度超標就亮紅色燈,反之亮黃色燈。燈亮代表使用該功能;
(3)一盞忙碌燈,為黃色,當啟動按鈕按下,黃色忙碌燈亮滅交替閃爍。測試完成后,則忙碌燈滅;
(4)一盞狀態燈,為紅綠雙色燈,提示當前狀態。如果成功就顯示綠色,如果失敗就顯示紅色,并保持這種狀態,直到下一次啟動開始或者該系統斷電或復位。
蜂鳴器:
(1)失敗提示:嘀、嘀、嘀三聲;
(2)成功提示:嘀。
4? 軟件設計
4.1? 上位機軟件
上位機是一臺可以發出特定操控命令的計算機,通過操作預先設定好的命令,將命令傳遞給下位機,通過下位機來控制設備完成各項操作。上位機軟件是物聯網應用中收集感知節點信息、進行顯示、控制的應用控制臺。該設計由原來的脫機燒寫上位機軟件升級得到,主要改動為:增加7、8、9功能。
(1)傳輸用戶hex文件到ARM;
(2)傳輸頁操作信息;
(3)傳輸起始表號信息;
(4)傳輸CRC校驗信息;
(5)傳輸加密信息;
(6)讀固件版本號信息;
(7)讀標準表溫度信息;
(8)傳輸RTC配置信息到ARM;
(9)標準表標定功能(只對廠內生產人員和技術支持人員開放)。
4.2? 下位機軟件主流程
下位機軟件主流程是一個無限循環體,主要有以下模塊:
(1)上電自檢:檢測當前測溫芯片溫度和RTC芯片溫度;
(2)主循環檢測是否有USB命令,如果是,執行USB命令;
(3)主循環檢測用戶是否按下啟動按鈕,如果是,開始校正和下載。
4.3? 校正和下載流程
(1)對目標芯片供電;
(2)進行RTC測試之前的準備,如配置目標板秒脈沖輸出;
(3)通過測試模塊獲取環境溫度值,通過RTC模塊獲取RTC標準秒脈沖周期,通過目標板獲取目標板的秒脈沖周期,計算頻率偏移;
(4)燒寫代碼,并校驗;
(5)將RTC校正值寫入flash;
(6)停止對目標芯片供電;
(7)復位芯片,報測試結果。
5? 測試結果
通過在全溫度范圍內完成秒脈沖校正后的RTC計時誤差分析,情況如表1所示,在常溫條件下RTC秒脈沖輸出接近0.1ppm。
6? 結? 論
基于燒寫器的RTC校正工具能最大程度地滿足生產,其在支持下載的同時可以進行RTC校正,節省了設備和時間。對于生產效率的提高意義重大。
參考文獻:
[1] 鄧乾中.自校準實時時鐘RTC的研究和設計 [D].武漢:華中科技大學,2008.
[2] 張昭.一種溫度補償晶體振蕩器芯片的設計 [D].成都:四川大學,2006.