黃蘇芳
摘? 要:針對(duì)目前批量RTC常溫校正流程復(fù)雜、精度低、每個(gè)廠家都要獨(dú)立設(shè)計(jì)一套等問(wèn)題,筆者提出在芯片燒寫階段,由燒寫器完成RTC校正工作。這種方法的采用使得廠家不需要為RTC常溫校正專門設(shè)計(jì)一套軟件或?qū)iT購(gòu)置一套工具,就可以滿足低成本、快速量產(chǎn)的需要。
關(guān)鍵詞:RTC;燒寫器;批量常溫補(bǔ)償
中圖分類號(hào):TN98? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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? 晶振特性簡(jiǎn)介
本文所介紹的RTC校正方法所涉及的數(shù)據(jù)與公式,均根據(jù)我們所使用的日本精工的晶體VT-200-F得到。
1.2? 晶體的振蕩頻率-溫度特性
根據(jù)音叉型石英晶體的振蕩頻率與溫度之間存在的關(guān)系(如圖1所示),在頂點(diǎn)溫度(即25℃)時(shí),晶體的振蕩頻率偏差最小。溫度偏離頂點(diǎn)溫度越遠(yuǎn),則晶體的振蕩頻率偏差越大。晶體的振蕩頻率偏移率(ppm)與溫度之間存在如下關(guān)系:
1.3? 測(cè)溫度
目標(biāo)芯片自帶溫度傳感器,可以測(cè)試溫度Tosc,但是由于芯片生產(chǎn)工藝偏差,每個(gè)芯片都存在差異,該Tosc與實(shí)際晶體溫度T存在常溫偏移。
2? 校正方案
根據(jù)式(2)可知,我們的主要目標(biāo)是要獲取ΔT和Δftem,可以根據(jù)式(5)和式(6)計(jì)算。也就是說(shuō)常溫(15℃至35℃)RTC校正目的就是獲取溫度的常溫偏移和標(biāo)準(zhǔn)秒脈沖的常溫頻率偏移率。其它條件都是已知的。
在常溫下,開(kāi)啟目標(biāo)芯片高精度秒脈沖輸出(未校正前),標(biāo)準(zhǔn)秒脈沖輸出比對(duì)。使用高頻工作的MCU(比如48M)的32位定時(shí)器分別捕獲目標(biāo)芯片秒脈沖和標(biāo)準(zhǔn)秒脈沖。得到對(duì)應(yīng)的秒脈沖的捕獲值N0和Nosc,帶入式(9),得到。將和獲取到的標(biāo)準(zhǔn)環(huán)境溫度T帶入式(6),計(jì)算Δftem。開(kāi)啟目標(biāo)芯片測(cè)溫功能,獲取目標(biāo)芯片溫度Tosc,并將之與標(biāo)準(zhǔn)環(huán)境溫度值T比對(duì),帶入式(5),計(jì)算出ΔT,將ΔT和Δftem通過(guò)燒寫接口寫入目標(biāo)芯片的flash指定的infor區(qū)位置??蛻舸a可以從該地址獲取當(dāng)前芯片的常溫偏移以及目標(biāo)晶體的常溫偏移。全溫范圍的晶振頻率可以使用式(3)計(jì)算。
3? 硬件設(shè)計(jì)
如圖2硬件結(jié)構(gòu)圖所示,本設(shè)計(jì)硬件結(jié)構(gòu)包含ARM模塊、電源管理模塊、RTC模塊、測(cè)溫模塊和用戶界面模塊等。
3.1? ARM模塊
ARM模塊是芯片主控模塊,接收并長(zhǎng)期存儲(chǔ)上位機(jī)軟件hex和配置參數(shù),捕獲RTC芯片秒脈沖、目標(biāo)芯片秒脈沖和目標(biāo)芯片溫度值,計(jì)算出校正值,接收外界按鍵觸發(fā)。
ARM采用之前仿真器使用的LPC2148,由于LPC2148具備成熟的與目標(biāo)芯片JTAG通訊設(shè)計(jì),脫機(jī)下載模塊,LPC2148與PC間的USB通訊設(shè)計(jì),可以縮短開(kāi)發(fā)周期。
ARM與其它模塊接口:
(1)ARM通過(guò)USB與PC通訊,接收并長(zhǎng)期存儲(chǔ)上位機(jī)軟件hex和配置參數(shù);
(2)ARM通過(guò)IIC與RTC芯片通訊,配置RTC芯片,捕獲RTC芯片秒脈沖;
(3)ARM通過(guò)IIC與溫度芯片通訊,配置溫度芯片,測(cè)試溫度芯片溫度值,檢測(cè)目前測(cè)試環(huán)境溫度是否符合標(biāo)準(zhǔn);
(4)ARM通過(guò)JTAG與目標(biāo)芯片通訊,配置目標(biāo)芯片,讀取目標(biāo)芯片測(cè)溫值和捕獲目標(biāo)芯片秒脈沖,完成對(duì)目標(biāo)芯片進(jìn)行脫機(jī)下載,將校正值寫入目標(biāo)芯片的flash固定位置處;
(5)ARM通過(guò)按鍵、LED、蜂鳴器、液晶配置工作模式,響應(yīng)啟動(dòng)信息,提示當(dāng)前狀態(tài)。
ARM使用到的資源:
(1)定時(shí)器0的定時(shí)功能,啟動(dòng)按鈕按下后通過(guò)定時(shí)器實(shí)現(xiàn)運(yùn)行燈交替閃爍;
(2)定時(shí)器1的兩個(gè)通道捕獲功能,同時(shí)捕獲兩路秒脈沖;
(3)四線普通IO口,實(shí)現(xiàn)與目標(biāo)芯片的JTAG通訊;
(4)Flash功能,存儲(chǔ)目標(biāo)芯片hex。
3.2? 電源管理模塊
(1)該系統(tǒng)采用5V電壓供電;
(2)通過(guò)SPX1117轉(zhuǎn)成3.3V提供給ARM、RTC芯片溫度芯片;
(3)通過(guò)IO口和MOS管對(duì)目標(biāo)芯片板供電與否進(jìn)行控制。由于需要在固定上電時(shí)間內(nèi)完成溫度測(cè)試,并且出于對(duì)目標(biāo)板接入和拔出過(guò)程的安全性考慮,需要控制對(duì)目標(biāo)芯片的供電。在對(duì)目標(biāo)板不供電的情況下將其插上,只有當(dāng)啟動(dòng)按鈕按下時(shí),才對(duì)目標(biāo)板供電,當(dāng)測(cè)試完成時(shí),對(duì)目標(biāo)板斷電,取下目標(biāo)板。電路如下:增加RC濾波電路,濾除由于開(kāi)關(guān)電源目標(biāo)板大電容充電帶來(lái)的電源抖動(dòng);通過(guò)LED燈提示當(dāng)前對(duì)目標(biāo)芯片板的供電狀態(tài),同時(shí)它也是一個(gè)放電回路;可以安裝自恢復(fù)保險(xiǎn)絲保護(hù)目標(biāo)板短路帶來(lái)的風(fēng)險(xiǎn);
(4)采用CAT1025芯片對(duì)電源進(jìn)行管理,由于ARM工作電壓范圍為:3V~3.6V,當(dāng)電源電壓低于3V時(shí),復(fù)位ARM模塊;
(5)由于需要和PC機(jī)通訊,所以需要支持USB供電,USB提供5V電壓給該系統(tǒng);
(6)在工人使用時(shí),需要支持外部電源供電。外部電源通常有9V電壓和5V電壓兩種可選。由于9V電壓轉(zhuǎn)到5V電壓會(huì)產(chǎn)生較多熱量,不利于溫度測(cè)試。所以采用5V電壓的外部電源供電;
(7)USB的5V電壓電源和外部電源提供的5V電壓電源間經(jīng)0.3V壓降的二極管隔離。防止外部電源倒灌到USB燒壞電腦主板;
(8)通過(guò)電源開(kāi)關(guān),控制該系統(tǒng)的電源開(kāi)啟和斷開(kāi);
(9)使用自恢復(fù)保險(xiǎn)絲,提供短路保護(hù)。
3.3? RTC模塊
RTC模塊采用美信公司DS3231芯片。DS3231是低成本、高精度I2C實(shí)時(shí)時(shí)鐘(RTC),具有集成的溫補(bǔ)晶振(TCXO)。該芯片輸出的1Hz方波在15℃至35℃范圍內(nèi)精度為±2ppm,RTC跳差在0.1ppm,不同芯片間存在差異,需要通過(guò)軟件校正。
DS3231工作需要3.3V電壓。由于是模擬器件,所以需要對(duì)電源加濾波。在布板時(shí),考慮電源電容與DS3231必須大面積接觸,保持暢通,否則將會(huì)影響RTC精準(zhǔn)度。
RTC通過(guò)高速(400kHz)I2C接口與ARM通訊。DS3231可編程方波輸出,ARM配置輸出1Hz方波,送入ARM的捕獲口,進(jìn)行標(biāo)準(zhǔn)秒脈沖捕獲。
帶有數(shù)字的溫度傳感器輸出,精度為±3℃,不能滿足我們的測(cè)溫精度要求。
3.4? 測(cè)溫模塊
TMP275是TI公司于2006年推出的一款低功耗的數(shù)字輸出溫度傳感器。在-20℃~100℃范圍內(nèi)其精確度達(dá)±0.5℃,在采用12位可編程分辨率時(shí),15℃至35℃范圍內(nèi)精度跳差為0.0625℃,不同芯片間差異需要軟件校正。通過(guò)I2C與ARM通訊,ARM配置TMP275的工作模式,讀取溫度值。芯片采用小巧的8引腳MSOP封裝。接口設(shè)計(jì)簡(jiǎn)單。由于ARM模塊功耗較高,工作電流約100mA,其芯片溫度比環(huán)境溫度高,并會(huì)影響周邊。但由于測(cè)溫模塊必須測(cè)試環(huán)境溫度,因此,在布板時(shí)應(yīng)注意,將測(cè)溫模塊和ARM模塊間分開(kāi)布置,然后將他們通過(guò)細(xì)線連接。
3.5? 用戶界面模塊
為了界面友好,設(shè)計(jì)時(shí)應(yīng)提供蜂鳴器和LED指示燈,提示當(dāng)前狀態(tài)。
(1)兩盞電源指示燈,采用紅色燈提示電源狀態(tài),這兩盞燈分別為系統(tǒng)電源燈、目標(biāo)板電源燈;
(2)三盞配置燈,為黃色。其中校正燈采用黃紅雙色燈,當(dāng)校正按鈕按下后,它指示當(dāng)前溫度狀況是否在規(guī)定溫度范圍內(nèi)(15℃~35℃)。如果溫度超標(biāo)就亮紅色燈,反之亮黃色燈。燈亮代表使用該功能;
(3)一盞忙碌燈,為黃色,當(dāng)啟動(dòng)按鈕按下,黃色忙碌燈亮滅交替閃爍。測(cè)試完成后,則忙碌燈滅;
(4)一盞狀態(tài)燈,為紅綠雙色燈,提示當(dāng)前狀態(tài)。如果成功就顯示綠色,如果失敗就顯示紅色,并保持這種狀態(tài),直到下一次啟動(dòng)開(kāi)始或者該系統(tǒng)斷電或復(fù)位。
蜂鳴器:
(1)失敗提示:嘀、嘀、嘀三聲;
(2)成功提示:嘀。
4? 軟件設(shè)計(jì)
4.1? 上位機(jī)軟件
上位機(jī)是一臺(tái)可以發(fā)出特定操控命令的計(jì)算機(jī),通過(guò)操作預(yù)先設(shè)定好的命令,將命令傳遞給下位機(jī),通過(guò)下位機(jī)來(lái)控制設(shè)備完成各項(xiàng)操作。上位機(jī)軟件是物聯(lián)網(wǎng)應(yīng)用中收集感知節(jié)點(diǎn)信息、進(jìn)行顯示、控制的應(yīng)用控制臺(tái)。該設(shè)計(jì)由原來(lái)的脫機(jī)燒寫上位機(jī)軟件升級(jí)得到,主要改動(dòng)為:增加7、8、9功能。
(1)傳輸用戶hex文件到ARM;
(2)傳輸頁(yè)操作信息;
(3)傳輸起始表號(hào)信息;
(4)傳輸CRC校驗(yàn)信息;
(5)傳輸加密信息;
(6)讀固件版本號(hào)信息;
(7)讀標(biāo)準(zhǔn)表溫度信息;
(8)傳輸RTC配置信息到ARM;
(9)標(biāo)準(zhǔn)表標(biāo)定功能(只對(duì)廠內(nèi)生產(chǎn)人員和技術(shù)支持人員開(kāi)放)。
4.2? 下位機(jī)軟件主流程
下位機(jī)軟件主流程是一個(gè)無(wú)限循環(huán)體,主要有以下模塊:
(1)上電自檢:檢測(cè)當(dāng)前測(cè)溫芯片溫度和RTC芯片溫度;
(2)主循環(huán)檢測(cè)是否有USB命令,如果是,執(zhí)行USB命令;
(3)主循環(huán)檢測(cè)用戶是否按下啟動(dòng)按鈕,如果是,開(kāi)始校正和下載。
4.3? 校正和下載流程
(1)對(duì)目標(biāo)芯片供電;
(2)進(jìn)行RTC測(cè)試之前的準(zhǔn)備,如配置目標(biāo)板秒脈沖輸出;
(3)通過(guò)測(cè)試模塊獲取環(huán)境溫度值,通過(guò)RTC模塊獲取RTC標(biāo)準(zhǔn)秒脈沖周期,通過(guò)目標(biāo)板獲取目標(biāo)板的秒脈沖周期,計(jì)算頻率偏移;
(4)燒寫代碼,并校驗(yàn);
(5)將RTC校正值寫入flash;
(6)停止對(duì)目標(biāo)芯片供電;
(7)復(fù)位芯片,報(bào)測(cè)試結(jié)果。
5? 測(cè)試結(jié)果
通過(guò)在全溫度范圍內(nèi)完成秒脈沖校正后的RTC計(jì)時(shí)誤差分析,情況如表1所示,在常溫條件下RTC秒脈沖輸出接近0.1ppm。
6? 結(jié)? 論
基于燒寫器的RTC校正工具能最大程度地滿足生產(chǎn),其在支持下載的同時(shí)可以進(jìn)行RTC校正,節(jié)省了設(shè)備和時(shí)間。對(duì)于生產(chǎn)效率的提高意義重大。
參考文獻(xiàn):
[1] 鄧乾中.自校準(zhǔn)實(shí)時(shí)時(shí)鐘RTC的研究和設(shè)計(jì) [D].武漢:華中科技大學(xué),2008.
[2] 張昭.一種溫度補(bǔ)償晶體振蕩器芯片的設(shè)計(jì) [D].成都:四川大學(xué),2006.