搜索
bottom↓
回复: 27

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

[复制链接]

出0入0汤圆

发表于 2014-6-30 18:58:07 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_Robin 于 2014-8-20 16:23 编辑

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

    飞思卡尔Kinetis KE0x、KEA 系列MCU片上集成有KBI ( Keyboard Interrupts )键盘中断模块。大家在使用KBI键盘中断的边沿触发模式时需要注意:在新的边沿触发中断前,所有该模块已使能的KBI引脚电平必须全都为触发前的电平状态。(比如KBI下降沿中断触发模式下,只要有一路引脚电平为低,则该模块已使能的其他KBI引脚发生下降沿将无法触发中断)这一点较Kinetis K、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.1 Edge-only sensitivity”章节也有提到(如图1),只是大家在使用了Kinetis K、L系列IO中断之后,没有注意KE0x、KEA系列的KBI模块特点就把该模块当普通中端口使用导致的。

图1

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

图2

    KBI ( Keyboard Interrupts )键盘中断在应用时还会遇到开漏输出的信号(比如之前提到的霍尔传感器就有开漏输出,这就需要用户接上拉电阻后才能输出高电平)。对于这类需求,KBI模块的“33.5.3 KBI 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;      //Pin2 J1 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>






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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-6-30 20:20:07 | 显示全部楼层
KBI 键盘中断边沿触发模式  回复才能查看啊

出0入0汤圆

发表于 2014-6-30 20:20:43 | 显示全部楼层
KBI 键盘中断边沿触发模式  回复才能查看啊

出0入0汤圆

发表于 2014-6-30 20:22:56 | 显示全部楼层
KBI 键盘中断边沿触发模式  回复才能查看啊

出0入0汤圆

 楼主| 发表于 2014-7-1 08:48:17 | 显示全部楼层
希望对大家有所帮助,不足之处欢迎指正,同时也欢迎大家分享自己的小经验。

出0入0汤圆

 楼主| 发表于 2014-7-1 08:51:14 | 显示全部楼层
songjie 发表于 2014-6-30 20:20
KBI 键盘中断边沿触发模式  回复才能查看啊

如果大家有使用到KE\KEA系列的KBI键盘中断边沿触发模式,可以参考一下这篇经验分享。
附件的测试程序是在官方例程上修改的,改动在帖子“测试程序:”处已有描述。
附件文档是把帖子内容拷贝到了pdf文档中,以便对此有兴趣的网友下载。

出0入0汤圆

发表于 2014-7-1 09:21:16 | 显示全部楼层
那在 KBI 键盘中断边沿触发模式下能实现多键同时按下的情况吗?

出0入0汤圆

发表于 2014-7-1 17:06:54 | 显示全部楼层
记住了,以后使用的时候会注意的!谢谢楼主!

出0入0汤圆

发表于 2014-7-6 02:43:21 | 显示全部楼层
多谢楼主,我遇到过,KE的这个KBI不怎么好

出0入0汤圆

发表于 2014-7-6 09:45:23 | 显示全部楼层
谢谢分享!

出0入0汤圆

发表于 2014-7-11 15:53:30 | 显示全部楼层
这是个坑

出0入0汤圆

发表于 2014-7-11 16:06:41 | 显示全部楼层
粗略地理解

1、比如PTA口有一个PIN是低电平,其他PIN的下降沿触发都失效。只影响到PTA,PTB口如果有KBI是否有影响?

另,2、电平触发有没有类似问题。3、timer输入捕捉边沿触发没有这个问题吧

出0入0汤圆

发表于 2014-7-13 22:30:32 | 显示全部楼层
好东西啊好东西

出0入0汤圆

 楼主| 发表于 2014-7-14 13:32:29 | 显示全部楼层
swap2013 发表于 2014-7-11 16:06
粗略地理解

1、比如PTA口有一个PIN是低电平,其他PIN的下降沿触发都失效。只影响到PTA,PTB口如果有KBI是否 ...

