新聞中心

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

LPC2478時(shí)鐘系統(tǒng)學(xué)習(xí)筆記

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


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

本文引用地址:http://butianyuan.cn/article/201611/319017.htm


對(duì)于lpc2478來說,其外部時(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.

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


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


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


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


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


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

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


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


11保留。


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

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


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


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

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


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


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


注意:


1,如果用戶程序中用到USB接口,F(xiàn)CCO必須為48MZ的整數(shù)倍(如96等)。


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


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


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


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


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


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


PLLFEED寄存器通過按順序?qū)憯?shù)據(jù)保護(hù)PLLCON,PLLCFG寄存器中的值。1. 寫 0xAA to PLLFEED.2. 寫 0x55 to PLLFEED.如果次序中任何一步不正確,PLLCON,PLLCFG寄存器中的值不會(huì)改變。


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


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


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


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


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


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


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



評(píng)論


技術(shù)專區(qū)

關(guān)閉