将MAX6954和MAX6955的键盘扫描扩展至32键以上

描述

本应用笔记介绍了一种扩展扫描的方法,可以扩展MAX6954和MAX6955 LED显示驱动器的键盘扫描范围,从32键扩展到80键。

MAX6954/MAX6955 是4线或2线串行接口的LED驱动器,可以控制7段、14段或16段LED或一个16x8的LED矩阵。驱动器还包括5个I/O扩展(GPIO)端口,以及用这些端口自动扫描32个按键、消除按键抖动的所有逻辑控制。另外一个功能选项是通过一个中断引脚通知系统处理器消除键抖。本文介绍的扩展按键扫描方案(从32键扩展到80或更多个按键)需要增添额外的二极管。

表1. MAX6954/MAX6955的标准32键连接

 

  P0 P1 P2 P3
LED Output O0 SW A1 SW B1 SW C1 SW D1
LED Output O1 SW A2 SW B2 SW C2 SW D2
LED Output O2 SW A3 SW B3 SW C3 SW D3
LED Output O3 SW A4 SW B4 SW C4 SW D4
LED Output O4 SW A5 SW B5 SW C5 SW D5
LED Output O5 SW A6 SW B6 SW C6 SW D6
LED Output O6 SW A7 SW B7 SW C7 SW D7
LED Output O7 SW A8 SW B8 SW C8 SW D8

 

GPIO

图1. MAX6954/MAX6955的标准32键连接

表1图1给出了MAX6954/MAX6955的标准8键连接。键切换电路按照4 x 8矩阵(4列、8行)读取32个按键的状态。键盘阵列的8行由8个LED阴极驱动器输出(LED输出O0至LED输出O7)驱动。作为多层LED驱动的一部分,这些LED阴极驱动输出依次拉至低电平320µs (标称值)(顺序驱动LED)。这些驱动器输出分别用来拉低键开关的一端,键的另一端连接在4个输入引脚(P0至P3),这4个输入引脚从内部拉至MAX6954/MAX6955的高电平V+。按下开关时,P0、P1、P2或P3将由相应的LED输出Ox拉至低电平,MAX6954/MAX6955检测按键,并为按键提供去抖。

多个按键被同时按下时,与开关串联的二极管可以防止2个或多个LED阴极驱动输出短路。例如,同时按下SW A1和SW A2时,与按键串联的二极管可以避免LED输出O0与LED输出O1短路,因为在任何情况下至少有一个二极管为反向偏置。二极管采用的是低成本、共阳极的BAW56,SOT23封装。

MAX6954/MAX6955随时判断32个按键按下或释放的动作,器件内部仅为指示这32个按键的状态提供了寄存器。从这一点看,在MAX6954/MAX6955的设计中似乎没有办法扩展扫描电路,需要寻找一种全新的设计方案。

针对这种特殊情况,我们发掘了一种冗余情况。许多应用中只需要了解某一个按键是否被按下。通常,同时按下两个按键的情况被认为是错误的键输入,或者是进入工厂诊断模式。这种两个按键同时按下的情况是一种“冗余”情况,我们把新增按键连接成好像某一对儿键被同时按下的情况,表2图2所示电路通过组合P0、P1、P2和P3扩充了16个按键。例如,当SW AB1按下时,对于MAX6954/MAX6955而言,所表现出来的状态与SW A1和SW B1同时按下的情况相同。只要每对儿按键(如SW A1和SW B1)的物理位置不相邻,这种扩展架构即可有效工作。软件设计应保证在MAX6954/MAX6955的最小去抖周期内响应按键的/IRQ,保证每个对应于按键扫描的结果都经过适当的分析处理。如果软件对/IRQ响应较慢,将无法区分同时按下两个按键的情况(鉴别增添的按键状态)和顺序按下相同的两个按键的情况。无论是哪种情况,按键去抖寄存器0x08-0x0B将简单地显示每个键位置位。

表2. MAX6954/MAX6955扩展后的48键连接

 

  P0 P1 P2 P3 P0 & P1 P2 & P3
LED Output O0 SW A1 SW B1 SW C1 SW D1 SW AB1 SW CD1
LED Output O1 SW A2 SW B2 SW C2 SW D2 SW AB2 SW CD2
LED Output O2 SW A3 SW B3 SW C3 SW D3 SW AB3 SW CD3
LED Output O3 SW A4 SW B4 SW C4 SW D4 SW AB4 SW CD4
LED Output O4 SW A5 SW B5 SW C5 SW D5 SW AB5 SW CD5
LED Output O5 SW A6 SW B6 SW C6 SW D6 SW AB6 SW CD6
LED Output O6 SW A7 SW B7 SW C7 SW D7 SW AB7 SW CD7
LED Output O7 SW A8 SW B8 SW C8 SW D8 SW AB8 SW CD8

 

