
5.9 鎖相環PLL1(Phase Locked Loop 1)
PLL1僅從主晶振獲得自己的時鐘頻率,并且可以用于僅為USB子系統提供混合48MHz的時鐘頻率,這可以看作由PLL0提供USB時鐘源以外的另一個選擇。
PLL1在復位后是禁用并且處于關閉狀態,如果PLL1被停用,USB的時鐘可以由完成提供48MHz信號狀態設定后的PLL0提供,如果PLL1通過PLL1CON寄存器使能并且連接,那么PLL1將自動的作為USB子系統的時鐘源。
PLL1的激活由PLL1CON寄存器控制,它的倍頻和分頻值由PLL1CFG寄存器控制,為了防止PLL1參數發生意外改變或者PLL1失效,對這兩個寄存器進行了保護,完成保護的饋送順序類似于看門口定時器。圖5.13為LPC17xx的PLL1的結構框圖。
圖5.13 PLL1結構框圖
以下將描述PLL1涉及的寄存器及其功能描述。
1.PLL1控制寄存器PLL1 Control register(PLL1CON,0x400F C0A0)
PLL1CON寄存器可以用于使能和連接PLL1,使能PLL1鎖定到當前倍頻器和分頻器值設定的頻率上,連接PLL1將使USB子系統功能根據PLL1的輸出時鐘來工作,對PLL1CON的更改只有在對PLL1FEED寄存器執行了正確的PLL饋送序列后才生效。
表5.15 PLL1控制寄存器
PLL1在作為USB子系統時鐘源之前必須進行設置、使能并鎖定。
2.PLL1配置寄存器PLL1 Configuration register(PLL1CFG,0x400F C0A4)
PLL1CFG寄存器是最新的PLL1配置值的保存寄存器,包含PLL倍頻器和分頻器的值。在執行正確的PLL1饋送序列之前改變PLL1CFG寄存器的值不會生效。
表5.16 PLL1配置寄存器
3.PLL1狀態寄存器PLL1 Status Register(PLL1STAT,0x400F C0A8)
PLL1STAT為只讀寄存器,它是PLL1控制和配置信息的回讀寄存器,反映了正在使用的真實PLL1的參數和狀態。PLL1STAT可能和PLL1CON和PLL1CFG中的值不同,這是因為沒有執行正確的PLL1饋送序列,這兩個寄存器中的值并未生效。
表5.17 PLL1狀態寄存器
PLL1STAT寄存器中的PLOCK1位連接到中斷控制器,這樣可以使用軟件打開PLL1并連接到其他功能,不需要等待PLL1鎖定,當發生中斷時(PLOCK1=1),可以連接PLL1并禁止中斷。
PLL1有3種可能的工作方式,由PLLE1和PLLC1位組合獲得。
表5.18 PLL1的工作模式
4.PLL1饋送寄存器PLL1Feed register(PLL1FEED,0x400F C0AC)
必須將正確的饋送序列寫入PLL1FEED寄存器才能使PLL1CON和PLL1CFG寄存器的更改生效。饋送序列如下:
將值0xAA寫入PLL1FEED
將值0x55寫入PLL1FEED
這兩個寫操作的順序必須正確,而且在兩次操作之間必須沒有其他的寄存器訪問相同的地址空間(從0x400F C000到0x400F FFFF),這就意味著盡量在執行PLL1饋送的操作的時候禁止中斷。不管寫入的值不正確還是沒有滿足前兩個條件,對PLL1CON或者PLL1CFG寄存器的更改都不會生效。
表5.19 PLL1饋送寄存器
5.PLL1和掉電模式
掉電模式會自動關閉并斷開PLL1,從掉電模式喚醒不會自動恢復PLL1的設置,PLL1的恢復必須由軟件來完成。通常,一個將PLL1激活并等待鎖定,然后將PLL1連接的子程序可以在任何中斷服務程序的開始調用,有一點非常重要,那就是不要試圖在掉電喚醒后簡單的執行饋送序列來重新啟動PLL1,這會出現在PLL1鎖定建立之前同時使能并連接PLL1的危險。
6.PLL1頻率計算
表5.20 PLL1所需變量表
PLL1的輸出頻率公式為:USBCLK=M×FOSC或者USBCLK=FCCO/(2×P)
確定PLL1為USB提供時鐘配置的方法如下:
* PLL1需要輸出的時鐘頻率是USBCLK=48MHz;
* 選擇時鐘頻率(FOSC)。FOSC可以是12MHz,16MHz以及24MHz;
* 計算配置MSEL1的M值;
* 計算配置PSEL1的P值。
聲明:本內容為作者獨立觀點,不代表電源網。本網站原創內容,如需轉載,請注明出處;本網站轉載的內容(文章、圖片、視頻)等資料版權歸原作者所有。如我們采用了您不宜公開的文章或圖片,未能及時和您確認,避免給雙方造成不必要的經濟損失,請電郵聯系我們,以便迅速采取適當處理措施;歡迎投稿,郵箱∶editor@netbroad.com。
微信關注 | ||
![]() |
技術專題 | 更多>> | |
![]() |
技術專題之EMC |
![]() |
技術專題之PCB |