微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > S3C2440初始化时钟设置

S3C2440初始化时钟设置

时间:11-25 来源:互联网 点击:
S3C2440 CPU默认的工作主频为12MHz或16.9344MHz,在我的2440的开发板上上使用的是12MHZ,这里使用最多的也是12M。使用PLL电路可以产生更高的主频供CPU及外围器件使用。

S3C2440有两个PLL:MPLL和UPLL,UPLL专用与USB设备。MPLL用于CPU及其他外围器件。

通过MPLL会产生三个部分的时钟频率:FCLK、HCLK、PLCK。FCLK用于CPU核,HCLK用于AHB总线的设备(比如SDRAM),PCLK用于APB总线的设备(比如UART)。

设置S3c2440的时钟频率就是设置MPLL的几个寄存器:

1、LOCKTIME:设为0x00ffffff

MPLL启动后需要等待一段时间(Lock Time),使得其输出稳定。位[23:12]用于UPLL,位 [11:0] 用于MPLL。使用确省值0x00ffffff即可。

2、CLKdivN:用来设置FCLK:HCLK:PCLK的比例关系,默认为1:1:1

这里值设为0x05(HdivN=2,PdivN=1),即FCLK:HCLK:PCLK=1:4:

3、MPLLCON:设为(0x7f < 12)|(0x02 < 4)|(0x01),即0x7f0021

对于MPLLCON寄存器,[19:12]为Mdiv,[9:4]为Pdiv,[1:0]为Sdiv。有如下计算公式:

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

m=(Mdiv+8), p=(Pdiv+2), s=SdivFin即默认输入的时钟频率12MHz。MPLLCON设为0x7f0021,可以计算出FCLK=400MHz,再由CLKdivN的设置可知:HCLK=100MHz,PCLK=50MHz。

例子:


rMPLLCON=(0x5c<12)|(1<4)|1; //总频Fclk设置为400M
// MPLL(FCLK) = (2 * m * Fin)/(p * 2^s)
// m=(Mdiv+8), p=(Pdiv+2), s=Sdiv
//MPLLCON寄存器,[19:12]为Mdiv,[9:4]Pdiv,[1:0]为Sdiv


rCLKdivN=0x05; //分频因子设置
//(HdivN=2, PdivN=1),即FCLK:HCLK:PCLK=1:4:8
//HCLK=100M ; PCLK=50M
cal_cpu_bus_clk(); //??????

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top