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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 使用C2000?? DCC功能監(jiān)控系統(tǒng)時(shí)鐘

          使用C2000?? DCC功能監(jiān)控系統(tǒng)時(shí)鐘

          作者:Emma Wang 時(shí)間:2023-06-05 來源:TI 收藏

          簡介:

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

          在MCU系統(tǒng)里,的準(zhǔn)確性及精度對于系統(tǒng)的安全運(yùn)行非常重要,為保證系統(tǒng)可對時(shí)鐘的準(zhǔn)確性進(jìn)行監(jiān)控,從F28004X 系列開始, 產(chǎn)品增加了一個(gè)新的功能模塊Dual-Clock Comparator,簡稱。是一個(gè)可配置的,雙時(shí)鐘比較的模塊,用于在應(yīng)用程序的時(shí)間執(zhí)行期間確定時(shí)鐘信號的準(zhǔn)確性。 使用另一個(gè)輸入時(shí)鐘作為參考來測量可選時(shí)鐘源的頻率。 時(shí)鐘源以及精度由應(yīng)用程序編程??梢詫?shí)現(xiàn)對時(shí)鐘信號提供時(shí)鐘輸入頻率的自主、實(shí)時(shí)的監(jiān)控,當(dāng)輸入時(shí)鐘頻率范圍超出設(shè)定值時(shí),DCC模塊會觸發(fā)錯誤,從而完成對輸入時(shí)鐘頻率的監(jiān)控。本文以F280049為例,介紹了DCC模塊的工作原理和實(shí)際應(yīng)用及相應(yīng)的注意事項(xiàng)。

          1.DCC工作原理介紹和配置方法:

          顧名思義,DCC模塊提供了兩個(gè)時(shí)鐘模塊clock0 和clock1 按照設(shè)定比例及允許誤差范圍進(jìn)行互相校驗(yàn),用戶可以自由選擇兩個(gè)時(shí)鐘的輸入源,如下圖所示,同時(shí)也需要設(shè)定最大的允許誤差。

          Counter1 的時(shí)鐘源有:

          PLLRAWCLK

          INTOSC1

          INTOSC2

          Counter0 的時(shí)鐘源有:

          XTAL

          INTOSC1

          INTOSC2

          注:F280049是Type1 型的DCC,F(xiàn)28002x, F28003x, F280013x, F280015x, F2838x 均為Type2 型的DCC,clock0 和clock1都有更多的輸入源,具體細(xì)節(jié)可以參考對應(yīng)產(chǎn)品的datasheet。

          在DCC的設(shè)定過程中,除了選定的被檢測的兩個(gè)時(shí)鐘外,還有兩個(gè)重要的參數(shù):tolerance 和frequency error。

          1. Tolerance : Tolerance代表著DCC模塊的顆粒細(xì)度,Tolerance越大,Clock0和Clock1的counter 越小,類似于ADC 的采樣位數(shù)更小。但是當(dāng)頻率異常的時(shí)候,也可以反應(yīng)的更快。我們一般設(shè)這個(gè)值為1%。

          2. Frequency error:時(shí)鐘誤差的接受度,由于兩個(gè)時(shí)鐘的不同步和量化都會引入誤差,所以本身就存在一個(gè)最小的誤差。同時(shí),時(shí)鐘一定程度的偏差也是可以接受的,可以根據(jù)系統(tǒng)的需求輸入,針對+/- total error 的時(shí)間偏差,都是可以被接受的。

          根據(jù)系統(tǒng)需要,給出Tolerance和frequency error,計(jì)算方法在庫函數(shù)中可以看到:

          count0 = window - total_error;

          valid  = 2 * total_error;

          count1 = window * freq1 / freq0;

          配置好后,一旦DCC 被使能,counter0 和Valid0 會在每一次clock0 的時(shí)鐘信號來一次減1,同樣的,counter1 會在每一次clock1的時(shí)鐘信號來一次減1。

          我們先假設(shè)clock0 是個(gè)可靠的時(shí)鐘,在clock1 的精度在允許最大誤差內(nèi)運(yùn)行的時(shí)候,三個(gè)計(jì)數(shù)器應(yīng)該按照下列順序到達(dá)0:

          Counter0 -> Counter1 -> Valid0

          如果clock1的誤差偏大,那么 有兩種失效可能性:

          一種是clock1 偏快,那么就會出現(xiàn)clock1 的counter1 先到達(dá)0。

          一種是clock1 偏慢 ,那么就會出現(xiàn)clock0和valid0都到達(dá)0 之后, counter1 還沒到達(dá)0。

          2.實(shí)際應(yīng)用:

          在實(shí)際應(yīng)用中,我們既可以用Clock0 來監(jiān)測Clock1的精度,也可以用clock1 來監(jiān)測Clock0的丟失(將Clock0設(shè)為XTAL)(因?yàn)镃lock1輸入只能選內(nèi)部時(shí)鐘)。DCC 的值的計(jì)算比較復(fù)雜,可以用TI 提供的driverlib 函數(shù)DCC_continuousMonitor()來完成計(jì)算,也可以參考Ware中的例程,方便快速實(shí)現(xiàn)功能。DCC 相關(guān)例程的路徑如下:C:tic2000Ware_4_03_00_00driverlibf28004xexamplesdcc

          需要注意的是:

          DCC 還可以配置為在單次或連續(xù)模式下運(yùn)行。 在單次模式下,DCC 執(zhí)行一次性倒計(jì)時(shí),當(dāng)計(jì)數(shù)器達(dá)到 0 時(shí) DCC 停止操作。引發(fā)完成中斷并可以檢查狀態(tài)。

          在連續(xù)模式下,因?yàn)樾枰i住發(fā)生錯誤的時(shí)刻(即counter0 或counter1 的值),也會使得DCC 模塊報(bào)錯后,counter停止工作。會遇到只能進(jìn)入一次DCC中斷的情況,如果客戶希望多次進(jìn)入DCC 中斷,則需要在DCC中斷中重新使能DCC模塊,可以通過調(diào)用這個(gè)函數(shù)來實(shí)現(xiàn):DCC_enableModule(DCC0_BASE)。

          3.總結(jié):

          使用DCC模塊可以方便快捷地實(shí)現(xiàn)對兩路時(shí)鐘信號輸入頻率的自主、實(shí)時(shí)監(jiān)控,通過對兩路時(shí)鐘計(jì)數(shù)器的比較,可以實(shí)現(xiàn)對時(shí)鐘系統(tǒng)可靠的監(jiān)控,從而保證整個(gè)系統(tǒng)的安全可靠運(yùn)行。

          4.參考文檔:

          Continuous Monitor of the PLL Frequency With the DCC

          C2000 Real-Time Control Peripheral Reference Guide (Rev. Q)

          TMS320F28004x Real-Time Microcontrollers Technical Reference Manual (Rev. F)



          關(guān)鍵詞: C2000 DCC 系統(tǒng)時(shí)鐘

          評論


          相關(guā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); })();