1、比如PTA口有一个PIN是低电平,其他PIN的下降沿触发都失效。只影响到PTA,PTB口如果有KBI是否有影响?
答:同一个KBI模块的几个通道会相互影响

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-7-14 13:48:12 | 显示全部楼层
swap2013 发表于 2014-7-11 16:06
粗略地理解

1、比如PTA口有一个PIN是低电平,其他PIN的下降沿触发都失效。只影响到PTA,PTB口如果有KBI是否 ...

2、电平触发有没有类似问题。
答:电平触发模式下,通道电平如果保持asserted(低电平触发,电平为低)将会一直触发中断。
哪怕你通过写KBIx_SC[KBACK]也无法清除KBIx_SC[KBF]标志位。

出0入0汤圆

 楼主| 发表于 2014-7-14 13:50:18 | 显示全部楼层
swap2013 发表于 2014-7-11 16:06
粗略地理解

1、比如PTA口有一个PIN是低电平,其他PIN的下降沿触发都失效。只影响到PTA,PTB口如果有KBI是否 ...

3、timer输入捕捉边沿触发没有这个问题吧
答:timer的输入捕捉就没这个问题,关键Keyboard Interrupts (KBI)是键盘中断,所以有键盘互斥这样的效果。

出0入0汤圆

发表于 2014-7-14 15:25:37 | 显示全部楼层
FSL_TICS_Robin 发表于 2014-7-14 13:48
2、电平触发有没有类似问题。
答:电平触发模式下,通道电平如果保持asserted(低电平触发,电平为低)将 ...

明白了,谢谢!

出0入0汤圆

发表于 2014-7-18 11:44:29 | 显示全部楼层
写的程序里面也有用到KBI

出0入0汤圆

发表于 2014-7-19 19:04:19 | 显示全部楼层

KBI 键盘中断边沿触发模式  回复才能查看啊

出0入0汤圆

 楼主| 发表于 2014-7-21 08:50:48 | 显示全部楼层
wish320 发表于 2014-7-18 11:44
写的程序里面也有用到KBI

wish320 你好
如果你有用到KBI边沿触发,欢迎与大家一起讨论自己的经验

出0入0汤圆

 楼主| 发表于 2014-7-21 09:44:11 | 显示全部楼层
wudangqiren 发表于 2014-7-19 19:04
KBI 键盘中断边沿触发模式  回复才能查看啊

感谢你对飞思卡尔产品的关注!
欢迎在此与大家一起讨论关于KBI使用方面的问题或经验。

出0入0汤圆

发表于 2014-7-28 19:28:04 | 显示全部楼层
还没用到,mark先。

出0入0汤圆

发表于 2014-7-28 19:31:59 | 显示全部楼层
本帖最后由 lcptw 于 2014-7-28 19:35 编辑

FRDM-KE02Z KBI Edge-only sensitivity.zip
chrome报错,下载被拒

现在好了,用VPN下载的反而正常,直连的一直显示有恶意程序。。。。

出0入0汤圆

 楼主| 发表于 2014-7-29 13:41:50 | 显示全部楼层
lcptw 发表于 2014-7-28 19:31
FRDM-KE02Z KBI Edge-only sensitivity.zip
chrome报错,下载被拒

不同的浏览器下载附件时可能会有些问题
刚用火狐下载了附件是正常的。

出0入0汤圆

发表于 2014-7-30 13:58:34 | 显示全部楼层
感谢分享,下载学习。

出0入0汤圆

发表于 2014-9-3 09:48:46 | 显示全部楼层
好资料回复下载,谢谢!

出0入0汤圆

发表于 2014-9-3 09:50:26 | 显示全部楼层
感谢露珠分享,学习了。

出0入0汤圆

发表于 2014-9-3 10:24:01 | 显示全部楼层
板子到了,我还不知道这个程序怎么下进ke02板呢。努力吧!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 07:51

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表