【经验分享】KE02芯片OpenSDA调试时IRC频率问题

2020-02-20 20:17发布

本帖最后由 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)。


ICS_C3统计.jpg (28.11 KB, 下载次数: 0) 下载附件 2014-4-24 13:51 上传
表1 非调试时、各编译环境OpenSDA调试时ICS_C3寄存器值

附件为文档形式的<KE02芯片OpenSDA调试时IRC频率问题.pdf>
KE02芯片OpenSDA调试时IRC频率问题.pdf (380.52 KB, 下载次数: 17) 2014-6-23 15:42 上传 点击文件名下载附件







PS:本帖可从飞思卡尔版块置顶帖:飞思卡尔Kinetis资料大本营飞思卡尔论坛支持小组【经验分享】帖汇总链接进入。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。