<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)外部與內(nèi)部時鐘源的切換

          單片機(jī)外部與內(nèi)部時鐘源的切換

          作者: 時間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
          DAVE——數(shù)字應(yīng)用工程師,出自Infineon科技。它能幫我們準(zhǔn)確而快速地進(jìn)行基于Infineon8位、16位或32位單片機(jī)嵌入式系統(tǒng)設(shè)計。由于Infineon的嵌入式控制器的寄存器的數(shù)量非常大,大約有一千多個。所以對大量寄存器的初始化是一件相當(dāng)棘手的事,而有了DAVE的平臺就能很輕松地完成這些事情。同時DAVE還可完成單片機(jī)的其它初始化工作,與Keil或、Tasking等編譯軟件實現(xiàn)鏈接,輕松完成嵌入式系統(tǒng)的軟件開發(fā)工作。

          XC2336B是Infineon的16位微控制器XC2000家族中的一員,它將功能和性能都得到擴(kuò)展的C166SV2內(nèi)核、功能強(qiáng)大的片上外設(shè)子系統(tǒng)和各種片上存儲器進(jìn)行了完美結(jié)合。執(zhí)行速度更快、穩(wěn)定性更好、操作更簡單。

          本文引用地址:http://www.ex-cimer.com/article/201611/319724.htm

          1 XC2336B單片機(jī)的時鐘產(chǎn)生

          XC2336B單片機(jī)時鐘產(chǎn)生單元(CGU)可非常靈活的產(chǎn)生單片機(jī)所需的時鐘。通過鎖相環(huán)(PLL),時鐘產(chǎn)生單元(CGU)可將低頻外部時鐘轉(zhuǎn)換為高頻系統(tǒng)時鐘,無需外部直接產(chǎn)生高頻時鐘。時鐘產(chǎn)生單元(CGU)由時鐘發(fā)生器和時鐘控制單元(CCU)構(gòu)成。

          XC2336B單片機(jī)帶有5 MHz的內(nèi)部時鐘源,可以在無外部時鐘信號的情況下產(chǎn)生系統(tǒng)時鐘(fsys)。該內(nèi)部時鐘源位于鎖相環(huán)(PLL)單元中,通過對該單元的合理設(shè)置,即可完成該單片機(jī)的無晶振工作。但由此產(chǎn)生的系統(tǒng)時鐘(fsys)受溫度影響很大,時鐘的精度不高,適合在簡單的應(yīng)用中使用。因此,常用的產(chǎn)生系統(tǒng)時鐘 (fsys)的方法是,由高精度振蕩器電路(OSC_HP)驅(qū)動一個外部晶振,產(chǎn)生的時鐘信號送入鎖相環(huán)(PLL)倍頻后產(chǎn)生系統(tǒng)時鐘(fsys)。振蕩器電路包含一個反相放大器,以XTAL1為輸入、XTAL2為輸出。

          在某些使用環(huán)境中,由于震動等原因,外部晶振有可能損壞。但是,在這種情況下,又不希望單片機(jī)處于死機(jī)狀態(tài),希望單片機(jī)能夠發(fā)出一些報警信號,并能完成一些簡單功能。那么,能否讓單片機(jī)自動切換為內(nèi)部時鐘源工作呢?答案是肯定的。也就是要讓單片機(jī)在正常狀態(tài)下以高精度系統(tǒng)時鐘運(yùn)行,在外部晶振失效時以內(nèi)部時鐘源產(chǎn)生的系統(tǒng)時

          鐘運(yùn)行,而且這兩個系統(tǒng)時鐘的值是一樣的。

          要完成XC2336B單片機(jī)外部與內(nèi)部時鐘源的切換,最主要的設(shè)置是對鎖相環(huán)(PLL)的設(shè)置。因此我們先介紹一下XC2336B單片機(jī)的鎖相環(huán)(PLL)。

          2 鎖相環(huán)PLL組成以及它的三種工作模式

          1)PLL由壓控振蕩器(VCO)和反饋通路組成。反饋通路上的分頻器(N分頻)對VCO頻率分頻,得到的結(jié)果和外部經(jīng)P分頻處理的參考頻率進(jìn)行比較。相位檢測電路根據(jù)這兩個時鐘信號的差值相應(yīng)控制VCO頻率(fVCO)。PLL鎖相檢測單元監(jiān)控并指示該狀態(tài)。相位檢測邏輯繼續(xù)監(jiān)控這兩個時鐘信號,如有需要則調(diào)整VCO時鐘。PLL輸出時鐘fPLL由VCO時鐘經(jīng)K2分頻產(chǎn)生、或由振蕩器時鐘經(jīng)K1分頻產(chǎn)生。

          2)正常模式下,參考頻率fR經(jīng)P分頻、N倍頻和K2分頻產(chǎn)生PLL時鐘:

          3)預(yù)分頻模式下,參考頻率fR經(jīng)K1分頻產(chǎn)生PLL時鐘:

          4)未鎖相模式下,PLL以壓控振蕩器(VCO)基頻fVCObase工作,fVCObase經(jīng)K2分頻產(chǎn)生PLL時鐘:

          3 實現(xiàn)外部與內(nèi)部時鐘源切換的步驟

          1)DAVE中的有關(guān)系統(tǒng)時鐘的設(shè)定

          先設(shè)為使用8 MHz的外部時鐘源,最終的系統(tǒng)時鐘頻率fsys=80 MHz。系統(tǒng)時鐘的輸出管腳在調(diào)試完成后應(yīng)該關(guān)閉,防止干擾產(chǎn)生。

          2)在由DAVE和Keil生成的C語言文件中找到MAIN_vChangeFreq()函數(shù),它就是鎖相環(huán)(PLL)的配置函數(shù)。通過對該函數(shù)的修改,就可以實現(xiàn)外部與內(nèi)部時鐘源的切換。

          A、該函數(shù)初始的程序流程圖如下:

          在這種狀態(tài)下,一旦外部晶振失效,CPU將處于死機(jī)狀態(tài),無任何信號輸出。

          B、增加用戶函數(shù)后,能夠?qū)崿F(xiàn)時鐘源切換的函數(shù)MAIN_vChangeFreq()的流程圖

          在這種狀態(tài)下,一旦外部晶振失效,CPU將執(zhí)行用戶函數(shù),使CPU能夠利用5MHz的內(nèi)部時鐘生成80 MHz的系統(tǒng)時鐘。

          3)上個流程圖中提到的用戶函數(shù)代碼如下:

          函數(shù)說明:在外部時鐘源失效的情況下,使fR來自于內(nèi)部時鐘源,PLL由上電基礎(chǔ)模式(Fsys=10 MHz)或VCO預(yù)分頻模式換到VCO正常模式,返回Error值

          4 結(jié)束語

          通過對由DAVE和Keil生成的MAIN_vChangeFreq()函數(shù)的修改,實現(xiàn)了單片機(jī)在正常狀態(tài)下以高精度系統(tǒng)時鐘運(yùn)行,在外部晶振失效時以內(nèi)部時鐘源產(chǎn)生的系統(tǒng)時鐘運(yùn)行的工作模式。



          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();