一種mcu芯片分頻時鐘校正裝置及方法
【專利摘要】本發明公開了一種MCU芯片分頻時鐘校正裝置及方法,其該裝置包括有時鐘模塊,時鐘分頻電路,校正寄存器,校正接口、存儲器及校正裝置,其中,時鐘模塊,時鐘分頻電路,校正寄存器,校正接口、存儲器設置于芯片內部,校正裝置設置于芯片外部;在時鐘校正時,由外部的校正裝置將校正值通過校正接口寫入校正寄存器,時鐘模塊根據校正值調整時鐘,經過時鐘分頻電路將時鐘輸出,外部校正裝置根據時鐘輸出,調整校正值直到找到時鐘偏差最小的校正值,并計算出與實際頻率之間的偏差值,將校正值和時鐘偏差寫入芯片內部存儲器中。本發明利用時鐘晶振的偏差值來實現時鐘精度的提高,可以在現有的時鐘振蕩器的精度的基礎上大大提高時鐘精度。克服了由外部設備寫入固定校正值的做法所帶來精度的限制,且對芯片本身不需要進行電路升級,節省外部晶振和外部IO。
【專利說明】-種MCU芯片分頻時鐘校正裝置及方法
【技術領域】
[0001] 本發明涉及一種時鐘校正方法,尤其涉及一種MCU芯片的時鐘校正裝置和方法。
【背景技術】
[0002] 現在芯片中,特別是MCU的設計當中通常都會使用時鐘校正功能,但是受到成本 的限制和工藝技術約束,目前的內部時鐘在校正以后僅僅能夠達到0. 5%?2%的精度,這 樣的時鐘精度水平對于需要異步通信或者是對于時鐘精度要求較高的系統則往往不夠,需 要通過精度更加準確外部晶振才能解決,而使用外部晶振會增加硬件成本,而且外部晶振 需要增加新的10,特別是對于設計尺寸較小的系統增加新的10會導致整個硬件面積變大, 導致方案不可實現。
[0003] 專利申請2004100864081提供了一種監控時鐘校正方法及裝置,該監控時鐘校正 方法及裝置,由外部提供一時鐘信號源,并從監控芯片任一輸入端輸入后,由監控芯片內部 的緩存器輸出一信號啟動校正控制單元,同時也啟動兩個計數單元,第一計數單元累計外 部基準時鐘數目,第二計數單元累計監控芯片內部時鐘產生組件的時鐘數目,第一計數單 元累計外部基準時鐘數到達一定數目而停止計數時,在同一時間第二計數單元也停止累計 由監控芯片內部時鐘產生器產生的時鐘數目,并產生一中斷信號通知監控芯片內部的微處 理單元,比較第一計數單元所累計的外部基準時鐘數目和第二計數單元所累計的監控芯片 內部振蕩器產生的時鐘數目,即可對監控芯片內部振蕩器做校正。
[0004] 然而當系統需要一個高精度的時鐘時,同時因為硬件成本和產品尺寸等原因,不 能夠增加外部晶振時,一個高精度的內部時鐘震蕩器就成為解決這一問題的好方法。但是 要在芯片內部提供高精度的時鐘,需要內部增加很多的時鐘校正電路,例如要想達到0.5% 的精度,目前至少需要校正電阻或者校正電容有8檔選擇,即校正電阻(電容)值范圍 2~7?2~0,當需要進一步提高精度,需要將校正檔位提高到10檔甚至以上,這樣校正電阻 的范圍至少2~9?2~0。而在這樣寬的范圍內做到器件的匹配是比較困難的,需要增加更多 的額外校正電路來提高器件的匹配性。
【發明內容】
[0005] 為解決上述問題,本發明的目的在于提供一種MCU芯片分頻時鐘校正裝置及方 法,該裝置及方法將內部時鐘的偏差值保存到芯片,利用該偏差值對分頻時鐘進行校正,可 以在現有的時鐘振蕩器的精度的基礎上大大提高時鐘精度。
[0006] 本發明的另一個目的在于提供一種MCU芯片分頻時鐘校正裝置及方法,該裝置及 方法節省外部晶振,節省外部10,簡單易實施,不需要增加額外的電路來實現。
[0007] 為實現上述目的,本發明的技術方案如下。
[0008] -種MCU芯片分頻時鐘校正裝置,其特征在于所述裝置包括有在時鐘模塊(內部 晶振),時鐘分頻電路,校正寄存器,校正接口、存儲器及校正裝置,其中,時鐘模塊,時鐘分 頻電路,校正寄存器,校正接口、存儲器設置于芯片內部,校正裝置設置于芯片外部;時鐘模 塊用于產生內部時鐘,時鐘分頻電路用于產生分頻時鐘,校正寄存器用于配置時鐘校正值, 時鐘模塊(內部晶振)連接時鐘分頻電路,與校正裝置進行通訊;校正寄存器連接校正接 口,校正接口分別與校正裝置和存儲器進行通訊;校正接口用于與外部校正裝置通信,將校 正值寫入校正寄存器中,將最后的校正值和偏差寫入存儲器中;同時,校正寄存器將校正值 反饋給時鐘模塊,外部的校正裝置用于時鐘采樣和時鐘的精度計算。
[0009] 所述存儲器,為非易失性存儲器。
[0010] 一種MCU芯片分頻時鐘校正方法,其特征在于在時鐘校正時,由外部的校正裝置 將校正值通過校正接口寫入校正寄存器,時鐘模塊根據校正值調整時鐘,經過時鐘分頻電 路將時鐘輸出,外部校正裝置根據時鐘輸出,調整校正值直到找到時鐘偏差最小的校正值, 并計算出與實際頻率之間的偏差值,將校正值和時鐘偏差寫入芯片內部存儲器中。本發明 利用時鐘晶振的偏差值來實現時鐘精度的提1?,可以在現有的時鐘振蕩器的精度的基礎上 大大提高時鐘精度。克服了由外部設備寫入固定校正值的做法所帶來精度的限制,且對芯 片本身不需要進行電路升級,節省外部晶振和外部10。
[0011] 所述的每一個校正值對應一個時鐘偏差,通過對每一個校正值的所對應的時鐘偏 差比較,可以得到最小的時鐘偏差值。
[0012] 所述時鐘模塊的偏差可以通過測試輸出時鐘多個周期的方法達到很高的精度。
[0013] 進一步,所述精度的調整方法為:
[0014] 精度=fout/(ftest*N),其中fout為被測試晶振的輸出頻率,ftest為外部測試 電路的時鐘,大于等于10*f〇ut,N為被測試晶振的周期;
[0015] 可以通過增大N值達到想要達到的偏差精度。
[0016] 更進一步,當實際設置定時器時鐘或者是通信頻率時,先根據偏差值算出實際的 晶振頻率,然后可以根據實際的晶振頻率調整定時器的分頻系數;fdesign為內部晶振的 時鐘設計值,Μ為理論上的分頻系數,fidv為要求的分頻時鐘,那么芯片的實際振蕩頻率為 freal = M*fout,先根據實際晶振頻率計算出偏差值,delta = freal/fdesign-1,將偏差值 寫入芯片的存儲器中,當實際設置定時器時鐘或者是通信頻率時可以根據實際的晶振頻率 調整定時器的分頻系數,實際分頻系數=fdesign* (1-delta)/fdiv。
[0017] 在實際應用中,大部分的通信應用或者時鐘定時頻率較低,例如uart的通信速率 一般為9. 6KHz或者4. 8KHz,而時鐘定時的頻率更低,一般是計數1秒或者1分鐘。主時鐘 的時鐘頻率是比較高的,一般達到10MHz?20MHz。兩者之間的比值達到1000:1以上,經過 偏差校正之后的通信時鐘偏差或者定時器時鐘偏差就變成主時鐘晶振和通信時鐘之間的 比值,因此經過本發明所實現的MCU芯片分頻時鐘校正裝置和方法之后,實際通信時鐘偏 差可以達到0. 1%以下,時鐘定時器的時鐘偏差可以達到1*1〇~(-7)以下,大大提高了實際 應用的時鐘精度。
【專利附圖】
【附圖說明】
[0018] 圖1是本發明所實施的硬件結構圖。
[0019] 圖2是本發明所實施的時鐘校正流程圖。
[0020] 圖3是本發明所應用的時鐘校正的流程圖。
【具體實施方式】
[0021] 為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對 本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并 不用于限定本發明。
[0022] 圖1所示,為本發明實現的MCU芯片分頻時鐘校正裝置的電路圖,圖中所示,在芯 片內部一般有內部晶振,時鐘分頻電路,校正寄存器,校正接口以及存儲器,在芯片的外部 有校正裝置。
[0023] 其中,時鐘模塊,時鐘分頻電路,校正寄存器,校正接口、存儲器設置于芯片內部, 校正裝置設置于芯片外部;時鐘模塊用于產生內部時鐘,時鐘分頻電路用于產生分頻時鐘, 校正寄存器用于配置時鐘校正值,時鐘模塊(內部晶振)連接時鐘分頻電路,與校正裝置進 行通訊;校正寄存器連接校正接口,校正接口分別與校正裝置和存儲器進行通訊;校正接 口用于與外部校正裝置通信,將校正值寫入校正寄存器中,將最后的校正值和偏差寫入存 儲器中;同時,校正寄存器將校正值反饋給時鐘模塊,外部的校正裝置用于時鐘采樣和時鐘 的精度計算。
[0024] 由于校正過程一般在芯片測試階段或者是在芯片燒錄階段完成,所述的校正裝 置,在測試階段用測試機實現,在燒錄階段則用燒錄器實現。
[0025] 圖2所示,校正方法是:在時鐘校正時,由外部的校正裝置將校正值通過校正接口 寫入校正寄存器,時鐘模塊根據校正值調整時鐘,經過時鐘分頻電路將時鐘輸出,外部校正 裝置根據時鐘輸出,調整校正值直到找到時鐘偏差最小的校正值,并計算出與實際頻率之 間的偏差值,將校正值和時鐘偏差寫入芯片內部存儲器中。
[0026] 所述的每一個校正值對應一個時鐘偏差,通過對每一個校正值的所對應的時鐘偏 差比較,可以得到最小的時鐘偏差值。
[0027] 在實際應用中,考慮到工藝的偏差,內部晶振產生的時鐘在沒有校正時會有20% 的偏差,一般會先對時鐘晶振進行時鐘校正,如圖2所示。時鐘通過分頻得到一個低速的時 鐘輸出,外部采用一個高速的時鐘晶振對該時鐘進行采樣,當時鐘偏快(這里指的是內部 晶振,偏快是針對設計值而言的,內部晶振偏快,時鐘輸出也會隨之偏快)時,修改時鐘校 正值(這個時鐘校正值一般是一個多比特的數,具體的位寬在設計時已經確認,例如如果 我們的校正值是8比特的話,那么時鐘校正值可以從0x00 -直到OxFF,每一個校正值都會 對應一個不同內部時鐘頻率,可以通過計算找到最小的值),使時鐘輸出變慢,當時鐘偏慢 時,修改時鐘校正值,使時鐘輸出變快。
[0028] 例如默認的校正值為0x80,校正值增大則時鐘頻率減慢,校正值減小則時鐘頻率 增快,采用默認校正值測量(測量是將實際時鐘頻率freal = M*fout和fdesign進行比 較)時發現時鐘頻率偏慢,修改校正值為0x7F,重新測試時鐘頻率,如果依舊偏慢則再次減 小(一般會有一個預設的步長,按照預設的步長進行減小,可以采用預設的步長進行估算, 快速得到最佳的校正值)時鐘校正值,直至找到時鐘偏差最小的校正值為止。
[0029] 圖3所示,在校正的基礎上進一步進行時鐘偏差的計算,delta = freal/ fdesign-1,針對需要的精度時根據實際需求而定選擇好校正周期的個數N,并將校正值 (最小偏差對應的校正值)和偏差值寫到芯片的flash (此處可以是0ΤΡ或者EEPR0M等非 易失性存儲器)中保存。當進行時鐘分頻設置時,將偏差值從flash中讀出,計算得出實際 的分頻值即可。
[0030] 假設我們目前主時鐘的頻率為20MHz (fdesign),異步通信速率為4. 8KHZ,芯片偏 差值為-1. 002 %這樣我們可以選擇芯片輸出一個4. 8KHz (理論上的分頻系數Μ為4166) 的時鐘進行時鐘的校正。芯片測試時采用50MHz的時鐘(ftest)進行采樣,采樣的周期為 20次(N)。由于米樣的時鐘和被米樣的時鐘存在一定的相位偏差,因此會出現一個周期的 采樣誤差,因為采樣誤差=fdi VAN*ftest)遠遠小于校正后的時鐘分頻精度,因此可以忽 略。采樣誤差為4. 8*10~3/(20*50*10~6) =4. 8*10~(-6)。因為誤差值遠遠小于校正后的 精度可以忽略。時鐘輸出的分頻系數為20*10~6*(1-1. 002% )/4. 8*10~3 = 4125,最后時 鐘輸出的偏差為 20*10~6*(1-1· 002% )/4125/4. 8*10~3-1 = -2. 02~10(-5)。可以看出此 時的通信頻率精度比較時鐘校正的精度有了很大的提高。
[0031] 如果實際芯片中有多個需要高精度時鐘定時的應用,可以考慮針對每一個分頻時 鐘進行單獨的時鐘偏差計算,然后將每一個分頻時鐘的偏差都寫入芯片的flash當中,設 置時鐘分頻值時選擇對應的偏差值進行計算即可。
[0032] 本發明通過校正結合時鐘偏差的計算,能夠有效地大幅度提高時鐘精度,且節省 外部晶振,節省外部10,簡單易實施,不需要增加額外的電路來實現,成本低廉。
[0033] 總之,以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明 的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護范圍之 內。
【權利要求】
1. 一種MCU芯片分頻時鐘校正裝置,其特征在于所述裝置包括有時鐘模塊、時鐘分頻 電路、校正寄存器,校正接口、存儲器及校正裝置,其中,時鐘模塊,時鐘分頻電路,校正寄存 器,校正接口、存儲器設置于芯片內部,校正裝置設置于芯片外部;時鐘模塊用于產生內部 時鐘,時鐘分頻電路用于產生分頻時鐘,校正寄存器用于配置時鐘校正值,時鐘模塊連接時 鐘分頻電路,與校正裝置進行通訊;校正寄存器連接校正接口,校正接口分別與校正裝置和 存儲器進行通訊;校正接口用于與外部校正裝置通信,將校正值寫入校正寄存器中,將最后 的校正值和偏差寫入存儲器中;同時,校正寄存器將校正值反饋給時鐘模塊,外部的校正裝 置用于時鐘采樣和時鐘的精度計算。
2. 如權利要求1所述的MCU芯片分頻時鐘校正裝置,其特征在于所述存儲器,為非易失 性存儲器。
3. -種MCU芯片分頻時鐘校正方法,其特征在于在時鐘校正時,由外部的校正裝置將 校正值通過校正接口寫入校正寄存器,時鐘模塊根據校正值調整時鐘,經過時鐘分頻電路 將時鐘輸出,外部校正裝置根據時鐘輸出,調整校正值直到找到時鐘偏差最小的校正值,并 計算出與實際頻率之間的偏差值,將校正值和時鐘偏差寫入芯片內部存儲器中。
4. 如權利要求1所述的MCU芯片分頻時鐘校正方法,其特征在于所述的每一個校正值 對應一個時鐘偏差,通過對每一個校正值的所對應的時鐘偏差比較,可以得到最小的時鐘 偏差值。
5. 如權利要求1所述的MCU芯片分頻時鐘校正方法,其特征在于所述時鐘模塊的偏差 可以通過測試輸出時鐘多個周期的方法達到很高的精度。
6. 如權利要求5所述的MCU芯片分頻時鐘校正方法,其特征在于所述精度的調整方法 為: 精度=f〇ut/(ftest*N),其中fout為被測試晶振的輸出頻率,ftest為外部測試電路 的時鐘,大于等于10*f〇ut,N為被測試晶振的周期; 可以通過增大N值達到想要達到的偏差精度。
7. 如權利要求6所述的MCU芯片分頻時鐘校正方法,其特征在于當實際設置定時器時 鐘或者是通信頻率時,先根據偏差值算出實際的晶振頻率,然后可以根據實際的晶振頻率 調整定時器的分頻系數;fdesign為內部晶振的時鐘設計值,Μ為理論上的分頻系數,fidv為 要求的分頻時鐘,那么芯片的實際振蕩頻率為freal = M*fout,先根據實際晶振頻率計算 出偏差值,delta = freal/fdesign-Ι,將偏差值寫入芯片的存儲器中,當實際設置定時器 時鐘或者是通信頻率時可以根據實際的晶振頻率調整定時器的分頻系數,實際分頻系數= fdesign*(1-delta)/fdiv〇
【文檔編號】G06F1/14GK104122936SQ201410347218
【公開日】2014年10月29日 申請日期:2014年7月21日 優先權日:2014年7月21日
【發明者】齊凡, 謝韶波, 溫志超 申請人:深圳市芯海科技有限公司