Company Profile
[技術(shù)前沿]自制最好的石英鐘
高級(jí)計(jì)時(shí)技術(shù)進(jìn)入家庭。
我一直對(duì)精準(zhǔn)計(jì)時(shí)技術(shù)很感興趣?,F(xiàn)今,我們主要依賴互聯(lián)網(wǎng)或者來(lái)自GPS衛(wèi)星、廣播電臺(tái)的無(wú)線電波提供的計(jì)時(shí)。但我想要一個(gè)不依賴外界也可良好運(yùn)行的計(jì)時(shí)時(shí)鐘,而且一定要比一般的數(shù)字時(shí)鐘或微控制器中使用的石英晶體振蕩器所提供的時(shí)間更準(zhǔn)確,這些設(shè)備每天的時(shí)間偏差約1.7秒,一年的偏差超過(guò)10分鐘。
當(dāng)然,我可以買一個(gè)原子鐘,原子鐘里有一個(gè)銣振蕩器,就是GPS衛(wèi)星上使用的那種。(不是那種標(biāo)稱為“原子鐘”的時(shí)鐘,而是一種實(shí)際上依靠廣播時(shí)間信號(hào)的時(shí)鐘。)雖然銣鐘的精度非常高,但它的價(jià)格高達(dá)幾千美元。我需要介于兩者之間的時(shí)鐘,解決方法是恒溫晶體振蕩器,由于歷史原因,這種振蕩器一直被稱為“OCXO”。用這樣的振蕩器,我花大約200美元就可自己制作一個(gè)時(shí)鐘,其精度約為一般石英時(shí)鐘的200倍。
像烤面包片一樣的石英晶體(包裝在內(nèi)部,用紅色標(biāo)記)能夠保持這個(gè)時(shí)鐘的精確度在每天只些微偏差幾分之一秒之內(nèi)。
傳統(tǒng)晶體振蕩器最大的誤差來(lái)源是溫度變化。溫度變化會(huì)導(dǎo)致石英膨脹或收縮,從而改變其共振頻率。一種解決方案是跟蹤溫度變化對(duì)頻率進(jìn)行補(bǔ)償,但最好不要一開(kāi)始就改變頻率,這就是OCXO的作用。
OCXO可以保持晶體恒溫。為了避免因環(huán)境波動(dòng)而不得不對(duì)晶體進(jìn)行加熱和冷卻,晶體應(yīng)保持加熱至80℃左右,遠(yuǎn)高于其所處的環(huán)境溫度。過(guò)去,OCXO耗電量大、體積龐大、價(jià)格昂貴,但最近幾年來(lái),出現(xiàn)了價(jià)格便宜、耗電更低的微型OCXO。我為我的時(shí)鐘選擇的Raltron OCXO售價(jià)58美元,其工作電壓為3.3伏,穩(wěn)定工作時(shí)耗電400毫安。
OCXO的共振頻率為10兆赫。在我的時(shí)鐘中,該信號(hào)被輸入了一個(gè)4位計(jì)數(shù)器,每當(dāng)二進(jìn)制計(jì)數(shù)器從0000計(jì)數(shù)到1111時(shí),就會(huì)輸出一個(gè)脈沖信號(hào),有效地將10兆赫信號(hào)除以16。然后,這個(gè)625千赫信號(hào)驅(qū)動(dòng)Arduino Nano微控制器中的一個(gè)硬件計(jì)時(shí)器,該計(jì)時(shí)器每隔1/10秒觸發(fā)一次程序中斷,更新時(shí)鐘的時(shí)基。(有關(guān)時(shí)序鏈和軟件的工作原理的完整詳情,請(qǐng)參閱《科技縱覽》網(wǎng)站的相關(guān)文章,以及材料清單和印刷電路板文件。)用一個(gè)直接連接到Nano的旋轉(zhuǎn)控制器就可以設(shè)置時(shí)間。
時(shí)序鏈以O(shè)CXO振蕩器及其10兆赫信號(hào)開(kāi)始,以顯示器每秒更新一次結(jié)束。計(jì)時(shí)信號(hào)同步Nano微控制器中的硬件計(jì)時(shí)器,每秒觸發(fā)Nano軟件中的中斷處理程序10次??梢酝ㄟ^(guò)更改軟件來(lái)修改或添加許多的新功能。
Nano可以按秒、分鐘和小時(shí)計(jì)時(shí),還可驅(qū)動(dòng)顯示器。顯示器使用了6個(gè)Adafruit的“CharliePlex FeatherWings”,它們是15×7的LED矩陣,亮度可控,且有多種顏色。每一個(gè)都由可尋址的I2C串行總線協(xié)議控制。這里出現(xiàn)了一個(gè)問(wèn)題,由于CharliePlex本身僅有2個(gè)可用的I2C地址,因此,無(wú)法在單個(gè)總線上尋址6個(gè)時(shí)鐘數(shù)字。我的解決方案是使用一個(gè)I2C多路復(fù)用器,它可以接收傳入的I2C數(shù)據(jù),并在6個(gè)獨(dú)立的總線之間進(jìn)行切換。
使用微控制器而不是離散邏輯芯片元件可以簡(jiǎn)化設(shè)計(jì),并實(shí)現(xiàn)輕松修改和擴(kuò)展。例如,很容易調(diào)整軟件用自己設(shè)計(jì)的字體來(lái)代替數(shù)字或調(diào)整顯示器的亮度。Nano上直接提供了串行接口,這意味著,可以將時(shí)鐘作為其他設(shè)備的計(jì)時(shí)器或觸發(fā)器。
為此,你可以完全省略顯示器,從而大幅度縮小時(shí)鐘的尺寸(但是必須修改軟件控制顯示器的啟動(dòng)驗(yàn)證)。時(shí)鐘的印刷電路板被設(shè)計(jì)為可以分成兩塊,下面1/3用于放置微控制器、OCXO和其他輔助電子器件。上面2/3用于放置顯示器和旋轉(zhuǎn)編碼器。通過(guò)添加的4個(gè)接頭和2根連接線進(jìn)行連接,可將印刷電路板制成各種物理形狀,這位設(shè)計(jì)或選擇時(shí)鐘外殼時(shí)帶來(lái)了更大的自由度。實(shí)際上,制作印刷電路板也許是整個(gè)過(guò)程中最具挑戰(zhàn)性的部分,但為了最終設(shè)計(jì)所實(shí)現(xiàn)的硬件和軟件靈活性,這是值得的。
印刷電路板(中間)可以分成兩塊,與計(jì)時(shí)相關(guān)的組件安裝在下部,控制和顯示組件安裝在上部。
整個(gè)設(shè)備通過(guò)Nano的USB-C端口供電。需要USB-C才能提供足夠的電流,因?yàn)闀r(shí)鐘、OCXO和顯示器需要的總電流超過(guò)了之前USB端口的500毫安標(biāo)稱最大電流。需要用一個(gè)電池組與該端口連接以防止因失掉電源而發(fā)生復(fù)位,使用那種流行紐扣電池的實(shí)時(shí)備用時(shí)鐘毫無(wú)意義,因?yàn)橛?jì)時(shí)精度不準(zhǔn)確。
為了制作物有所值精準(zhǔn)的時(shí)鐘,我用一個(gè)HP 53150A頻率計(jì)在電路中交叉檢查了OCXO的輸出。結(jié)果是,時(shí)鐘每天的偏差不超過(guò)0.00864秒,一年的偏差不到3.15秒。實(shí)際上,其精準(zhǔn)性可能比這更好,不過(guò)這已經(jīng)達(dá)到了我用頻率計(jì)進(jìn)行測(cè)量所能達(dá)到的極限!希望你也可以自己制作一個(gè),只需要幾個(gè)小時(shí)的焊接工作即可,相信你會(huì)覺(jué)得這段時(shí)光很有價(jià)值。
作者:Gavin Watkins