时钟设置

自己总结一下系统时钟的设置,有哪里不对的,说得不全的,请大家指教啊~~

为什么要设置系统时钟?不是有外部晶振可以给cpu提供工作的频率吗?是这样的,外部晶振提供的频率一般是十几兆,而我们cpu才不同情况下需要的频率不同,一般需要几百兆,而且cpu的工作频率和其他的设备工作频率也不完全一样,例如UART,所以就需要几种不同的频率,FCLK,HCLK,PCLK。

要满足上述的需求,需要通过设置pll来实现(pll分为MPLL、UPLL(主要用于USB),这里讲的都是MPLL),目的是提高时钟频率和经过分频得到不同的频率,例如外部晶振提供的频率只有12M,而你内部需要的时钟频率需要很高,比如是400M,那就需要通过设置pll来提高时钟频率得到FCLK,然后经过分频得到HCLK和PCLK

晶振—》pll—》400MFCLK

400M—》HCLK—》PCLK

 

设定pll分三部分:

1.锁定时间

上电后,cpu是以外部晶振提供的频率来工作,启动MPLL后,经过一个Lock Timecpu才以一个新的频率(FCLK)去工作,这个Lock Time一般是使用默认值

 

2.设置pll寄存器

 

对于MPLLCON 寄存器,[19:12] 为MDIV ,[9:4] 为PDIV ,[1:0] 为SDIV 。有如下计算公式:

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

其中: m = MDIV + 8, p = PDIV + 2 ,s=SDIV

 

 

3.设置分频寄存器

 

就是设置FCLKHCLKPCLK之间的比例关系

这样就OK

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值