S3C6410时钟初始化

原创 2013年12月02日 14:14:37

个人原创,转载请注明出处:  http://blog.csdn.net/hongkangwl/article/details/17070927


S3C6410有三个PLL,分别为APLL、MPLL和EPLL。
其中APLL产生ACLK,给arm core使用,
MPLL产生HCLKX2、HCLK和PCLK,
EPLL产生特殊的时钟,比如为USB提供48MHz时钟


可以看到,外部时钟(一般为12M)经过APLL后再经过设置分频系数DIVARM后产生供ARM核使用的ARMCLK;

外部时钟经过MPLL后经过分频系数DIV_HCLKX2后产生时钟HCLKX2;

时钟HCLKX2经过分频系数DIV_HCLK后产生时钟HCLK;

时钟HCLKX2经过分频系数DIV_PCLK后产生时钟PCLK;

一般在设置时钟时,三星官网有推荐的值,那么我们只需设置官方提供的几个系数就OK了。


S3C6410 系统时钟初始化步骤:
1.设置同步或异步模式;
2.设置时钟分频系数;
3.设置 PLL 控制器;
4.选择 PLL 输出时钟为系统时钟源。

时钟的设置涉及到如下几个寄存器的设置:

#define CLK_DIV0 0x7e00f020
#define OTHERS 0x7e00f900
#define MPLL_CON 0x7e00f010
#define APLL_CON 0x7e00f00c
#define CLK_SRC 0x7e00f01c
#define DIV_VAL ((0x0<<0)|(0x1<<9)|(0x1<<8)|(0x3<<12))
#define PLL_VAL ((1<<31)|(266<<16)|(3<<8)|(1<<0))

1,设置同步异步是通过others寄存器完成:



设置成同步模式通过如下代码完成:

	ldr r0, =OTHERS
	ldr r1, [r0]
	bic r1,r1,#0xc0
	str r1, [r0]
2.设置时钟分频系数:

首先需要设置HCLKX2_RATIO,然后再设置ARM_RATIO、PCLK_RATIO、HCLK_RATIO,在这里我们设置ARM_RATIO=0、PCLK_RATIO=1、HCLK_RATIO=1、HCLKX2_RATIO=1,设置代码如下:

	ldr r0, =CLK_DIV0
	ldr r1, =DIV_VAL
	str r1, [r0]

3设置PLL控制器:

PLL控制寄存器有APLL_CON和MPLL_CON



在这里设置MDIV=266 PDIV=3 SDIV =1;

代码如下:

	ldr r0, =MPLL_CON
	ldr r1, =PLL_VAL
	str r1, [r0]

经过设置后,根据上图中Fout的计算公式:FOUT= 266*12、(2*3) = 533M HZ;

APLL_CON的设置相似:


在这里设置MDIV=266 PDIV=3 SDIV =1;

计算结果亦为533M HZ

4 时钟源设置

CLK_SRC



通过设置CLK_SRC的第0位和第一位,使后端的时钟分别为APLL 和MPLL,

设置如下:

	ldr r0, =CLK_SRC
	mov r1, #0x3
	str r1, [r0]

这样,设置完成后ARMCLK为533M HZ

HCLKX2= 533/(1+1) = 266M HZ

HCLK = HCLKX2  / (1+1 )  = 133MHZ

PCLK = HCLKX2 /(3+1) = 66M HZ


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

S3C6410 时钟初始化

++++++++++++++++++++++++++++++++++++++++++ 本文系本站原创,欢迎转载! 转载请注明出处: http://blog.csdn.net/mr_raptor/a...

s3c6410时钟初始化程序

  • 2012-03-14 22:07
  • 279B
  • 下载

s3c6410时钟初始化程序

  • 2011-10-08 00:55
  • 279B
  • 下载

s3c6410的时钟初始化

一篇不可多得的有关时钟方面的博文: http://www.cnblogs.com/lp1129/articles/3008344.html

S3C6410 时钟初始化

++++++++++++++++++++++++++++++++++++++++++ 本文系本站原创,欢迎转载! 转载请注明出处: http://blog.csdn.net/mr_raptor/art...

S3C6410系统时钟初始化

转载请注明出处: http://blog.csdn.net/mr_raptor/article/details/6442914 ++++++++++++++++++++++++++++++++++...

S3C6410 时钟初始化

 ++++++++++++++++++++++++++++++++++++++++++ 本文系本站原创,欢迎转载! 转载请注明出处: http://blog.csdn.net/mr_rapt...

s3c6410时钟初始化

今天自己写bootloader做时钟初始化时遇到的问题,特记录下来。为了方便理解,我大部分都有截图, 在此我先说明下,图均来自数据手册。也希望看了本篇文章的同志多多参看数据手册才能理解的更加透彻,才能...

ARM软件访问硬件的核心理论(2.1)---S3C6410 时钟分析

S3C6410的ARM内核是 ARM1176JZF-S ,在1.1v下最高可以跑 533MHz,1.2v可以跑 667MHz。   S3C6410用的是可以使用外部晶振(XXTIpll)和外部时...

S3C6410裸机RTC实时时钟

相对于STM32,6410的RTC是相当的简单. /*****************************************************************...
  • cp1300
  • cp1300
  • 2013-05-10 07:10
  • 1612
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)