[Kinetis] 关于ICS_C3如何设置以获得想要的时钟

[复制链接]
 楼主| andyliu 发表于 2015-6-10 14:43 | 显示全部楼层 |阅读模式
void Clk_Init()

{
       
        ICS_C1|=ICS_C1_IRCLKEN_MASK;                 /* Enable the internal reference clock*/
        ICS_C3= 0x90;                                                /* Reference clock frequency = 39.0625 KHz*/               
        while(!(ICS_S & ICS_S_LOCK_MASK));   /* Wait for PLL lock, now running at 40 MHz (1024 * 39.0625Khz) */               
ICS_C2|=ICS_C2_BDIV(1)  ;                         /*BDIV=2, Bus clock = 20 MHz*/
ICS_S |= ICS_S_LOCK_MASK ;                         /* Clear Loss of lock sticky bit */       

}为什么设置ICS_C3= 0x90就对应39.0625 KHz,用户手册上也没说SCTRIM是如何调整的
FSL_TICS_Robin 发表于 2015-6-10 15:52 | 显示全部楼层
注释是不准确的。
请问你是哪款型号的芯片?
GGBOND 发表于 2015-6-10 16:23 | 显示全部楼层
同样的问题,请教版主,我用的是KE04系列
GGBOND 发表于 2015-6-10 16:23 | 显示全部楼层
ICS_C3= 0x90; 表示什么意思?
FSL_TICS_Robin 发表于 2015-6-10 16:45 | 显示全部楼层
GGBOND 发表于 2015-6-10 16:23
同样的问题,请教版主,我用的是KE04系列

下次注意点击我那层楼里的回复按钮,这样我才能收到系统提示及时答复你。:)
FSL_TICS_Robin 发表于 2015-6-10 16:47 | 显示全部楼层
GGBOND 发表于 2015-6-10 16:23
ICS_C3= 0x90; 表示什么意思?

如果是Kinetis E、EA系列的微控制器,那么建议大家看一下【经验分享】KE02芯片OpenSDA调试时IRC频率问题
每个芯片的内部RC振荡器特性稍有不同,所以给ICS_C3写同样的值是不行的。
summer_zq 发表于 2015-6-10 16:50 | 显示全部楼层
我也有兴趣知道一下:)
GGBOND 发表于 2015-6-10 16:54 | 显示全部楼层
FSL_TICS_Robin 发表于 2015-6-10 16:47
如果是Kinetis E、EA系列的微控制器,那么建议大家看一下【经验分享】KE02芯片OpenSDA调试时IRC频率问题
...

也就是说ICS_C3的值可以默认不填???
GGBOND 发表于 2015-6-10 16:58 | 显示全部楼层
FSL_TICS_Robin 发表于 2015-6-10 16:47
如果是Kinetis E、EA系列的微控制器,那么建议大家看一下【经验分享】KE02芯片OpenSDA调试时IRC频率问题
...

我发的回复,怎么不见了。看了你发的那片**写的很详细。

那么也就是说ICS_C3我可以默认不用给他填值,是吗?
FSL_TICS_Robin 发表于 2015-6-10 16:59 | 显示全部楼层
GGBOND 发表于 2015-6-10 16:54
也就是说ICS_C3的值可以默认不填???

每块芯片ICS_C3装载的默认值的就会让内部RC振荡器对应芯片数据手册上标明的频率。
FSL_TICS_Robin 发表于 2015-6-10 17:02 | 显示全部楼层
GGBOND 发表于 2015-6-10 16:58
我发的回复,怎么不见了。看了你发的那片**写的很详细。

那么也就是说ICS_C3我可以默认不用给他填值, ...

如果你的内部RC振荡器不想用数据手册上标明的统一频率,这时候才需要去修改芯片ICS_C3值。
但修改ICS_C3就要结合PEmicro公司的仿真器实现了。
GGBOND 发表于 2015-6-10 17:08 | 显示全部楼层
FSL_TICS_Robin 发表于 2015-6-10 17:02
如果你的内部RC振荡器不想用数据手册上标明的统一频率,这时候才需要去修改芯片ICS_C3值。
但修改ICS_C3 ...

是否可以这样理解:

ICS_C3内的值实际是对RC振荡器频率的一个补偿?
FSL_TICS_Robin 发表于 2015-6-10 17:12 | 显示全部楼层
GGBOND 发表于 2015-6-10 17:08
是否可以这样理解:

ICS_C3内的值实际是对RC振荡器频率的一个补偿?

可以这样理解
由于每块芯片的RC振荡器性能参数均稍有不同,所以为了达到相同频率的补偿值也不同。
所以编程时直接给ICS_C3一个固定值的做法是不准确的。
GGBOND 发表于 2015-6-10 17:19 | 显示全部楼层
FSL_TICS_Robin 发表于 2015-6-10 17:12
可以这样理解
由于每块芯片的RC振荡器性能参数均稍有不同,所以为了达到相同频率的补偿值也不同。
所以编 ...

谢谢,你的回答完美的解决了我的疑惑!
 楼主| andyliu 发表于 2015-6-10 19:33 | 显示全部楼层
FSL_TICS_Robin 发表于 2015-6-10 15:52
注释是不准确的。
请问你是哪款型号的芯片?

使用的是MKE02Z64VLC4
FSL_TICS_Robin 发表于 2015-6-11 09:20 | 显示全部楼层
andyliu 发表于 2015-6-10 19:33
使用的是MKE02Z64VLC4

请先看帖子内容是否能够解决你的问题,如果有什么不明白的地方在帖子里回复我。
 楼主| andyliu 发表于 2015-6-11 15:31 | 显示全部楼层
FSL_TICS_Robin 发表于 2015-6-11 09:20
请先看帖子内容是否能够解决你的问题,如果有什么不明白的地方在帖子里回复我。 ...

ICS_C3的设置值如何对应实际的调整频率,手册没讲到。只有用PE的仿真器才能改变ICS_C3的值?如何利用u-multilink来修改ICS_C3
FSL_TICS_Robin 发表于 2015-6-11 15:36 | 显示全部楼层
andyliu 发表于 2015-6-11 15:31
ICS_C3的设置值如何对应实际的调整频率,手册没讲到。只有用PE的仿真器才能改变ICS_C3的值?如何利用u-mu ...

PEmicro的仿真器几乎都有这个功能的,你找一下通常是让你输入所需频率仿真器自动给你修改的。
 楼主| andyliu 发表于 2015-6-11 15:45 | 显示全部楼层
FSL_TICS_Robin 发表于 2015-6-11 15:36
PEmicro的仿真器几乎都有这个功能的,你找一下通常是让你输入所需频率仿真器自动给你修改的。 ...

那批量时怎么办?也要用仿真器来修改?
FSL_TICS_Robin 发表于 2015-6-11 15:57 | 显示全部楼层
andyliu 发表于 2015-6-11 15:45
那批量时怎么办?也要用仿真器来修改?

Kinetis E系列就这点比较麻烦,需要用到PEmicro公司的仿真器或烧录器实现。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

34

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部