LPC2103芯片的時鐘系統(tǒng).doc_第1頁
LPC2103芯片的時鐘系統(tǒng).doc_第2頁
LPC2103芯片的時鐘系統(tǒng).doc_第3頁
LPC2103芯片的時鐘系統(tǒng).doc_第4頁
LPC2103芯片的時鐘系統(tǒng).doc_第5頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

了解LPC2103芯片的時鐘系統(tǒng)。分清晶振頻率(FOSC)、處理器時鐘(Fcclk)、系統(tǒng)外設時鐘(Fpclk)、CCO時鐘。通過對鎖相環(huán)PLL和VPB分頻器的配置,實現(xiàn)我們想要的時鐘系統(tǒng)。我們開始。先看下面的圖。(圖一 幾種頻率的關系。括號里是有關的寄存器名)PLL鎖相環(huán):可以通過PLL升頻和增強抗干擾性能。VPB分頻器: 對PLL時鐘分頻,供給片上外設使用。區(qū)分下面四種時鐘頻率的概念:晶振頻率(FOSC):外部晶振的頻率,我們的板子焊的是11.0592M的。 處理器時鐘(Fcclk):芯片執(zhí)行指令的頻率。Fcclk = FOSC PLL倍頻。相關寄存器:PLLCFG4:0。VPB時鐘(Fpclk):給片內(nèi)外設提供的時鐘頻率。Fpclk=Fcclk/PLL分頻。相關寄存器:APBDIVCCO時鐘:不用管它是干什么的。只要把它設置成156MHz320MHz就行。相關寄存器:PLLCFG6:5PLL配置需要的寄存器如下:PLLCON:PLL控制寄存器??刂芇LL使能和PLL連接的狀態(tài)。PLLCFG:PLL配置寄存器。設置PLL倍頻和PLL分頻。PLLSTAT:PLL狀態(tài)寄存器。只讀寄存器,讀出PLL狀態(tài)。PLLFEED:PLL饋送寄存器。將值0xAA、0x55寫入PLLFEED,才能使PLLCON和 PLLCFG的配置生效。VPB配置需要的寄存器APBDIV:VPB分頻器。計算頻率值:Fosc = 11.0592MHz /外部晶振頻率Fcclk = 11.0592*6 = 66.3552MHz /處理器時鐘(Fcclk)必須低于芯片的最高頻率70MHzFpclk = Fcclk/4 = 16.5888MHz /VPB時鐘(Fpclk)Fcco = 66.3552*2*P = 265.4208MHz/必須在156MHz320MHz之間設置過程。先對PLLCFG設置,PLLCON置成使能,但不連接的狀態(tài)。等待PLL頻率鎖定以后,最后把PLL設置成連接入狀態(tài),把經(jīng)過PLL倍增的頻率接入,作為系統(tǒng)時鐘使用。下面是程序例子,在main函數(shù)中調(diào)用。void Init_VPB_PLL()/Fosc = 11.0592MHz/Fcclk = 11.0592*6 = 66.3552MHz/Fcco = 66.3552*2*P =265.4208MHz/Fpclk =16.5888MHz/ 配置VPB分頻器相關寄存器 APBDIV = 0x00; / Fcclk * 1/4 /配置PLL鎖相環(huán)相關寄存器 PLLCFG = 0x25; / 0 01 00101 分頻器值(P=2) 倍增器值(M=6) /PLLCFG=(6-1)|(15); PLLCON = 0x01; / PLLE=1 PLL使能 但PLL未連接 PLLFEED = 0xAA;/ 0xAA 和0x55,為固定數(shù)據(jù),寫入以后。配置才會生效。 PLLFEED = 0x55; while(PLLSTAT&(110)=0); /等待解鎖;PLLSTAT第十位0為未鎖1為鎖住 PLLCON = 0x03; /PLLE=1 PLLC=1 PLL使能并連接 PLLFEED = 0xAA; PLLFEED = 0x55; /配置/* 系統(tǒng)設置, Fosc、Fcclk、Fcco、Fpclk必須定義*/#define Fosc 11059200 /晶振頻率,10MHz25MHz,應當與實際一至#define Fcclk (Fosc * 6) /系統(tǒng)頻率,必須為Fosc的整數(shù)倍(132),且=60MHZ#define Fcco (Fcclk * 4) /CCO頻率,必須為Fcclk的2、4、8、16倍,范圍為156MHz320MHz#define Fpclk (Fcclk / 4) * 1 /VPB時鐘頻率,只能為(Fcclk / 4)的1, 2 ,4倍PLLCON = 1;/PLL工作 但是沒有連接/*設定VPBDIV的時鐘*/#if (Fcclk / 4) / Fpclk) = 1 VPBDIV = 0;/APB 總線時鐘為處理器時鐘的1/4#endif#if (Fcclk / 4) / Fpclk) = 2 VPBDIV = 2;/APB 總線時鐘為處理器時鐘的1/2#endif#if (Fcclk / 4) / Fpclk) = 4 VPBDIV = 1;/APB 總線時鐘與處理器時鐘相同#endif/*設定分頻和倍頻系數(shù)*/ #if (Fcco / Fcclk) = 2 PLLCFG = (Fcclk / Fosc) - 1) | (0 5);/分頻為1倍頻為1#endif#if (Fcco / Fcclk) = 4 PLLCFG = (Fcclk / Fosc) - 1) | (1 5);/分頻為2倍頻為2#endif#if (Fcco / Fcclk) = 8 PLLCFG = (Fcclk / Fosc) - 1) | (2 5);/分頻為4倍頻為3#endif#if (Fcco / Fcclk) = 16 PLLCFG = (Fcclk / Fosc) - 1) | (3 5);/分頻為8倍頻為3#endif PLLFEED = 0xaa; PLLFEED = 0x55; while(PLLSTAT & (1 10) = 0);/等待解鎖;PLLSTAT第十位0為未鎖1為鎖住 PLLCON = 3; PLLFEED = 0xaa; PLLFEED = 0x55; 我用IAR軟件哪位大俠說一下FIQ使用的流程!#include iolpc2103.h#include #include #define VPBDIV (*(volatile unsigned char *) 0xE01FC100)#define IOPIN (*(volatile unsigned long *) 0xE0028000)#define Fosc 11059200 /外部晶振頻率 11.0592M#define Fcclk (Fosc * 4) /處理器時鐘 Fosc * 4#define Fpclk (Fcclk / 4) * 1 /VPB時釧頻率#define Fcco (Fcclk * 4) /PLL的操作頻#define LED1 1 17#define LED2 1 18#define LED3 1 19#define LED4 1 20_fiq _arm void fiq_handler(void)IOCLR = LED1|LED2|LED3|LED4;void PLL_Init()/* 設置系統(tǒng)各部分時鐘 */PLLCON = 1; /使能PLL但不連接 PLLCON.E = 1,PLLCON.C = 0if (Fpclk / (Fcclk / 4) = 1) VPBDIV = 0; / VPBDIV = 0,則Fpclk = 1/4 Fcclk (復位值)if (Fpclk / (Fcclk / 4) = 2) VPBDIV = 2; /VPBDIV = 2,則Fpclk = 1/2 Fcclkif (Fpclk / (Fcclk / 4) = 4) VPBDIV = 1; /VPBDIV = 1,則Fpclk = Fcclk;if (Fcco / Fcclk) = 2) PLLCFG = (Fcclk / Fosc) - 1) | (0 5);if (Fcco / Fcclk) = 4) PLLCFG = (Fcclk / Fosc) - 1) | (1 5);if (Fcco / Fcclk) = 8) PLLCFG = (Fcclk / Fosc) - 1) | (2 5);if (Fcco / Fcclk) = 16) PLLCFG = (Fcclk / Fosc) - 1) | (3 5);PLLFEED = 0xaa;PLLFEED = 0x55;while(PLLSTAT & (1 10) = 0);PLLCON = 0x00000011;PLLFEED = 0xaa;PLLFEED = 0x55;void GPIO_Init()PINSEL0 = 0x00000000;PINSEL1 = 0x00000000; /設置P0.16為EINT0IODIR = LED1|LED2|LED3|LED4;IOSET = LED1|LED2|LED3|LED4;void VIC_Init()VICIntEnClear = 0xffffffff; /中斷全部使能關閉VICSoftIntClear = 0xffffffff; /清除軟件中斷VICProtection= 0; /清除VIC保護VICVectAddr = 0; /清除向量IRQ中斷服務程序地址VICDefVectAddr = 0; /清除非向量IRQ中斷服務程序地址/清除所有向量IRQ地址VICVectAddr0 = VICVectAddr1 = VICVectAddr2 = VICVectAddr3 = VICVectAddr4 = VICVectAddr5 = VICVectAddr6 = VICVectAddr7 = VICVectAddr8 = VICVectAddr9 = VICVectAddr10 = VICVectAddr11 = VICVectAddr12 = VICVectAddr13 = VICVectAddr14 = VICVectAddr15 = 0;VICVectCntl0 = VICVectCntl1 = VICVectCntl2 = VICVectCntl3 = VICVectCntl4 = VICVectCntl5 = VICVectCntl6 = VICVectCntl7 = VICVectCntl8 = VICVectCntl9 = VICVectCntl10 = VICVectCntl11 = VICVectCntl12 = VICVectCntl13 = VICVectCntl14 = VICVectCntl15 = 0;void EINT0_Init() PINSEL1 = PINSEL1 | 0x01;/設定P0.16連接到EINT0 VICIntSelect = 114; /選擇EINT0 為FIQ中斷 VICIntEnab

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論