时钟体系

1、2440时钟产生模块

S3C2440可以使用外部晶振(XTIpll(默认为12MHZ)
和外部时钟(EXTCLK)两种方式输入时钟信号。它由跳
线OM[3:2]决定。 

S3C2440 默认的工作主频为12MHz
(晶振频率),S3C2440有两个PLL
MPLLUPLL。通
MPLL会产生三个部分的时钟频率:
FCLKHCLK
PLCKUPLL则负责产生USB所需时钟UCLK

2、2440有两个锁相环PLL(MPLL和UPLL)

3、时钟初始化流程

      

4、时钟工作流程

1、上电几毫秒后,晶振输出稳定,FCLK=晶振频率,nRESET信号恢复高电平后,CPU开始执行指令。

2、我们的程序开头启动MPLL,设置MPLL的寄存器

3、在设置MPLL的寄存器后,需要等待一段时间(LockTime),MPLL的输出才稳定。在这段时间(Lock Time)内,FCLK停振,CPU停止工作。Lock Time的长短 由寄存器LOCKTIME设定。
4、Lock Time之后,MPLL输出正常,CPU工作在新的FCLK下。

5、时钟初始化--寄存器配置

      1、设置locktime(LOCKTIME 寄存器

      2、设置分频系数(CLKDIVN 寄存器)

      3、如果FCLK  != HCLCK (即CLKDIVN 寄存器 PDIVN 位不为0)应设置CPU至异步模式。

      4、设置UCLK与FCLK频率(UPLLCON 寄存器、MPLLCON 寄存器

      5、NOTE: When you set MPLL&UPLL values, you have to set the UPLL value first and then the MPLL value. (Needs intervals
    approximately 7 NOP)

6、启动代码时钟初始化
#define CLKDIVN 0x4c000014
#define MPLLCON 0x4c000004
#define MPLL_405MHZ ((127<<12)|(2<<4)|(1<<0))

init_clock:
	ldr r0, =CLKDIVN
	mov r1, #0x5
	str r1, [r0]
	
	mrc p15,0,r0,c1,c0,0
	orr r0,r0,#0xc0000000
	mcr p15,0,r0,c1,c0,0
	
	ldr r0, =MPLLCON
	ldr r1, =MPLL_405MHZ
	str r1, [r0]
	mov pc, lr


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值