扩展MAX6954和MAX6955键扫描超过32个键

描述

本应用笔记详细介绍了如何将MAX6954和MAX6955 LED显示驱动器的按键扫描功能从32个按键扩展至多达80个按键。

MAX6954/MAX6955为4线和2线串行接口LED驱动器,可控制多达7段、14段和16段LED数字或16x8 LED阵列。该驱动程序还包括五个 I/O 扩展器 (GPIO) 端口,以及用于使用部分或全部这些端口自动扫描和去抖动多达 32 个按键开关的逻辑。此逻辑的一个可选功能是通过中断输出引脚提醒系统处理器密钥去抖动。本文所述的技术通过增加二极管,将MAX6954/MAX6955的能力从32个增加到80个或更多键。

 


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

 

处理器

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

表1和图1所示为MAX6954/MAX6955的标准按键开关连接。按键开关电路读取 32 个按键,这些按键以 4 x 8 矩阵(四列,八行)组织。八个按键矩阵行由八个 LED 阴极驱动输出(LED 输出 O0 到 LED 输出 O7)驱动。这些 LED 阴极驱动输出交替变为低电平 320μs (标称),并作为多路复用 LED 驱动器的一部分按顺序驱动其 LED。这些驱动输出还用于将两个按键开关的一端拉低。按键的另一端连接四个输入引脚(P0-P3),在MAX6954/MAX6955内部上拉至V+。如果按下开关,P0、P1、P2或P3被适当的LED输出Ox输出拉低,MAX6954/MAX6955检测并去抖动按键。

与开关串联的二极管可确保在同时按下多个键时,两个或多个 LED 阴极驱动输出不会短路在一起。例如,如果将 SW A1 和 SW A2 压在一起,则与按键串联的二极管可防止 LED 输出 O0 短路至 LED 输出 O1。这是因为,在任何时候,至少有一个二极管会被反向偏置。通常采用的二极管是采用SOT23的低成本共阳极BAW56。

MAX6954/MAX6955可区分和区分32种可能的按键的任意组合。部件中只有足够的寄存器来提供这 32 个密钥的状态。显然,除了MAX6954/MAX6955设计的32个按键之外,没有办法扩展这种扫描拓扑。因此,有必要采取另一种更具创造性的方法。

具体来说,我们寻找一个多余的情况来利用。在许多情况下,应用程序只需要检测是否按下了多个键中的一个。通常,设备上的双键按下要么是错误的输入,要么是进入出厂诊断模式的狡猾手段。因此,冗余情况是双键按下。这里建议的创造性方法是使其他键看起来好像同时按下了某些键对。表 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只是显示为每个密钥设置的位。

 


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

 

每个额外的键都需要一个双二极管(例如SOT23中的低成本共阴极BAV70),当按下开关时,它将P0和P1拉低,或P2和P3拉低。

处理器

图2.扩展了与MAX6954/MAX6955的48键连接。

图 2、表 2 方案通过组合 P0 和 P1 以及 P2 和 P3 增加了 16 个密钥。实际上,P0-P3 按键扫描输入还有四种可能的双键组合。如果使用所有六个双键组合,则密钥计数可以扩展到 80 个交换机,如表 3 所示。图 3 显示了 LED 输出 O0 行的六个额外键是如何接线的。同样,每个额外的按键开关都使用一个双二极管。

 


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

 

处理器

图3.扩展了与MAX80/MAX6954的6955键连接。

但是,为什么要仅限于双击键来识别额外的键呢?可以使用三重和四重组合键代替或补充双键按下。表 4 显示了这些额外的配置。请注意,四个三重组合需要一个三重二极管,而四重组合需要一个四重二极管。

 


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

 

放弃三键和四键组合是有充分理由的——它们需要更多的二极管。但是,如果应用程序只需要几个高于 32 键限制的额外键,则可能需要先考虑这五个键。这是因为用户意外摸索三四个键的可能性比两个键更不可能。

注意:讨论的每个扩展键都经过接线,以模拟同一 LED 阴极驱动输出(LED 输出 O0 至 LED 输出 O7)上的按键多次按键。通过这种连接,与任何多个按键组合关联的按键将同时被扫描和去抖动,因此结果会同时显示。模拟由不同LED阴极驱动输出扫描的多次按键的额外按键将不可靠,因为按键不会同时去抖动。

审核编辑:郭婷

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

全部0条评论

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

×
20
完善资料,
赚取积分