打印
[Kinetis]

【经验分享】 KBI 键盘中断边沿触发模式注意

[复制链接]
5426|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 FSL_TICS_A 于 2014-10-21 15:38 编辑

KBI键盘中断边沿触发模式注意

    飞思卡尔Kinetis KE0x、KEA 系列MCU片上集成有KBI( Keyboard Interrupts )键盘中断模块。大家在使用KBI键盘中断的边沿触发模式时需要注意:在新的边沿触发中断前,所有该模块已使能的KBI引脚电平必须全都为触发前的电平状态。(比如KBI下降沿中断触发模式下,只要有一路引脚电平为低,则该模块已使能的其他KBI引脚发生下降沿将无法触发中断)这一点较KinetisK、L系列MCU的IO中断有很大的区别,所以在使用时需要注意。


问题起因:
    某位网友在学习AN4776,BLDC Motor Control with Hall Sensors Based on FRDM-KE02Z 这篇使用FRDM-KE02Z开发板实现无刷电机带霍尔检测的应用方案之后,把三路霍尔电平的检测由查询IO口电平方式改为KBI边沿中断方式,经常发生KBI边沿中断没能准确触发。最终才发现是由于前文提到的KBI( Keyboard Interrupts )键盘中断模块特点导致的。
    这一点从参考手册MKE02Z64M20SF0RM的“33.5.1Edge-only sensitivity”章节也有提到(如图1),只是大家在使用了KinetisK、L系列IO中断之后,没有注意KE0x、KEA系列的KBI模块特点就把该模块当普通中端口使用导致的。


图1



KBI模块简介:
    大家可以通过参考手册的”Figure 33-1. KBI blockdiagram”模块框图(如图2)了解KBI ( KeyboardInterrupts )键盘中断模块结构以及各寄存器位作用。


图2


    KBI ( Keyboard Interrupts )键盘中断在应用时还会遇到开漏输出的信号(比如之前提到的霍尔传感器就有开漏输出,这就需要用户接上拉电阻后才能输出高电平)。对于这类需求,KBI模块的“33.5.3KBI Pullup Resistor”章节(如图3)有提到可以配置内部上拉电阻。


图3


测试程序:
    飞思卡尔官网提供FRDM-KExx 驱动库:KEXX_DRIVERS_V1.2.1_DEVD,其KBI模块程序位于类似路径E:\KEXX_DRIVERS_V1.2.1_DEVD\kexx_drv_lib\build\iar\ke02\KBI_demo
    原程序使能了两个KBI模块的引脚中断,但由于之前提到的KBI中断边沿触发模式引脚相互影响仅限于同一个KBI模块,所以注释掉KBI1模块的初始化及回调函数设置;
    添加两句对于KBI0_P4引脚的配置,使之与KBI0_P0引脚同样下降沿触发、使能中断:
        sKBIConfig.sPin[4].bEdge= KBI_FALLING_EDGE_LOW_LEVEL;      //Pin2J1 FRDM-KE02Z
        sKBIConfig.sPin[4].bEn   = 1;

    为了在IAR编译环境调试时方便观察正确的KBI配置,把主函数开头定义的sKBIConfig初始值全部清零。KBI_ConfigType  sKBIConfig={0};     //clear sKBIConfig



测试方法:
为了测试我们需要先查看FRDM-KE02Z开发板原理图FRDM-KE02Z_SCH,从原理图可知程序使能的KBI0_P0、KBI0_P4引脚分别引到了J2的Pin2、J1的Pin2位置。
首先测试两KBI引脚的中断功能正常:通过引线将KBI0_P0或KBI0_P4与J9 Pin12\14的GND导通,将能够分别触发KBI0中断并回调KBI0_Task函数。(引脚悬空时为高电平,与GND导通产生下降沿信号触发KBI中断)
然后测试相互影响:把KBI0_P0接地看到串口已经输出信息后,再用KBI0_P4接地,此时后者产生的下降沿将无法触发KBI中断。


附件是:
测试程序FRDM-KE02Z KBI Edge-only sensitivity.zip
文档形式的< KBI键盘中断边沿触发模式注意.pdf>


FRDM-KE02Z KBI Edge-only sensitivity.zip (3.2 MB)
KBI键盘中断边沿触发模式注意.pdf (518.55 KB)




