S3C2440时钟体系分析

在这里插入图片描述
在这里插入图片描述

  • FCLK 时钟用于CPU
  • HCLK时钟用于AHB bus 外设
  • PCLK 时钟用于 APB bus 外设

S3C2440 有两个锁相环(PLLs),
一个用于FCLK,HCLK,PCLK
另一个专门用于USB 模块

时钟控制逻辑可以在没有PLL的情况下制作慢速时钟,并通过软件将时钟连接/断开与每个外围模块的连接,从而降低了功耗。

在这里插入图片描述

通过在片内集成的2个锁相环:MPLL和UPLL,可对输入的Fin=12MHz的晶振频率进行倍频。S3C2440使用了三个倍频因子MDIV、PDIV和SDIV来设置倍频,通过寄存器MPLLCON和UPLLCON可设置倍频因子。其中MPLLCON寄存器用于设置处理器内核时钟主频FCLK,其输入输出频率间的关系为

               FCLK=MPLL=(2*m*Fin)/(p*2^s)

其中m=(MDIV+8), p=(PDIV+2), s=SDIV。

其中UPLLCON寄存器用于产生48MHz或96MHz,提供USB时钟(UCLK),其输入输出频率间的关系为

UCLK=UPLL=(m * Fin) / (p * 2^s)

其中m=(MDIV+8), p=(PDIV+2), s=SDIV。

手工计算相对复杂些,我们可以根据欲得到的主频FCLK大小,直接通过查表来获知各倍频因子的设置参数,详见。

S3C2440的数据手册中提供了一个表格来查询各个输出频率和输入频率所对应的MPLL中参数m、p和s的值,使用的时候最好只使用该表格中推荐的数值。

在这里插入图片描述
除了可设置内核时钟FCLK,还需要设置AHB总线设备使用的HCLK和APB总线设备使用的PCLK。通过CLKDIVN和CAMDIVN这两个寄存器可设置三者的分频关系,如图4 为CLKDIVN的说明,可以通过设置CLKDIVN和CAMDIVN的相关位来设置这三个时钟。

在这里插入图片描述

2440提供了CLKOUT0和CLKOUT1这两个引脚用于测试时钟。可以通过设置MISCCR寄存器的CLKSEL0和CLKSEL1位来选择CLKOUT0和CLKOUT1的时钟源。其时钟源分别有000=MPLL输出,001为UPLL输出,010为RTC输出,011为HCLK,100为PCLK,101为DCLK1/0,11X为保留的。

在这里插入图片描述

main clock 时钟源 来自 外部晶振(XTIpll)或者外部时钟(EXTCLK)

时钟发生器包括一个振荡器(oscillator)(振荡放大器)(Oscillation Amplifier),它是连接到外部晶振,并且还具有两个PLL(锁相环),它们产生高电平S3C2440A需要的频率时钟。

在这里插入图片描述

再普通操作模式下设置时钟步骤:
1、设置 CLKDIVN
2、设置PMS
3、set CLKDIVN registe

在这里插入图片描述

如何设置寄存器使其能正常运行

在这里插入图片描述
上图表达了MO[3:2]控制了时钟源时什么

下面是按照FCLK=400 HCLK =200 PCLK = 200
notes:
1)虽然MPLL在打开重新reset之后就会启动。但是只有当有效的设定MPLLCON寄存器,之后MPLL才会作为系统的时钟,在这之前时钟直接使用来自晶振或外部的时钟作为系统的时钟,所以即使你不想修改默认的MPLLCON寄存器的值,你还是要去设置默认值给MPLLCON寄存器
2)当OM[1:0] 是11的时候,OM[3:2}被用做test mode的选择
这里我们设置OM[3:2] = 00
在这里插入图片描述
设置MPLL lock time = 0xffff
在这里插入图片描述
在这里插入图片描述
按照表输入12MHZ 输出400MHZ设置

开启具体哪个功能的时钟控制

在这里插入图片描述
时钟分频寄存器
在这里插入图片描述
设置HDIVN =01 PDIVN = 1

代码:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值