jz2440裸机开发与分析:ARM芯片时钟体系2

目标:由上节可知,要想得到FCLK = 400MHz,HCLK = 100MHz,PCLK = 50MHz的时钟需要配置两个寄存器,分别为MPLLCON和CLKDIVN

第一步:先对LOCKTIME初始化

在这里插入图片描述

/* LOCKTIME(0x4C000000) = 0xFFFFFFFF */
	ldr r0,=0x4C000000
	ldr r1,=0xFFFFFFFF
	str r1,[r0]
第二步:对MPLL进行配置,配置为400MHz

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由以上公式可以推断:
MPLL = (2*(92+8)*12)/((1+2)*2^1) =400
m = 92+8 p=1+2 s=1
再配置也需注意
在这里插入图片描述
所以MPLL配置过程为

/*设置CPU工作于异步模式*/
    mrc p15,0,r0,c1,c0,0
	/*R1_nF:OR:R1_iA = #0xc0000000*/
    orr r0,r0,#0xc0000000        
    mcr p15,0,r0,c1,c0,0
	/*设置MPLLCON(0x4C000004) = (0x5c << 12) | (1 << 4) | (1 << 0) */
	ldr r0,=0x4C000004
	ldr r1,=(0x5c << 12) | (1 << 4) | (1 << 0) 
	str r1,[r0]
第三步:配置CLKDIVN得到PCLK和HCLK的时钟分别为50MHz和100MHz

在这里插入图片描述
代码;

/* 设置MPLL 使FCLK : HCLK : PCLK = 400M : 100M ; 50M*/
	/* LOCKTIME(0x4C000000) = 0xFFFFFFFF */
	ldr r0,=0x4C000000
	ldr r1,=0xFFFFFFFF
	str r1,[r0]
    /*设置CLKDIVN0(0x4C000014) = 0x5*/
	ldr r0,=0x4C000014
	ldr r1,=0x5
	str r1,[r0]

注意:一旦设置了PLL,就会锁定lock time直到PLL输出稳定,然后CPU工作于新的频率

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值