2009年11月27日 星期五

ARM : 時鐘系統














由上圖,可知有三個振..器可以做為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需要有精確的誤差.
































沒有留言:

張貼留言