修改S3C2440的时钟工作频率

修改S3C2440的时钟工作频率

之前写程序都没有设置过S3C2440的时钟,一上来就是设置寄存器和点灯,这和stm32的使用很不一样。在本文中将设置S3C2440的时钟频率,并用流水灯来看效果。设置的频率如下表。

时钟 频率
FCLK 400MHz
HCLK 100MHz
PCLK 50MHz

时钟概览

打开S3C2440用户手册,查看第七章CLOCK & POWER MANAGEMENT。首先来看概览OVERVIEW的第二段:

The Clock control logic in S3C2440A can generate the required clock signals including FCLK for CPU, HCLK for the AHB bus peripherals, and PCLK for the APB bus peripherals. The S3C2440A has two Phase Locked Loops (PLLs): one for FCLK, CLK, and PCLK, and the other dedicated for USB block (48Mhz). The clock control logic can make slow clocks without PLL and connect/disconnect the clock to each peripheral lock by software, which will reduce the power consumption.

于是可以得到时钟用途表:

时钟 用途
FCLK CPU
HCLK AHB
PCLK APB

S3C2440A拥有两个锁相环(PLL),MPLL用于产生上述三个时钟,UPLL用于产生USB时钟。PLL的原理不清楚,会用就行了。

S3C2440A的时钟框图

在这里插入图片描述
从左上角看起。时钟源有两个选择:OSC(晶振)和EXTCLK(外部时钟源)。通过OM[3:2]来选择。开始以为OM[3:2]是寄存器OM的两个位,但是在S3C2440手册中,寄存器一般以CON结尾。再翻看一下手册,发现上面有一段话,以及一个表格。

在这里插入图片描述
也就是说OM[3:2]其实是S3C2440A上的两个引脚。然后看到JZ2440原理图上对引脚的设置是这样的:
在这里插入图片描述
可以看到OM3与OM2引脚都接地,因此OM[3:2]=00B。因此看表格的第一行,选择的是晶振模式,即使用OSC作为时钟源,而OSC又来自XTlpll。然后来看看这个时钟源的频率是多少,在原理图上搜索XTIpll
在这里插入图片描述
可以看到,晶振频率为12MHz。
继续看框图。经过OM[3:2]选择后,MPLL得到一个时钟频率,并且经过处理后输出一个时钟(FCLK),最后经过某个寄存器的配置,得到HCLK和PCLK。然后就可以为CPU、AHB和APB的工作提供时钟了。
现在可以清楚时钟的分配路线是

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值