<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > LPC2478時(shí)鐘系統學(xué)習筆記

LPC2478時(shí)鐘系統學(xué)習筆記

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò ) 收藏
LPC2478芯片有 the Main Oscillator, the Internal RC Oscillator, and the RTC oscillator三個(gè)獨立的時(shí)鐘系統。下面分別介紹三者:


上電或任何復位發(fā)生時(shí),lpc2478將the Internal RC Oscillator作為時(shí)鐘源。此后用戶(hù)程序(軟件)選擇是否選用其它兩個(gè)時(shí)鐘源。

本文引用地址:http://dyxdggzs.com/article/201611/319017.htm


對于lpc2478來(lái)說(shuō),其外部時(shí)鐘在1MZ-24MZ之間。the Main Oscillator可以作為CPU的時(shí)鐘源,也可以作為或不作為PLL的時(shí)鐘源。


The oscillator(晶振) output is called oscclk。在使用the Main Oscillator作為時(shí)鐘源時(shí),其可以工作在兩種模式下:slave mode and oscillation mode.

其電容的選擇可參考數據手冊。我們通過(guò)軟件控制SCS register來(lái)啟動(dòng)the Main Oscillator作為時(shí)鐘源(OSCRANGE,OSCEN,OSCSTAT位)。OSCRANGE為0,其頻率為1MZ-20MZ;為1,其頻率為15MZ-24MZ. OSCEN為1使能。OSCSTAT為1說(shuō)明the Main Oscillator可以作為時(shí)鐘源,已經(jīng)穩定。


The RTC oscillator(Real-Time Clock)主要用于實(shí)時(shí)時(shí)鐘看門(mén)狗定時(shí)器,也可以用于驅動(dòng)PLL和CPU.


關(guān)于使用三種時(shí)鐘源時(shí)應該注意以下兩點(diǎn):


1、the Internal RC Oscillator不能用于USB模塊。


2、如果CAN模塊的波特率在100K以上時(shí),不能使用the Internal RC Oscillator作為時(shí)鐘源。


The CLKSRCSEL register的前兩位決定使用哪種時(shí)鐘源作為驅動(dòng)PLL的時(shí)鐘源。
00(默認)the Internal RC Oscillator作為驅動(dòng)PLL的時(shí)鐘源。

01 theMain Oscillator作為驅動(dòng)PLL的時(shí)鐘源。


10 The RTC oscillator作為驅動(dòng)PLL的時(shí)鐘源。


11保留。


PLL (Phase Locked Loop)——鎖相環(huán)。LPC2478的PLL可接受32K-24MZ的驅動(dòng)時(shí)鐘源。經(jīng)過(guò)其倍頻后供給CPU和USB等模塊使用.

LPC2400系列中引導啟動(dòng)與LPC2000系列稍有不同。其中有關(guān)PLL的部分有些需要注意。在ISP模式下,引導代碼會(huì )通過(guò)IRC時(shí)鐘源驅動(dòng)PLL,從而啟動(dòng)PLL。


這就是說(shuō)在我們的用戶(hù)程序開(kāi)始執行之前PLL已經(jīng)使能,如果我們選擇其他的時(shí)鐘源,必須按照步驟次序斷開(kāi)PLL.另外,在ISP模式下,引導代碼會(huì )改變某些寄存器的值。如the SCS register中的GPIOM位會(huì )被置位。用戶(hù)必須注意這點(diǎn),否則可能導致PORT0 and PORT1不能正常使用。


PLL寄存器主要有以下四個(gè)。PLLCON,PLLCFG,PLLSTAT,PLLFEED。

PLLCON(可讀寫(xiě))包括使能和連接位。PLL作為其他模塊的時(shí)鐘源之前必須啟動(dòng),使能,鎖相達到穩定狀態(tài)。


PLLCFG(可讀寫(xiě))為配置寄存器。MSEL設置‘M’的值,NSEL設置‘N’的值。下面為計算公式:FCCO = (2 × M × FIN) / N


當輸入時(shí)鐘FIN在MZ級別上變化時(shí),‘M’取值范圍6-512,當輸入時(shí)鐘在低頻變化時(shí),‘M’取特殊的值(參考數據手冊)。 FIN范圍是 32 kHz to 50 MHz。 FCCO范圍是 275 MHz to 550 MHz。


注意:


1,如果用戶(hù)程序中用到USB接口,FCCO必須為48MZ的整數倍(如96等)。


