飞卡日常进度之K60时钟

刚听说到K60的时钟时,相信你也会感觉到乱花渐欲迷人眼,无从下手的感觉,我的51不过就一个晶振而已嘛!!!(雾QAQ)


Kinetis 时钟分类

Kinetis 系列单片机,有四个时钟:内核时钟(core)、总线时钟(bus)、外部
总线时钟(FlexBus)【Flex意思是用户可配置的(或灵活的)的意思)】、Flash 时钟(Flash clock)

KL系列是没有FlexBus时钟,而且Bus时钟和Flash时钟是相等的。

这些时钟是可以设置的。
K60的在 pll_init 里面,有个设置分频的 set_sys_dividers 函数。

设置系统分频因子选项:set_sys_dividers(a,b,c,d);
那样的话, MCG=PLL:
core = MCG/(a + 1), bus = MCG/(b + 1),
FlexBus = MCG/(c + 1), Flash clock= MCG/(d + 1)

各种时钟的用途

内核时钟 ,顾名思义是cortex-M4 内核的工作频率,主要是 运算,滴答定时器,串口0、1 的工作频率
bus频率,是kinetis 的外围模块工作频率,例如 串口2~4 ,I2C ,PIT定时器。
flex bus,是芯片外围的工作频率,例如驱动 片外 SDRAM 等
flash 频率,就是 flash 模块的工作频率,代码都保存在 flash 里的。

山外K60超频

山外K60库 的超频设置非常简单,只需要修改宏定义即可,在k60_fire.h文件夹下:(新版本 5.0 在 Board/inc/FIRE_MK60_conf.h里, 5.1 在 App/inc/MK60_conf.h里)KL26 在 App/inc/MKL_conf.h
提示:超频会提高性能,但同时也会带来不稳定的情况发生。不建议超频到极限,得留一点空余,否则会出现各种莫名其妙的情况发生。

#define MCG_CLK_MHZ         PLL100      // 设置时钟频率
#define MAX_BUS_CLK         50         // bus不要超过200M,这里设为50M
#define MAX_FLASH_CLK       25          // flash不能超过32M,这里设为不超过25M

假设 CORE 频率设为 100M (上述的代码PLL100就是设为 100M),那么bus 的可选值为 100、100/2、100/3、……、100/16。
程序中#define MAX_BUS_CLK 50 就是限定 bus最大为 50M,上述的取值中符合这一条件的最大值为 100/2 = 50 ,所以bus为50M。

修改地方:
这里写图片描述

Kinetis单片机是三级流水线,单指令周期执行。内核时钟越快,那么代码的执行速度越快。

KL26 需要配置 PLL 、CORE 、和 BUS(flash) 时钟。配置方法与K60基本相同。


参考:http://www.vcan123.com/forum.php?mod=viewthread&tid=81&ctid=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ReCclay

如果觉得不错,不妨请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值