一種內(nèi)置晶振自動校準方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于芯片的技術(shù)領(lǐng)域,特別涉及芯片的內(nèi)置晶振的頻率控制。
【背景技術(shù)】
[0002]為了節(jié)省系統(tǒng)設(shè)計成本,現(xiàn)在越來越多的芯片使用內(nèi)置晶振給芯片提供工作時鐘,但由于生產(chǎn)工藝的偏差,內(nèi)置晶振與實際理論值會有一定的偏差,而且芯片與芯片之間也會有差異,特別是涉及到采用多種芯片的設(shè)備上,不同芯片之間的頻率難以做到完全統(tǒng)一,因此,在對時鐘準確度高的應(yīng)用場合芯片往往會無法滿足系統(tǒng)設(shè)計要求,給系統(tǒng)設(shè)計造成隱患。
[0003]專利申請201410266409.8公開了一種減小電子計時誤差的方法,該方法是涉及內(nèi)置晶振進行溫度補償實時時鐘芯片的方法,該方法利用單片機分別連接的RTC、數(shù)顯裝置、紅外接收頭、藍牙芯片、電源,所述RTC通過穩(wěn)壓芯片與電源連接,在軟件支持下,使傳統(tǒng)內(nèi)置晶振溫度補償RTC的計時產(chǎn)品,不但有校準RTC的年、月、周、日、時、分、秒寄存器的功能,還有校準RTC內(nèi)置32768Hz晶振的功能,晶振頻率偏移重新校準方便,能個性化補償校準其晶振實現(xiàn)年誤差絕對值小于I秒的計時。該專利申請是通過RTC校準時間,需要額外增加外部硬件,提高了校準的成本,且該校準是基于RTC,通過RTC內(nèi)置晶振來進行校準,受到RTC芯片本身的限制和制約,并不適用于其它內(nèi)置晶振的校準。
【發(fā)明內(nèi)容】
[0004]為解決上述問題,本發(fā)明的目的在于提供一種內(nèi)置晶振自動校準方法,該方法能夠自動進行內(nèi)置晶振的校準,使內(nèi)置晶振的誤差控制在理論誤差以內(nèi),避免系統(tǒng)設(shè)計出現(xiàn)隱患。
[0005]本發(fā)明的另一個目的在于提供的一種內(nèi)置晶振自動校準方法,該方法通過調(diào)整頻率方波之間時鐘elk的個數(shù)來判斷是把內(nèi)置晶振調(diào)大還是調(diào)小,直到內(nèi)置晶振頻率誤差在理論范圍內(nèi),實現(xiàn)簡便,成本低廉,能夠滿足不同芯片的內(nèi)置晶振調(diào)整需要。
[0006]為實現(xiàn)上述目的,本發(fā)明的技術(shù)方案如下。
[0007]—種內(nèi)置晶振自動校準方法,該方法包括如下步驟:
[0008]101、系統(tǒng)上電,進入校準方式;
[0009]102、產(chǎn)生方波;通過1輸入一個標準頻率的方波;
[0010]所述方波頻率最好不大于內(nèi)置晶振的萬分之一。
[0011]103、校準,計算兩個標準頻率方波之間時鐘elk的個數(shù),以此來判斷是把內(nèi)置晶振調(diào)大還是調(diào)小,并根據(jù)計算結(jié)果進行校準,直到內(nèi)置晶振頻率誤差控制在理論范圍內(nèi)。
[0012]對于校準的方法,是通過改變反饋總線上的數(shù)據(jù)大小,調(diào)整內(nèi)置晶振時鐘。
[0013]對于工藝的離散型過大造成內(nèi)置晶振偏差范圍超過了 +12.7%到-12.8%的情況,可以加大調(diào)整的步長或BUS的位寬(步長改為0.2%位寬不變或者步長不變位寬變?yōu)?位,內(nèi)置晶振調(diào)整的范圍是+25.5%到-25.6% )。
[0014]本發(fā)明通過調(diào)整頻率方波之間時鐘elk的個數(shù)來判斷是把內(nèi)置晶振調(diào)大還是調(diào)小,自動調(diào)整內(nèi)置晶振時鐘,直到內(nèi)置晶振頻率誤差在理論范圍內(nèi),該方法實現(xiàn)簡便,成本低廉,能夠滿足不同芯片的內(nèi)置晶振調(diào)整需要。
【附圖說明】
[0015]圖1是本發(fā)明所實施的芯片結(jié)構(gòu)框圖。
[0016]圖2是本發(fā)明所實施的控制流程圖。
【具體實施方式】
[0017]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0018]請參照圖1所示,為實現(xiàn)本發(fā)明所采用的硬件結(jié)構(gòu)框圖。芯片開始工作之后,使芯片進入自動校準方式(進入校準的方式是多種的,可以通過1控制,也可以通過發(fā)命令控制、也可以在芯片上電之后某一段時間內(nèi)進入自動校準方式),然后通過1輸入一個標準頻率的方波(方波頻率最好不大于內(nèi)置晶振的萬分之一),數(shù)字算法通過計算兩個標準頻率方波之間時鐘elk的個數(shù)來判斷是把內(nèi)置晶振調(diào)大還是調(diào)小,直到內(nèi)置晶振頻率誤差在理論范圍內(nèi)。
[0019]圖2所示為內(nèi)置晶振自動校準的流程圖,具體的控制流程如下。
[0020]201、芯片進入正常的工作模式;
[0021 ] 202、判斷芯片是否進入自動校準模式,如果沒有進入自動校準模式,等待進入自動校準模式,在等待自動校準模式時不影響芯片其他各項功能;如果進入了自動校準模式,繼續(xù)下一步;
[0022]203、判斷外部是否有輸入標準頻率的方波,如果沒有,等待輸入標準頻率方波;如果有標準頻率方波輸入,繼續(xù)下一步;
[0023]204、判斷兩個標準頻率方波之間內(nèi)置晶振時鐘的個數(shù),如果個數(shù)在理論誤差范圍內(nèi),退出自動校準模式完成校準;如果個數(shù)不在理論誤差范圍內(nèi),繼續(xù)下一步;
[0024]205、改變反饋總線上的數(shù)據(jù)大小,調(diào)整內(nèi)置時鐘,然后跳轉(zhuǎn)到步驟4。
[0025]假設(shè)芯片內(nèi)置晶振理論設(shè)計值是16M,內(nèi)置晶振調(diào)整反饋總線是8位的BUS [7:0],BUS[7]代表調(diào)整方向,BUS[7] = I內(nèi)置晶振時鐘往快的方向調(diào)整,BUS[7] = O內(nèi)置晶振時鐘往慢的方向調(diào)整,當(dāng)BUS[7:0] = 8’ hFF時內(nèi)置晶振時鐘最快,當(dāng)BUS[7:0] = 8’ h00時內(nèi)置晶振時鐘最慢,默認值是BUS[7:0] = 8,h80,BUS[7:0]調(diào)整的步長是0.1%,內(nèi)置晶振調(diào)整的范圍是+12.7%到-12.8%,如果工藝的離散型過大造成內(nèi)置晶振偏差范圍超過了+12.7%到-12.8%,可以加大調(diào)整的步長或BUS的位寬(步長改為0.2%位寬不變或者步長不變位寬變?yōu)?位,內(nèi)置晶振調(diào)整的范圍是+25.5%到-25.6% ),輸入的標準頻率方波是ΙΚΗζ,理論上在兩個標準頻率方波之間內(nèi)置晶振時鐘個數(shù)為16000個。如果內(nèi)置晶振誤差不能超過0.05%,那么兩個標準頻率方波之間內(nèi)置晶振時鐘個數(shù)為15992到16008,,下面按照下面具體的調(diào)整流程進行內(nèi)置晶振時鐘的調(diào)整。
[0026]301、在開始調(diào)整之前,內(nèi)置晶振是15MHz,兩個標準頻率方波之間內(nèi)置晶振時鐘個數(shù)為15000個,不在理論范圍內(nèi),且比理論值小,需要把內(nèi)置晶振往快的方向調(diào)整。
[0027]此時,BUS[7]= 1,使 BUS[6] = 1,BUS[5:0] = 6’ h00,調(diào)整之后內(nèi)置晶振值為15MHz* (1+2~6*0.1% ) = 15.96MHz。
[0028]302、如果兩個標準頻率方波之間內(nèi)置晶振時鐘個數(shù)為15960個,不在理論范圍內(nèi),且比理論值小。
[0029]此時,BUS[7:6]保持不變,使BUS[5] = 1,BUS[4:0] =5’ h00,調(diào)整之后內(nèi)置晶振值為 15MHz* (1+2~6*0.1% +2~5*0.1% ) = 16.44MHz。
[0030]303、如果兩個標準頻率方波之間內(nèi)置晶振時鐘個數(shù)為16440個,不在理論范圍內(nèi),且比理論值大;
[0031]此時,BUS[7:6]保持不變,使 BUS [5] = O, BUS [4] = 1,BUS[3:0] = 4’ h0,調(diào)整之后內(nèi)置晶振值為 15MHz*(1+2~6*0.1% +2~4*0.1% ) = 16.20MHz。
[0032]304、如果兩個標準頻率方波之間內(nèi)置晶振時鐘個數(shù)為16200個,不在理論范圍內(nèi),且比理論值大。
[0033]此時,BUS[7:5]保持不變,BUS [4] = 0,使 BUS [3] = 1,BUS [2:0] =3’ h0,調(diào)整之后內(nèi)置晶振值為 15MHz* (1+2~6*0.1% +2~3*0.1% ) = 16.08MHz。
[0034]305、如果兩個標準頻率方波之間內(nèi)置晶振時鐘個數(shù)為16080個,不在理論范圍內(nèi),且比理論值大。
[0035]此時,BUS[7:4]保持不變,BUS [3] = 0,使 BUS[2] = 1,BUS [1:0] = 2’ h0,調(diào)整之后內(nèi)置晶振值為 15MHz* (1+2~6*0.1% +2~2*0.1% ) = 16.02MHz。
[0036]306、如果兩個標準頻率方波之間內(nèi)置晶振時鐘個數(shù)為16020個,不在理論范圍內(nèi),且比理論值大。
[0037]此時,BUS[7:3]保持不變,BUS[2]=0,使冊3[1] = 1,BUS[0] = I,h0,調(diào)整之后內(nèi)置晶振值為 15MHz* (1+2~6*0.1% +2'1*0.1% ) = 15.99MHz。
[0038]307、如果兩個標準頻率方波之間內(nèi)置晶振時鐘個數(shù)為15990個,不在理論范圍內(nèi),且比理論值小。
[0039]此時,BUS[7:1]保持不變,使BUS[0] = I’ hl,調(diào)整之后內(nèi)置晶振值為15MHz* (1+2~6*0.1% +2~1*0.1% +2~0*0.1% ) = 16.005MHz0
[0040]308、兩個標準頻率方波之間內(nèi)置晶振時鐘個數(shù)為16005個,在理論范圍內(nèi),完成自動校準功能,退出自動校準功能。
[0041]通過上面的步驟,最后得到BUS[7:0]的值為8’bll00_0011。從上面的過程也可以看出,所需的標準頻率方波的個數(shù)與BUS位寬相同。上述例子中BUS的位寬是8位的,只需8個標準頻率的方波就可以完成內(nèi)置晶振的自動校準。假設(shè)上述例子中內(nèi)置晶振誤差不能超過0.1 %,兩個標準頻率方波之間內(nèi)置晶振時鐘個數(shù)為15984到16016,在步驟307時就可以停止內(nèi)置晶振的校準,最終得到的BUS值是8’ bll00_0010,步驟307-308變成如下描述:
[0042]307、如果兩個標準頻率方波之間內(nèi)置晶振時鐘個數(shù)為15990個,在理論范圍內(nèi)(15984到16016),停止內(nèi)置晶振的校準。
[0043]此時,BUS [7:1]保持不變,BUS [0]也保持不變(BUS[0] = 0)。
[0044]308、兩個標準頻率方波之間內(nèi)置晶振時鐘個數(shù)為15990個,在理論范圍內(nèi),完成自動校準功能,退出自動校準功能。
[0045]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【主權(quán)項】
1.一種內(nèi)置晶振自動校準方法,該方法包括如下步驟: 101、系統(tǒng)上電,進入校準方式; 102、產(chǎn)生方波;通過1輸入一個標準頻率的方波; 103、校準,計算兩個標準頻率方波之間時鐘elk的個數(shù),以此來判斷是把內(nèi)置晶振調(diào)大還是調(diào)小,并根據(jù)計算結(jié)果進行校準,直到內(nèi)置晶振頻率誤差控制在理論范圍內(nèi)。2.如權(quán)利I要求所述的內(nèi)置晶振自動校準方法,其特征在于所述方波頻率不大于內(nèi)置晶振的萬分之一。3.如權(quán)利I要求所述的內(nèi)置晶振自動校準方法,其特征在于對于校準的方法,是通過改變反饋總線上的數(shù)據(jù)大小,調(diào)整內(nèi)置晶振時鐘。4.如權(quán)利4要求所述的內(nèi)置晶振自動校準方法,其特征在于對于工藝的離散型過大造成內(nèi)置晶振偏差范圍超過了 +12.7%到-12.8%的情況,可以加大調(diào)整的步長或BUS的位寬。
【專利摘要】本發(fā)明公開了一種內(nèi)置晶振自動校準方法,該方法在芯片開始工作之后,使芯片進入自動校準方式,然后通過IO輸入一個標準頻率的方波,數(shù)字算法通過計算兩個標準頻率方波之間時鐘clk的個數(shù)來判斷是把內(nèi)置晶振調(diào)大還是調(diào)小,直到內(nèi)置晶振頻率誤差在理論范圍內(nèi)。該方法實現(xiàn)簡便,成本低廉,能夠滿足不同芯片的內(nèi)置晶振調(diào)整需要。
【IPC分類】G04G5/02
【公開號】CN105116712
【申請?zhí)枴緾N201510466770
【發(fā)明人】張偉偉
【申請人】深圳市芯海科技有限公司
【公開日】2015年12月2日
【申請日】2015年8月3日