很久沒來部落格了。一直忙考試了,不過一切都結束了,暫時可以繼續做自己想做的事情了。今天來實驗室繼續玩ARM了,學習了2103的PLL部分。總的來說,還是比較簡單。當然關於PLL這個硬體的具體實現我還不是很清楚,當初高頻沒學好喃。。
PLL的概述:
PLL它本來接收的輸入時鐘頻率範圍僅為10MHz~25MHz,然後可以通過一個振蕩器(CCO)倍增到範圍10MHz~70MHz。倍頻器可以是1到32的一個整數,不過實際上沒那麼多,因為跟LPC2103具體的最大工作頻率相關。最高頻率為70MHz。CCO的操作頻率為156MHz~320MHz。故在PLL內部還有一個額外的分頻器在PLL提供所需要的輸出頻率時使CCO保持在其頻率範圍。輸出分頻器可以設定為2、4、8、16分頻產生輸出時鐘。展示了PLL的內部邏輯原理。
PLL啟用由PLLCON寄存器控制,PLL倍頻器和分頻器的值由PLLCFG寄存器控制。由於晶片的所有操作都依賴於PLL(包括看門狗),如果操作PPL錯誤的話,將引起後續的執行錯誤。所以我們需要對它進行保護,保護的操作類似於操作看門狗定時器的饋送序列來實現。PLL在晶片複位時和進入掉電模式後關閉並旁路。PLL的使能只能通過軟體實現。程式必須在配置並啟用PLL後等待其鎖定,然後作為時鐘源串連到PLL。
下面就是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必須是1、2、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教材》
每天進步一點。