其中pll 包含兩種: MPLL 主要應用于各種設備時鐘的提供,將重點討論
UPLL 應用于USB時鐘頻率應用,為48M
其中MPLL的設置主要依靠使用各種鎖相環(huán)和分頻器來改變輸入原始的頻率,經(jīng)過鎖相環(huán)之后可以提升頻率,關于頻率的選擇主要依靠改變CPU寄存器實現(xiàn),MPLLCON通過改變其中的參數(shù)設置即可
Mpll = (m * Fin) / (p * 2s)
m = (MDIV + 8), p = (PDIV + 2), s = SDIV
MPLL就是要得到的頻率,我建議用參考手冊給定的頻率設置即可,標準之際。
接下來該設置各種設備的頻率:
我所認為的MPLL分出三種模式:FCLK、HCLK、PCLK
這三種也應用于不同的場合,F(xiàn)CLK應用于CPU的時鐘,HCLK用于AHB bus各種外圍設備,PCLK 用于APB bus各種接口設備。
其中FCLK 應用就是MPLL的頻率,一樣的,不用設置的。
HCLK 可以設置為FCLK或FCLK/2 ,即通過設置相應得寄存器CLKDIVN中的對應位HDIVN即可,其中HDIVN為0時對應FCLK,為1時對應FCLK/2
PCLK可以設置為HCLK或HCLK/2 ,即通過設置相應得寄存器CLKDIVN中的對應位PDIVN即可,其中PDIVN為0時對應HCLK,為1時對應HCLK/2
If HDIVN=1, the CPU bus mode has to be changed from the fast bus mode to the asynchronous bus mode using following instructions.
MMU_SetAsyncBusMode
mrc p15,0,r0,c1,c0,0
orr r0,r0,#R1_nF:OR:R1_iA
mcr p15,0,r0,c1,c0,0
If HDIVN=1 and the CPU bus mode is the fast bus mode, the CPU will operate by the HCLK. This feature can be used to change the CPU frequency as a half without affecting the HCLK and PCLK.
以上這段文字也是講關于寫協(xié)處理器來控制協(xié)調(diào)內(nèi)部總線和外部總線的關系,不過原文有點不太明白,又不敢把錯的意思表達出來,貽害眾生,只好原文照搬后談點看法,我感覺是當HCLK中設置為FCLK/2 時必須協(xié)調(diào)與內(nèi)部總線關系,至于同步非同步還要通過協(xié)處理器來管理,這樣就可以很好的協(xié)調(diào)各種總線的關系了,當出現(xiàn)HDIVN=1和CPU總線被設為快速非同步模式時,CPU(我認為是總線頻率)可以完全依靠HCLK提供頻率,因此將會改變CPU頻率時不會影響到其它的變化。
今天看數(shù)據(jù)手冊時有發(fā)現(xiàn)了幾點沒有發(fā)現(xiàn)的東西,主要是關于協(xié)處理器的。
ARM920T 竟然有兩種輸入時鐘方式,F(xiàn)CLK 和BCLK ,其中BCLK 主要提供給AMBA
Bus的,也可以通過選擇協(xié)處理器的R1的NF,iA位來選擇是否供是時鐘給核ARM920T,才明白上面所述的