好久沒來博客了。一直忙考試了,不過一切都結束了,暫時能夠繼續作本身想作的事情了。今天來實驗室繼續玩ARM了,學習了2103的PLL部分。總的來講,仍是比較簡單。固然關於PLL這個硬件的具體實現我還不是很清楚,當初高頻沒學好喃。。學習
PLL的概述:spa
PLL它原本接收的輸入時鐘頻率範圍僅爲10MHz~25MHz,而後能夠經過一個振盪器(CCO)倍增到範圍10MHz~70MHz。倍頻器能夠是1到32的一個整數,不過實際上沒那麼多,由於跟LPC2103具體的最大工做頻率相關。最高頻率爲70MHz。CCO的操做頻率爲156MHz~320MHz。故在PLL內部還有一個額外的分頻器在PLL提供所須要的輸出頻率時使CCO保持在其頻率範圍。輸出分頻器能夠設置爲二、四、八、16分頻產生輸出時鐘。下圖展現了PLL的內部邏輯原理。博客
PLL激活由PLLCON寄存器控制,PLL倍頻器和分頻器的值由PLLCFG寄存器控制。因爲芯片的全部操做都依賴於PLL(包括看門狗),若是操做PPL錯誤的話,將引發後續的執行錯誤。因此咱們須要對它進行保護,保護的操做相似於操做看門狗定時器的饋送序列來實現。PLL在芯片復位時和進入掉電模式後關閉並旁路。PLL的使能只能經過軟件實現。程序必須在配置並激活PLL後等待其鎖定,而後做爲時鐘源鏈接到PLL。it
下面就是PLL的相關寄存器,很少,只有4個。原理
1。選擇須要操做的處理器操做頻率(CCLK),根據處理器的總體要求等各方面來設定。外圍器件的時鐘頻率能夠低於處理器頻率。軟件
2.選擇振盪器頻率(Fosc)。CCLK必定是Fosc的整數倍。配置
3.計算M值匹配MSEL位。M = CCLK/Fosc。M的取值範圍爲1~32,在PLLCFG中,寫入MSEL的值爲M-1.硬件
4.選擇P值以配置PSEL位,使Fcco在定義的限制頻率範圍內。P必須是一、二、4或8其中的一個。寫入PPCFG中PSEL的值見下表。定時器
PLL的操做也有兩種方式。程序
一是.查詢方式
1.PLLCON=1,設定PLL以前,需使能PLL,但不能鏈接PLL。
2.設定P和M的值(PLLCFG)
3.發送PLL饋送序列。
4.等待PLL鎖定--PLLSTAT.10 = 1.
5.PLLCON=3,設定P和M以後,鏈接PLL。
6.發送PLL饋送序列,把P和M的值寫入硬件。
二是中斷方式
1.PLLCON=1,設定PLL以前,需使能PLL,但不能鏈接PLL。
2.設定P和M的值(PLLCFG)
3.發送PLL饋送序列。
PLL中斷服務程序:
4.PLLCON=3,設定P和M以後,鏈接PLL。
5.發送PLL饋送序列,把P和M的值寫入硬件。
6.禁止PLL中斷,返回。
以上就是關於PLL的部分。參考《EasyARM2103教材》
天天進步一點。