将MAX6959 LED显示驱动器按键扫描从8键扩展至12键

描述

映射多个按键将MAX6959 LED显示驱动器的按键扫描功能从8个按键扩展到多达12个按键。本应用笔记详细介绍了如何扩展该功能。

介绍

MAX6959为4位、9段LED驱动器,可自动扫描和去抖动多达8个按键开关,可选择通过中断输出引脚提醒系统处理器按键去抖动。(类似的引脚兼容MAX6958可以驱动相同数量的LED,但不具有按键扫描功能。本文所述的技术将MAX6959的能力从8个键扩展为12个键,每增加一个双通道二极管。

 

  输入1 输入2
DIG0/SEG0 键0 键4
DIG1/SEG1 键1 键5
DIG2/SEG2 键2 键6
DIG3/SEG3 键3 键7

 

led

图1.与MAX6959 LED显示驱动器的标准8键连接。

表1和图1所示为MAX6959的标准按键开关连接。按键开关电路读取以 2 x 4 矩阵(两列四行)组织的八个按键。四个按键矩阵行由四个 LED 阴极驱动输出 DIG0/SEG0 至 DIG3/SEG3 驱动。作为多路复用LED驱动的一部分,这些LED阴极驱动输出轮流变为低电平320μs (标称)(并按顺序驱动其LED)。这些驱动输出还用于将两个按键开关的一端拉低。按键的另一端连接两个输入引脚INPUT1和INPUT2,在MAX6959内部上拉至V+。如果按下开关,则INPUT1或INPUT2将被适当的DIG_/SEG_输出拉低,MAX6959检测并去抖动按键。

与开关串联的二极管可确保在同时按下多个键时,两个或多个 LED 阴极驱动输出不会短路在一起。例如,如果将键0和键1压在一起,则与键串联的二极管可防止DIG0/SEG0短路至DIG1/SEG1,因为在任何时候至少有一个二极管将反向偏置。二极管通常采用 SOT-23 中的低成本共阳极 BAW56。

MAX6959可随时区分和区分八种可能的按键的任意组合。该器件中有8位寄存器,用于提供这8个密钥的状态。显然,除了MAX6959设计的8个按键之外,没有办法扩展这种扫描拓扑。因此,我们必须做每个有自尊的工程师在这种情况下都会做的事情:是的,我们作弊!

更公平地说,我们寻找一个多余的情况来利用。在许多情况下,应用程序只需要知道是否按下了多个键中的一个。通常,设备上的双键按下要么是错误的键控输入,要么是进入出厂诊断模式的狡猾手段。所以多余的情况是双键按下...这里建议的作弊是使四个额外的键看起来好像同时按下了某些键对。如表 2 所示。例如,当按下Key8时,MAX6959必须显示它,就好像同时按下Key0和Key4一样。只要每个原始键对(例如 Key0 和 Key4)没有在物理上彼此相邻放置,这种扩展架构就可以很好地工作,以避免它们被意外地压在一起。软件应编写为在 30.3ms 最小去抖动周期时间内响应密钥 IRQ,以确保分析恰好一次密钥扫描通过的结果。如果软件 IRQ 响应缓慢,它将无法区分同时双击键(识别我们的额外键)和相同两个键的顺序按键。无论哪种情况,密钥去抖寄存器 0 x 08 将仅显示为每个密钥设置的位。

 

  输入1 输入2 输入 1 和输入 2
DIG0/SEG0 键0 键4 键8
DIG1/SEG1 键1 键5 键9
DIG2/SEG2 键2 键6 键10
DIG3/SEG3 键3 键7 键11

 

电路如图2所示。每个键都需要一个双二极管(例如SOT-23中的低成本共阴极BAV70),当按下开关时,它将INPUT1和INPUT2拉低。

led

图2.扩展了与MAX6959 LED显示驱动器的12键连接。

最后,一个警告。四个扩展键中的每一个都经过接线,以模拟四个 LED 阴极驱动输出 DIG0/SEG0 到 DIG3/SEG3 上两个键的双按键。通过这种连接,每个密钥对始终同时被扫描和去抖动。模拟由不同LED阴极驱动输出扫描的按键双键的额外按键将不可靠。由于按键扫描是按顺序执行的,一次执行两个按键,因此额外的按键可能会错过一个 LED 阴极驱动器的去抖动周期,但另一个 LED 阴极驱动器会正确去抖动。然后,此双键按下将显示为两个连续按键,而不是双键按下。建议的连接方案不会发生这种情况,因为代表双密钥的每个密钥对都会一起去抖动。

审核编辑:郭婷

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

全部0条评论

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

×
20
完善资料,
赚取积分