ARM7單片機(jī)(學(xué)習(xí)ing)—(KZ)、ARM7系列的相關(guān)頻率的介紹
我之前做的實(shí)驗(yàn)中,好多都不知道那個(gè)pclk是怎么出來(lái)的~~我還納悶的~~呵呵,這篇就詳細(xì)介紹了我之前的那個(gè)大漏洞~~
這篇雖然說(shuō)是篇介紹,但是ARM7里面的頻率還是很重要的,尤其是UART~~
很多人都說(shuō)FIFO是個(gè)大重點(diǎn)~~
在LPC210X系列的單片機(jī)中,IIC、SPI、UART、PWM、定時(shí)/計(jì)數(shù)器還有就是在Startup.s文件里的初始化頻率等等都是有關(guān)頻率的~~
所以就想把我現(xiàn)在用到的頻率的相關(guān)知識(shí)總結(jié)一下~~
由于前面已經(jīng)介紹過(guò)PLL(鎖相環(huán)),這里也就不說(shuō)了~~
不過(guò)可以參考一下PLL的介紹:
http://blog.sina.com.cn/s/blog_7ec8fc2c01013b5j.html
ARM7系列的相關(guān)頻率的介紹:
這里首先介紹一下存儲(chǔ)器的映射,之所以要介紹它,可能都會(huì)認(rèn)為與這些頻率有什么關(guān)系?!
但是不然,這里的VPB和AHB(對(duì)于AHB我還是不太理解,所以我也就不介紹了~~重點(diǎn)就是VPB了~~)以我個(gè)人的理解來(lái)說(shuō),他們的頻率是不一樣的,VPB是有個(gè)與外設(shè)有關(guān)的頻率(看下圖的VPB存儲(chǔ)器的映射),要有專門的寄存器控制!!就是VPBDIV這個(gè)寄存器,會(huì)在后面專門介紹的~~
然后微控制器又有一個(gè)自己的是時(shí)鐘~~我猜應(yīng)該是應(yīng)用在SRAM或者Flash這些東西吧~~
系統(tǒng)存儲(chǔ)器映射:
然后就是VPB的存取器的映射:
顯然從VPB外設(shè)的映射可以看出,VPB區(qū)域有著定時(shí)器、UART、PWM、IIC、SPI等等外設(shè)相關(guān)的寄存器來(lái)控制和檢測(cè)外設(shè)的狀態(tài)改變,這時(shí)就需要用到頻率了~~
頻率從哪里來(lái)呢(這里我主要說(shuō)在開(kāi)啟PLL鎖相環(huán)時(shí)的頻率的情況)~~
正如上圖所示,下面我就一個(gè)一個(gè)頻率來(lái)說(shuō)~~
1、Fosc
這個(gè)就比較簡(jiǎn)單了,它就是晶振或者外部時(shí)鐘源~~
范圍:10~25MHz
2、Fcco
PLL電流控制振蕩器的頻率(這個(gè)寄存器我感覺(jué)沒(méi)什么用,具體我也不知道有什么用~~)
范圍:156~320MHz
3、cclk
PLL輸出頻率,也就是處理器的時(shí)鐘頻率
這里我也不想介紹,因?yàn)樵赑LL那一節(jié)已經(jīng)介紹過(guò)了,請(qǐng)看:
http://blog.sina.com.cn/s/blog_7ec8fc2c01013b5j.html
然后我就舉個(gè)例子(就是拿Keil 4中的Startup.s文件中的設(shè)置來(lái)舉例的~~):
系統(tǒng)設(shè)計(jì)需要Fosc=12MHz,cclk=60MHz。
依照這個(gè)要求,M=cclk/Fosc=60/12=5。
因此,將M-1=4寫(xiě)入PLLCFG[4:0]。
P值可由P=Fcco/(cclk*2)得出,但是Fcco必須在156~320MHz之間內(nèi)。
假設(shè)Fcco最低頻率為156MHz,則P=156/(2*60)=1.3;若Fcco為最高頻率320MHz,則P=320/(2*60)=2.67。
由此可知滿足Fcco最低和最高頻率要求的P值只能是2。
因此,PLLCFG[6:5]=01。
好了,上面的就是Keil中的啟動(dòng)文件的關(guān)于上面三個(gè)頻率的介紹~~
4、pclk
外設(shè)器件所使用的時(shí)鐘~~
正如上圖所示:一個(gè)是處理器時(shí)鐘(cclk),一個(gè)是VPB時(shí)鐘(pclk),這兩個(gè)才是時(shí)鐘里面咱們真正用到的~~
控制pclk的正是VPB分頻器~~
下面就介紹一下VPB分頻器:
然后在Keil中的啟動(dòng)文件設(shè)置就是那個(gè)00嘍~~
~~
至于AHB~~沒(méi)有頭緒~~是不是軟件中斷用的,但是跟VPB又有什么關(guān)系呢~~
等以后用到了~~再說(shuō)吧~~