每个附加按键需要一个双二极管(如低成本、共阴极的BAV70,SOT23封装), 按下开关时,P0和P1或P2和P3被同时拉低。

GPIO


图2. MAX6954/MAX6955扩展后的48键连接

图2和表2通过组合P0、P1、P2和P3扩充了16个按键。实际上,对于P0-P3键扫描输入还存在另外四种可能的两键组合方式。如果使用了6种两键组合方式,按键数量将增加到80个,如表3所示。图3给出了6个附加按键在LED输出O0行的连接方式。每个附加按键需要一个双二极管。

表3. MAX6954/MAX6955扩展后的80键连接

 

  P0 P1 P2 P3 P0 & P1 P0 & P2 P0 & P3 P1 & P2 P1 & P3 P2 & P3
LED Output O0 SW A1 SW B1 SW C1 SW D1 SW AB1 SW AC1 SW AD1 SW BC1 SW BD1 SW CD1
LED Output O1 SW A2 SW B2 SW C2 SW D2 SW AB2 SW AC2 SW AD2 SW BC2 SW BD2 SW CD2
LED Output O2 SW A3 SW B3 SW C3 SW D3 SW AB3 SW AC3 SW AD3 SW BC3 SW BD3 SW CD3
LED Output O3 SW A4 SW B4 SW C4 SW D4 SW AB4 SW AC4 SW AD4 SW BC4 SW BD4 SW CD4
LED Output O4 SW A5 SW B5 SW C5 SW D5 SW AB5 SW AC5 SW AD5 SW BC5 SW BD5 SW CD5
LED Output O5 SW A6 SW B6 SW C6 SW D6 SW AB6 SW AC6 SW AD6 SW BC6 SW BD6 SW CD6
LED Output O6 SW A7 SW B7 SW C7 SW D7 SW AB7 SW AC7 SW AD7 SW BC7 SW BD7 SW CD7
LED Output O7 SW A8 SW B8 SW C8 SW D8 SW AB8 SW AC8 SW AD8 SW BC8 SW BD8 SW CD8

 

GPIO

图3. MAX6954/MAX6955扩展后的80键连接

为什么仅将“同时按下双键”作为判断附加按键的途径呢? 3键和4键组合可用来替代双键按下的情况,表4给出了这种附加配置。需要注意的是,4-3组合键每组需要三个二极管,四组键需要4倍数量的二极管。

表4. 3键和4键连接

 

  P0 & P1 & P3 P0 & P1 & P4 P0 & P2 & P3 P1 & P2 & P4 P0 & P1 & P2 &P3
LED Output O0 SW ABC1 SW ABD1 SW ACD1 SW BCD1 SW ABCD1
LED Output O1 SW ABC2 SW ABD2 SW ACD2 SW BCD2 SW ABCD2
LED Output O2 SW ABC3 SW ABD3 SW ACD3 SW BCD3 SW ABCD3
LED Output O3 SW ABC4 SW ABD4 SW ACD4 SW BCD4 SW ABCD4
LED Output O4 SW ABC5 SW ABD5 SW ACD5 SW BCD5 SW ABCD5
LED Output O5 SW ABC6 SW ABD6 SW ACD6 SW BCD6 SW ABCD6
LED Output O6 SW ABC7 SW ABD7 SW ACD7 SW BCD7 SW ABCD7
LED Output O7 SW ABC8 SW ABD8 SW ACD8 SW BCD8 SW ABCD8

 

排除3键和4键连接的一个最好理由是它们需要更多的二极管。如果应用中所需按键只是略高于32键的限制,则可首先选择本文推荐的方案。只是因为某些偶然因素,让用户找寻3键和4键的方案也是不可取的。

值得注意的是:每个扩充按键的连接方式模拟的是多个按键同时按下的情况,这些按键连接在同一LED阴极驱动器输出端(LED输出O0至LED输出O7)。采用这种连接方式,相关组合的按键总是在同一时间扫描或去抖。如果新增按键所模拟的同时按下的按键由不同的LED阴极驱动输出扫描,这种工作方式将是不可靠的。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分