S3C2440时钟体系结构

这次我们来了解一下ARM时钟体系结构,

以前我们经常说2440等等这些芯片是SOC,即system on chip

在这些芯片上,不只有CPU,还有各种外设

我们打开2440的芯片手册,查看结构图

我们可以看到里面有CPU,还有各种高速和低速外设。

同时,2440引入了3个时钟,CPU工作于FCLK,AHB工作于HCLK,APB工作于PCLK

我们来查看一下芯片手册:

可以看出,2440的CPU工作于400MHz的,AHB最大工作频率为136MHz,APB最大工作频率为68MHz。

现在我们想知道如何得到这三种时钟(FCLK,HCLK,PCLK)?

我们查看一下原理图,我们可以看到他的时钟源是12M的晶振

问:这12M的晶振如何得到400MHz的频率?

答:通过PLL(锁相环)


从上图可以看出,时钟源有两个,一个是晶振OSC(图左上角),可以通过EXTCLK引脚输入的时钟,然后通过OM [3 :2]选择器,

查看芯片手册知:OM [3 :2] 如果是00的话,这里有两个PLL,都使用晶振(Crystal)作为时钟源.2440有两个PLL,一个是生成时钟给CPU使用,另外一个是生成时钟给USB使用。现在我们打开原理图查看这两个引脚是不是都为0?

由上图可知,两个引脚都被接地了。即知这两个PLL都使用晶振作为时钟源

我们再看一下时钟框架图:

由上图知,

1 ,晶振12MHz通过OM进入到MPLL,使用P [5:0],M [7:0],S [1:0]来控制输出的频率,

2 ,晶振12MHz通过OM进入到UPLL,使用P [5:0],M [7:0],S [1:0]来控制输出的频率,

我们来了解一下,MPLL是主要的锁相环,UPLL即为USBPLL,经过MPLL得到一个时钟,这个时钟会作为FCLK提供给CPU,再经过HDIVN得到HCLK,然后提供给AHB总线,经过PDIVN得到PCLK,然后提供给APB总线。同时,晶振的时钟通过UPLL提供时钟给USB,


问:怎么编程控制MPLL,HDIVN,PDIVN

答:我们查看一下芯片手册:

1,我们一上电,则复位会拉低一段时间,等待电源稳定才输出高电平,2440里面有专用的复位芯片可以帮助我们完成这项工作。

2,

3,当n重设拉高后,PLL会将OM [3:2]这两个引脚的值锁存进来,同时CPU开始运行,这个时候,我们就可以来设置PLL了,

4,设置PLL。设置的时候FCLK停止起振,锁定时间就等于新的时钟了

5,等待PLL工作,此时FCLK等于PLL输出的时钟,CPU运行

大概过程就是这样,现在我们想知道如何设置寄存器?

打开芯片手册,来查看相应寄存器


芯片手册还提供了一个参考表供我们使用和参考:


猜你喜欢

转载自blog.csdn.net/kxzkxzz/article/details/80650974