|
本帖最后由 FSL_TICS_Robin 于 2014-8-25 11:06 编辑
KE02芯片OpenSDA调试时IRC频率问题
继上次与大家分享《使用CodeWarrior10.5软件的PE工具trim芯片内部慢速时钟》之后,发现了一个很奇怪的问题:如果未修改trim配置,OpenSDA调试时也会自动为KE02芯片ICS_C3寄存器的SCTRIM位写入0x80这个固定值(CW10.6、Keil510均如此)。这直接导致了: OpenSDA调试时的IRC(内部慢速时钟)频率与非调试时的IRC频率不同。
如果大家使用OpenSDA调试KE02芯片且用到了IRC,为避免这种情况影响调试程序,建议大家将芯片IRC (用出厂SCTRIM、SCFTRIM值)trim到31.25KHz。
希望此经验对大家有所帮助,不足之处欢迎指正,同时也欢迎大家在论坛里讨论这个问题。
通过参考手册MKE02Z64M20SF0RM的“Figure 20-1. Internal clock source (ICS) block diagram”(图1)可以看到SCFTRIM、SCTRIM位的值会影响IRC频率,从其所在寄存器ICS_C3、ICS_C4说明(图2)还可以看出非debug时SCTRIM、SCFTRIM的值将会自动从factory programmed location处装载出厂默认值(这给了我们在非debug时以通过读ICS_C3、ICS_C4寄存器获得出厂SCFTRIM、SCTRIM值的可能)。更多trim信息可以在参考手册“20.4.5 Internal reference clock”(图3)处看到。
从数据手册MKE02P64M20SF0的“Table 10. OSC and ICS specifications”中可知这款芯片出厂IRC频率(fint_t)在Typical1情况下被trim到了31.25KHz。由于每块芯片的IRC(内部慢速时钟)特性都不同,所以虽然出厂IRC频率都为31.25KHz,但是每块芯片此时对应的SCTRIM、SCFTRIM值均不同(表1)。这也就是OpenSDA调试时的IRC频率与非调试时的IRC频率不同的原因(出厂SCTRIM值不一定是0x80)。
图1
图2
图3
表1 非调试时、各编译环境OpenSDA调试时ICS_C3寄存器值
附件为文档形式的<KE02芯片OpenSDA调试时IRC频率问题.pdf>
PS:本帖可从飞思卡尔版块置顶帖:飞思卡尔Kinetis资料大本营的飞思卡尔论坛支持小组【经验分享】帖汇总链接进入。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|