由上圖,可知有三個振..器可以做為PLL的頻率來源.而且PLL的輸出是系統頻率,晶片內的模組(RTC除外)的頻率都是由PLL的輸出提供的.故其PLL的設定,必須注意
1.在power on, reset,從掉電模式中喚醒,會自動地選擇內部RC振盪器作為PLL的頻率來源.
2.在改變振率來源之前,要先斷開並停止PLL,否則系統可能會因PLL不隱而當機
3.如果選擇主振盪器作為箹頻率來源,在使用之前一定要先等待其隐定
內部RC振盪器(IRC)
可以作為看門狗的來源,或是提供給PLL及CPU.但IRC不可做為USR的來源,因為頻率不夠精準.標準的IRC為4MHz
主振盪器
可以在使用或不使用PLL的情況下作為CPU的頻率,可以透過PLL來倍顏.其輸出為OSCCLK.PLLCLKIN選擇其PLL的輸入來源,而其ARM的頻率稱為CCLK
RTC振盪器
作為RTC,看門狗.可以作為PLL,CPU的頻率來源
PLL(鎖相環)
從32K到50M HZ的輸入振盪.輸入後將被倍頻到整數倍的頻率後,又被分頻來提供給CPU及USB及其它的模組使用.
輸入後,先由一個"N"的數值來做為分頻動作(1~256).再透過電流控制振盪器來(CCO)由 "M"(1~32768)來倍頻.其總輸出後的頻率範圍為275MHz~550MHz
其中最重要的PLL
的控制在使用之前要經下列的步驟 1.設置,2.使能,3.鎖定,4.連接,而PLL將由下列的暫存器來控制
1.PLLCON --PLL control register.
bit 0 :PLL enabled
bit 1 :PLL connect
other :temp
包含了enable(以允許它倍頻或是分頻) & connect(使CPU和所有晶片功態從PLL輸出頻率開始) PLL的功能.
PLL在更改之前需執行PLL的饋送序列才可以,正確執行
2.PLLCFG --PLL 配置 暫存器
bit 14:0--PLL倍頻值(M-1)
bit 15 --:temp
bit 23:16 :PLL分頻值(N-1)
bit 31:24 :temp
包含有PLL的倍頻和分頻值.PLLCFG只有在執行PLL饋送序列才生效
3.PLLSTAT -PLL 狀態 暫存器
bit 14:0--讀回PLL倍頻器值
bit 15 --temp
bit 23:16-讀回PLL分頻值
bit 24 --PLLE,讀回PLL enable bit,enable--set,orther--disable
bit 25 --PLLC,讀回PLL連接位元,只有當PLLC和PLLE都為1 時,PLL才作為LPC2300的時鐘來源.
bit 26 --PLOCK,為PLL的鎖定狀態,當為0,PLL未鎖定,反之,在開啓PLL或改變參數時,PLL在新的條件下需要一些時間來建立及鎖定.
bit 31:27 --temp
4.PLLFEED -PLL 饋送 暫存器
必須將正確的饋送序列寫入PLLFEED木能使PLLCON和PLLCFG更改有效.(0xAA,0x55
-------------------
PLL的設置
1.判斷PLL現在是否已連結,則使用一個饋送來斷開與PLL的連接
2.用一個饋送來禁止PLL
3.如果需要,在沒有PLL的情況下改變CPU頻率分頻來加速操作
4.寫時鐘來源控制暫存器來改變來源
5.寫PLLCFG,並加上饋送序列使之有效.PLLCFG只有在PLL被禁止時才可更新
6.用一個饋送序列使能PLL
7.改變CPU的時鐘分頻器設置使之與PLL一起操作.在連接PLL之前完成
8.通過監控PLLSTAT暫存器的PLOCK或使用PLOCK中斷來等待PLL 鎖定,或當PLL的輸入頻率低(32K)時等待一個固定的時間.當PLL參考頻率大於20M時,PLOCK可能不隱,此時,可設定某一段時間即為隱定
9.用一個饋送來連接PLL
-------------
及其它的暫存器
PCLKSRCSEL
bit 1:0 --選擇其PLL頻率來源(00-RC,01-PLL,RTC-TRC)
bit 7:2 --always 0
CPU頻率配置暫存器(CCLKCFG
bit 7:0--CCLKSEL
(PLLOCK/CCLKSEL+1) CPU在使用PLL輸出之前,CCLKCFG暫存器控制PLL的分頻,當PLL被旁路時,可通過1分頻.當PLL正在運作時,輸出必須被分頻以使CPU時鐘頻率(CCLK)工作在限定的範圍內
USB時鐘配置暫存器(USBCLKCFG)
bit 3:0 --USBSEL-(PLLOCK/USBSEL+1) 同CPU頻率配置暫存器一樣,但其USB需要有精確的誤差.







沒有留言:
張貼留言