打印
[资料分享与下载]

KL16低功耗模式下无法唤醒的解决方案

[复制链接]
1482|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
跟屁虫|  楼主 | 2015-9-22 09:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很多客户在使用TSI模块时,通常会考虑使用飞思卡尔TSS库,一方面它可以帮助用户快速完成一些旋转、滑条、矩阵键盘等的应用,另一方面该软件库集成了一些防水、防噪声等一些滤波算法,从而简化应用。但该TSS库的形式不提供源代码,用户大多对TSS的运行机制不是很了解,会在应用中产生一些误区。

        一、 问题的提出:

        有个做智能遥控器的客户,使用KL16Z256VLH4的14路TSI通道(9x5)构成矩阵键盘来作手势判断,当前使用TSS库已实现简单的手势判断。但客户反馈在使用KL16进入LLS或者STOP等低功耗模式时,使用TSI无**常唤醒。

        二、 问题的分析与解决:

        仔细分析发现,问题主要有三个,

  •                    TSS模块和CPU内核的配置;

        相比较常规模式下这两个模块的配置,使用TSI的低功耗唤醒功能需要额外配置的几个关键点如下:

  •                 首先,配置TSI模块在低功耗模式下的触发源,对于KL16只能配置为LPTMR,另外System Trigger Mode一定要设置为AUTO,具体的触发时间间隔需要额外通过LPTMR模块设定。此处千万不能选择SW软件触发和ALWAYS触发,否则LPTMR的设置无效,当芯片进入低功耗模式MCU内核停止工作,芯片也就无法唤醒。
  •                 其次,需要使能Low Power模式的功能,并指定用来唤醒的TSI通道,此处需要特别强调的是,此处的9指的并不是TSI的物理通道9,而是TSI Number Of Electrodes配置中通道的序列号9,这点特别容易出错。
  •                 最后,还有一点容易忽略的点就是LLWU模块唤醒源的配置

  •         2. TSS库中TSS_Task()函数和TSI_ISR()中断的处理细节的影响;

            通常用户会认为在完成以上TSS的唤醒配置之后,如果芯片进入低功耗模式,通过配置的唯一TSI通道就可以将芯片唤醒,具体代码如下。

            但是测试过程中发现,MCU并不能被正常唤醒。通过和客户一起检查寄存器发现在经过TSS_Task()函数和TSI_Isr()中断后STM位被清0,这也就意味着芯片在进入低功耗之前,被配置成软件触发,所以也就不能实现通过LPTMR在低功耗模式下触发TSI进行按键扫描唤醒。



相关帖子

沙发
跟屁虫|  楼主 | 2015-9-22 09:01 | 只看该作者
考虑到TSS_Task()函数不开放源代码无法进行修改,所以就需要在每次进入低功耗前对TSI模块进行重新初始化,具体代码如下图红色方框。代码中主要做的两个修改在于配置了TSIx_GENCS寄存器的ESOR(选择Out-of-range interrupt和End-of-scan interrupt)和STM(选择Software trigger和Hardware trigger )位。
3. Mask Set 为 0N40H 芯片TSI模块的Errata;

在完成以上所有的设置后,在调试过程中发现依然不能正常唤醒,于是查看Errata KINETIS_L_0N40H(见附件)发现,客户使用的Mask Set 为 0N40H的KL16芯片TSI模块确实有个Bug,如下图。在使用中客户配置的TSI的触发源刚好是用的是LPTMR,时钟来源为LPO,实际测试发现TSI的计数值寄存器TSICHnCNT的实际值正好小于7000,从而导致无法触发Out of Range 中断,也就无法通过LLWU中断将芯片从LLS模式下唤醒。
于是,按照Errata KINETIS_L_0N40H 中e6060给出的Workaround,通过修改增大PS值和NSCN值使触摸事件时TSICHnCNT大于10000。

至此,经过上面三个步骤,用户配置的TSI通道可以正常将芯片从LLS模式下唤醒,从而问题得到解决。

使用特权

评论回复
板凳
FSL_TICS_ZJJ| | 2015-9-22 09:11 | 只看该作者
感谢楼主的宝贵经验分享!

使用特权

评论回复
地板
DreamofOven| | 2015-9-22 22:07 | 只看该作者
总结的确实很到位,谢谢分享

使用特权

评论回复
5
Tennasi| | 2015-9-23 09:36 | 只看该作者
这些方案确实很实用啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

245

帖子

2

粉丝