歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 嵌入式Linux:系統時鐘的寄存器

嵌入式Linux:系統時鐘的寄存器

日期:2017/3/1 10:14:49   编辑:Linux編程

整個芯片有3個時鐘:FCLK、HCLK和PCLK

(1)FCLK:用於CPU

(2)HCLK:用於AHB(Advanced High Performance Bus)總線上的設備,比如存儲控制器、中斷控制器、DMA等(高性能模塊)

(3)PCLK:用於APB(Advanced Peripheral Bus)總線上的設備,比如WATCHDOG、IIS、IIC等(低寬帶外設)

開發板上電時,FCLK等於外部輸入的時鐘(即振晶頻率),若要提高系統時鐘,需要軟件來啟動PLL,而PLL包括UPLL和MPLL,UPLL專用於USB設備,MPLL用於設置FCLK、HCLK和PCLK

如何通過控制MPLL來設置FCLK、HCLK和PCLK呢?主要設置好3個主要寄存器的值就能搞定,他們分別是:LOCKTIME寄存器、MPLLCON寄存器、CLKDIVN寄存器和CAMDIVN寄存器

(1)LOCKTIME寄存器:用於設置MPLL啟動後穩定前所需等待的時間(Lock time),一般使用默認值就行。

(2)MPLLCON寄存器:用於設置FCLK與Fin的倍數

位[19:12]的值稱為MDIV,位[9:4]的值稱為PDIV,位[1:0]的值稱為SDIV

MPLL(FCLK)=(m*Fin)/(p*2^s)

其中:m=MDIV+8,p=PDIV+2,s=SDIV

(3)CLKDIVN寄存器、CAMDIVN寄存器:用於設置FCLK、HCLK和PCLK三者的比例

HDIVN=CLKDIVN[2:1]

PDIVN=CLKDIVN[0]

HCLK4_HALF=CAMDIVN[9]

HCLK3_HALF=CAMDIVN[8]

Copyright © Linux教程網 All Rights Reserved