2,在選擇CPU的時(shí)鐘源,也需要考慮USB的情況,FCCO最好為兩者的公倍數。低頻時(shí)功耗消耗也低。


3,對于驅動(dòng)PLL時(shí)鐘源的選擇上述三者均可,但如果用到USB則必須使用the main oscillator。


4,通過(guò)計算公式得到的‘N’,‘M’值必須減一寫(xiě)入寄存器中。其中‘N’值最好小一點(diǎn)。最好使用數據手冊中推薦的值。


舉例:用戶(hù)程序中用到USB,期望的FCCO值為288MZ,CPU工作頻率60MZ,外部時(shí)鐘為4MZ。


由以上公式可導出M = (FCCO × N) / (2 × FIN),假設N=1,
M = 288 × 106 / (2 × 4 × 106) = 36,PLLCFG中位0x23 (N - 1 = 0; M - 1 = 35 = 0x23)。對于CPU,288 × 106 / 60 × 106 = 4.8,取整數5即可,CPU=57.6 MHz。如果要求精確,則FCCO只能去48和60的最小公倍數480MZ,再計算即可。(更多舉例請參考數據手冊)


PLLSTAT(只讀)狀態(tài)寄存器。MSEL, NSEL為當前值比實(shí)際使用的值小1.PLLE,PLLC為1表示PLL使能連接。PLOCK為1表示鎖定相位,它可以監視PLL是否達到穩定狀態(tài),可以為下一級使用。PLOCK還連接到了中斷控制器。用戶(hù)使用軟件可以控制。當中斷發(fā)生,PLL連接使用,中斷失效。


PLLFEED寄存器通過(guò)按順序寫(xiě)數據保護PLLCON,PLLCFG寄存器中的值。1. 寫(xiě) 0xAA to PLLFEED.2. 寫(xiě) 0x55 to PLLFEED.如果次序中任何一步不正確,PLLCON,PLLCFG寄存器中的值不會(huì )改變。


掉電模式下PLL自動(dòng)關(guān)閉。當芯片從掉電模式下被喚醒時(shí),PLL不會(huì )自動(dòng)的連接,必須由軟件完成(由相應的中斷服務(wù)程序)。需要注意的是不能簡(jiǎn)單的通過(guò)向PLLFEED寄存器中依次喂食啟動(dòng)PLL,如果這樣會(huì )出現錯誤。


PLL的啟動(dòng)設置順序:此序列非常重要不能出現錯誤。


1,如果PLL已經(jīng)連接,通過(guò)喂食序列斷開(kāi)連接。
2,通過(guò)喂食序列斷開(kāi)使能。
3,如果需要加快無(wú)鎖相時(shí)的速度,改變CPU分頻器的設置。
4,寫(xiě)The PCLKSRCSEL register以選擇相應的時(shí)鐘源驅動(dòng)PLL。
5,寫(xiě)PLLCFG,喂食序列保證生效。此時(shí)PLL是不使能狀態(tài)。
6,使能PLL, 喂食序列保證生效。
7,在使能PLL的條件下,改變CPU分頻器的設置。在連接PLL之前這一點(diǎn)非常重要。
8,等待PLL穩定。通過(guò)監視PLOCK(the PLLSTAT register)是否置位確定?;蛘咄ㄟ^(guò)中斷實(shí)現,或者等待固定時(shí)間。
9,連接PLL,喂食序列保證生效。


PLL輸出的時(shí)鐘通過(guò)分頻用于CPU和USB等模塊。當USB接口使時(shí),CPU頻率必須大于18MZ。USB接口頻率必須是48MZ的整數倍。


CPU Clock Configuration register (CCLKCFG ),配置寄存器控制PLL輸出給CPU分頻的大小。當PLL無(wú)連接時(shí),CCLKCFG取值為1。CCLKSEL取值為0,1,3,5……255。此值加1為實(shí)際分頻大小。


USB Clock Configuration register (USBCLKCFG),配置寄存器控制PLL輸出給USB分頻的大小。當PLL無(wú)連接時(shí),CCLKCFG取值為1。USBCLKCFG取值為0,1,2,3,4,5,6,7。此值加1為實(shí)際分頻大小。


IRC Trim Register (IRCTRIM) 該寄存器是用來(lái)調整片內的4 MHz振蕩器。
Peripheral Clock Selection registers 0 and 1 (PCLKSEL0 and PCLKSEL1)該寄存器用來(lái)設置外圍模塊的時(shí)鐘。(數據手冊P58)



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>