s3c2440時鐘控制邏輯可以產生fclk、hclk、pclk和uclk。fclk為cpu時鐘。hclk為ahb匯流排外設時鐘,包括儲存控制器、中斷控制器、lcd控制器、dma控制器等。pclk為apb匯流排外設時鐘,包括看門狗、iis、iic、pwm定時器、mmc介面、adc、uart、gpio、rtc和spi等等。uclk專用於usb主機或裝置介面時鐘。
時鐘源的選擇:
時鐘源的選擇是通過om3和om2管腳控制的,時鐘源可以是外部晶振,也可以是外部時鐘。
s3c2440有兩個鎖相環(pll),乙個用於fclk、hclk和pclk的mpll,另乙個專用於uclk的upll。
mpllcon
和upllcon
暫存器用於設定
fclk
和uclk
的時鐘頻率,那麼最後的時鐘頻率是如何計算的呢,有如下公式:
對於fclk
:fout= (2 * m * fin) / (p * 2s)
m= (mdiv + 8), p = (pdiv + 2), s = sdiv
對於uclk
:fout= (m * fin) / (p * 2s)
m= (mdiv + 8), p = (pdiv + 2), s = sdiv
s3c2440
資料手冊上也給出了典型值,我們也來驗證一下他給的設定是否正確。比如
uclk
為48mhz
,他給的
mdiv為56
,pdiv為2
,sdiv為2
,那麼uclk
為多少呢,依照上面給的公式計算得到如下值:
(56+8)*12/((2+2)*2²)=48
,結果正確。如果我要設定
fclk
為400mhz
,資料手冊上也沒有給出參考,唯一接近的是
405mhz
mdiv= 92
、pdiv= 1
、sdiv= 1
,大家依照上面的公司計算一下,看
fclk
是否為400mhz
。前面也只是設定了
fclk
和uclk
的時鐘,還有
hclk
和pclk
沒有設定,
hclk
和pclk
是通過fclk
分頻得來的。通過
clkdivn
暫存器來控制。
也就是說還和
camdivn
暫存器有關。
S3C2440時鐘描述
1 上電幾毫秒後,晶振輸出穩定,fclk 晶振頻率,nreset訊號恢復高電平後,cpu開始執行指令。2 我們可以在程式開頭啟動mpll,在設定mpll的幾個暫存器後,需要等待一段時間 lock time mpll的輸出才穩定。在這段時間 lock time 內,fclk停振,cpu停止工作。loc...
S3C2440 時鐘計算
s3c2440有兩個pll phase locked loop 乙個是mpll,乙個是upll。mpll用於cpu及其他外圍器件,upll用於usb。s3c2440a 中的時鐘控制邏輯可以產生必須的時鐘訊號,包括cpu 的fclk,ahb 匯流排外設的hclk 以及 apb 匯流排外設的pclk。s...
S3C2440時鐘計算
關於mpll的計算方法 1.u32 mpll val 0 mpll val 92 12 1 4 2 算得mpll val 的二進位制 0101 1100 0000 0001 0010 注意 92 12 中的92 為十進位制數,轉換為二進位制為 0x5c。2.changempllvalue mpll ...