PS:本帖可从 飞思卡尔MCU论坛 置顶帖 飞思卡尔Kinetis资料大本营 飞思卡尔论坛支持小组【经验分享】总汇 链接进入。

相关帖子

沙发
FSL_TICS_Robin|  楼主 | 2014-7-1 08:47 | 只看该作者
希望对大家有所帮助,不足之处欢迎指正,同时也欢迎大家分享自己的小经验。

使用特权

评论回复
板凳
FSL_TICS_ZJJ| | 2014-7-1 10:06 | 只看该作者
最新出炉的KBI经验分享,欢迎大家学习讨论。

使用特权

评论回复
地板
FSL_FAE_STEVE| | 2014-7-1 15:30 | 只看该作者
很有用的分享,赞!

使用特权

评论回复
5
ghwcxh| | 2014-7-2 09:09 | 只看该作者
学习了

使用特权

评论回复
6
skytome123| | 2014-7-2 18:11 | 只看该作者
很有用,感谢分享

使用特权

评论回复
7
Emmazhou| | 2014-7-4 09:21 | 只看该作者
长知识了

使用特权

评论回复
8
qq764645456| | 2014-7-8 01:50 | 只看该作者

使用特权

评论回复
9
FSL_TICS_ZJJ| | 2014-7-8 10:44 | 只看该作者
skytome123 发表于 2014-7-2 18:11
很有用,感谢分享

更多经验分享,请到我们的资料大本营:https://bbs.21ic.com/icview-722190-1-1.html
另外我们的坛子最近在搞活动,奖品非常丰厚,有兴趣可以去看看:
https://bbs.21ic.com/icview-759978-1-1.html

使用特权

评论回复
10
FSL_TICS_ZJJ| | 2014-7-8 10:45 | 只看该作者
qq764645456 发表于 2014-7-8 01:50

更多经验分享,请到我们的资料大本营:https://bbs.21ic.com/icview-722190-1-1.html
另外我们的坛子最近在搞活动,奖品非常丰厚,有兴趣可以去看看:
https://bbs.21ic.com/icview-759978-1-1.html

使用特权

评论回复
11
FSL_TICS_ZJJ| | 2014-7-8 10:45 | 只看该作者
Emmazhou 发表于 2014-7-4 09:21
长知识了

更多经验分享,请到我们的资料大本营:https://bbs.21ic.com/icview-722190-1-1.html
另外我们的坛子最近在搞活动,奖品非常丰厚,有兴趣可以去看看:
https://bbs.21ic.com/icview-759978-1-1.html

使用特权

评论回复
12
qq764645456| | 2014-7-8 13:53 | 只看该作者
FSL_TICS_ZJJ 发表于 2014-7-8 10:45
更多经验分享,请到我们的资料大本营:https://bbs.21ic.com/icview-722190-1-1.html
另外我们的坛子最近 ...

嗨,以前在学校想做小车的,老师不要我,我距离飞思卡尔就差一小步

使用特权

评论回复
13
xinyinxing| | 2014-7-14 15:41 | 只看该作者
学习了,感谢分享!

使用特权

评论回复
14
hmilyxj3264| | 2014-9-5 11:59 | 只看该作者

使用特权

评论回复
15
maxbox| | 2014-9-5 13:32 | 只看该作者
顶一个

使用特权

评论回复
16
jd972594| | 2014-9-5 13:52 | 只看该作者
qq764645456 发表于 2014-7-8 13:53
嗨,以前在学校想做小车的,老师不要我,我距离飞思卡尔就差一小步

:L老师不要你
你也可以自己买块开发板学习呀
玩智能车有好处也有坏处,无所谓啦

使用特权

评论回复
17
mical111| | 2014-9-24 18:13 | 只看该作者
实用

使用特权

评论回复
18
nongfuxu| | 2014-10-17 15:38 | 只看该作者
回复  

使用特权

评论回复
19
nongfuxu| | 2014-10-17 15:41 | 只看该作者
老夫愚笨,硬是看不懂KBI怎样用的。

请飞思卡尔高人答疑解惑。

使用特权

评论回复
20
choosechan| | 2014-10-19 11:22 | 只看该作者
很好。

使用特权

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

本版积分规则

50

主题

2439

帖子

13

粉丝