嵌入式单片机学习

uboot-step 7 时钟初始化

2016-08-03  本文已影响48人  2625K

uboot-step 7 时钟初始化

上篇文章已经点亮了led,但是我们所用的时钟频率还只是外部时钟的频率12M,比较慢,这篇文章将会介绍下s3c6410的时钟体系,并对如何配置时钟作详细的说明

s3c6410 的时钟体系说明

9.2.png

如上图所示,s3c6410主要有三个锁相环pll,分别为APLL,MPLL,EPLL

如何进行时钟的配置

对处理器任何的设置最终都反映在相应寄存器的读写,对于时钟的配置主要有以下几点:

APLL与MPLL配置
pllcon0.png
pllcon.png
pllcon1.png

我们设定输出频率为533M,参照上图进行相关的设置就可以了

CLK_DIV0配置
clk_div0.png
clk_div.png

这里我们的寄存器设置如下:


OTHERS寄存器配置
others0.png
others1.png

这里我们设置为同步模式,选用APLL输出作为系统总线时钟


CLK_SRC选择时钟源
clk_src.png clk_src1.png

设置APLL,EPLL,MPLL输出使能

代码实现

#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))

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

ldr r0, =OTHERS
ldr r1, [r0]
bic r1,r1,#0xc0  @同步模式,总线时钟由APLL提供
str r1, [r0]

ldr r0, =APLL_CON
ldr r1, =PLL_VAL @使能pll,输出为533M
str r1, [r0]

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

ldr r0, =CLK_SRC
mov r1, #0x3  @配置使用pll时钟输出
str r1, [r0]

mov pc, lr

此去经年
zhaiyk@sina.cn
August 2, 2016

上一篇下一篇

猜你喜欢

热点阅读