目标:由上节可知,要想得到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工作于新的频率
————————————————
版权声明:本文为CSDN博主「会飞的潴」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44152647/article/details/95604006
上一篇:jz2440裸机开发与分析:内存控制器2之不同位宽设备的连接
下一篇:jz2440裸机开发与分析:内存控制器3之时序图分析
推荐阅读最新更新时间:2024-11-09 10:55
设计资源 培训 开发板 精华推荐
- MiNi-USB转TYPE-C转接板
- 使用 Semtech 的 SC1631 的参考设计
- LT1086IT-12 低压差负电源的典型应用
- 用于汽车应用的 LTC3632IDD 5V、20mA 稳压器的典型应用电路
- ESP32 C3 Module
- LT3692AHFE、3.3V 和 1.8V 2 级双路降压多频转换器的典型应用电路
- DN05032/D - 24 Vin、40 Watt、低成本、DC-DC 转换器设计说明
- LTC1261CS8-4.5 最小部件数 -4V 发生器的典型应用电路
- CN0281
- EVAL-ADP2311,用于 ADP2311、1A、18V、双通道、同步降压稳压器的评估板,具有故障安全电压监控功能