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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > LPC2103學習之PLL

          LPC2103學習之PLL

          作者: 時間:2016-11-21 來源:網(wǎng)絡 收藏
          很久沒來博客了。一直忙考試了,不過一切都結束了,暫時可以繼續(xù)做自己想做的事情了。今天來實驗室繼續(xù)玩ARM了,學習了2103的PLL部分。總的來說,還是比較簡單。當然關于PLL這個硬件的具體實現(xiàn)我還不是很清楚,當初高頻沒學好喃。。

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

          PLL的概述:

          PLL它本來接收的輸入時鐘頻率范圍僅為10MHz~25MHz,然后可以通過一個振蕩器(CCO)倍增到范圍10MHz~70MHz。倍頻器可以是1到32的一個整數(shù),不過實際上沒那么多,因為跟LPC2103具體的最大工作頻率相關。最高頻率為70MHz。CCO的操作頻率為156MHz~320MHz。故在PLL內部還有一個額外的分頻器在PLL提供所需要的輸出頻率時使CCO保持在其頻率范圍。輸出分頻器可以設置為2、4、8、16分頻產(chǎn)生輸出時鐘。下圖展示了PLL的內部邏輯原理。

          PLL激活由PLLCON寄存器控制,PLL倍頻器和分頻器的值由PLLCFG寄存器控制。由于芯片的所有操作都依賴于PLL(包括看門狗),如果操作PPL錯誤的話,將引起后續(xù)的執(zhí)行錯誤。所以我們需要對它進行保護,保護的操作類似于操作看門狗定時器的饋送序列來實現(xiàn)。PLL在芯片復位時和進入掉電模式后關閉并旁路。PLL的使能只能通過軟件實現(xiàn)。程序必須在配置并激活PLL后等待其鎖定,然后作為時鐘源連接到PLL。

          下面就是PLL的相關寄存器,不多,只有4個。

          1。選擇需要操作的處理器操作頻率(CCLK),根據(jù)處理器的整體要求等各方面來設定。外圍器件的時鐘頻率可以低于處理器頻率。

          2.選擇振蕩器頻率(Fosc)。CCLK一定是Fosc的整數(shù)倍。

          3.計算M值匹配MSEL位。M = CCLK/Fosc。M的取值范圍為1~32,在PLLCFG中,寫入MSEL的值為M-1.

          4.選擇P值以配置PSEL位,使Fcco在定義的限制頻率范圍內。P必須是1、2、4或8其中的一個。寫入PPCFG中PSEL的值見下表。

          PLL的操作也有兩種方式。

          一是.查詢方式

          1.PLLCON=1,設定PLL之前,需使能PLL,但不能連接PLL。

          2.設定P和M的值(PLLCFG)

          3.發(fā)送PLL饋送序列。

          4.等待PLL鎖定--PLLSTAT.10 = 1.

          5.PLLCON=3,設定P和M之后,連接PLL。

          6.發(fā)送PLL饋送序列,把P和M的值寫入硬件。

          二是中斷方式

          1.PLLCON=1,設定PLL之前,需使能PLL,但不能連接PLL。

          2.設定P和M的值(PLLCFG)

          3.發(fā)送PLL饋送序列。

          PLL中斷服務程序:

          4.PLLCON=3,設定P和M之后,連接PLL。

          5.發(fā)送PLL饋送序列,把P和M的值寫入硬件。

          6.禁止PLL中斷,返回。



          關鍵詞: LPC2103PL

          評論


          技術專區(qū)

          關閉
          看屁屁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); })();