微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 将MAX6954和MAX6955的键盘扫描扩展至32键以上

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

时间:03-12 来源:互联网 点击:
摘要:本应用笔记介绍了一种扩展扫描的方法,可以扩展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键连接
P0P1P2P3
LED Output O0SW A1SW B1SW C1SW D1
LED Output O1SW A2SW B2SW C2SW D2
LED Output O2SW A3SW B3SW C3SW D3
LED Output O3SW A4SW B4SW C4SW D4
LED Output O4SW A5SW B5SW C5SW D5
LED Output O5SW A6SW B6SW C6SW D6
LED Output O6SW A7SW B7SW C7SW D7
LED Output O7SW A8SW B8SW C8SW D8


图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键连接
P0P1P2P3P0 P1P2 P3
LED Output O0SW A1SW B1SW C1SW D1SW AB1SW CD1
LED Output O1SW A2SW B2SW C2SW D2SW AB2SW CD2
LED Output O2SW A3SW B3SW C3SW D3SW AB3SW CD3
LED Output O3SW A4SW B4SW C4SW D4SW AB4SW CD4
LED Output O4SW A5SW B5SW C5SW D5SW AB5SW CD5
LED Output O5SW A6SW B6SW C6SW D6SW AB6SW CD6
LED Output O6SW A7SW B7SW C7SW D7SW AB7SW CD7
LED Output O7SW A8SW B8SW C8SW D8SW AB8SW CD8

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


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

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

表3. MAX6954/MAX6955扩展后的80键连接
P0P1P2P3P0 P1P0 P2P0 P3P1 P2P1 P3P2 P3
LED Output O0SW A1SW B1SW C1SW D1SW AB1SW AC1SW AD1SW BC1SW BD1SW CD1
LED Output O1SW A2SW B2SW C2SW D2SW AB2SW AC2SW AD2SW BC2SW BD2SW CD2
LED Output O2SW A3SW B3SW C3SW D3SW AB3SW AC3SW AD3SW BC3SW BD3SW CD3
LED Output O3SW A4SW B4SW C4SW D4SW AB4SW AC4SW AD4SW BC4SW BD4SW CD4

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top