映射多个按键将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 |
图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拉低。
图2.扩展了与MAX6959 LED显示驱动器的12键连接。
最后,一个警告。四个扩展键中的每一个都经过接线,以vwin 四个 LED 阴极驱动输出 DIG0/SEG0 到 DIG3/SEG3 上两个键的双按键。通过这种连接,每个密钥对始终同时被扫描和去抖动。模拟由不同LED阴极驱动输出扫描的按键双键的额外按键将不可靠。由于按键扫描是按顺序执行的,一次执行两个按键,因此额外的按键可能会错过一个 LED 阴极驱动器的去抖动周期,但另一个 LED 阴极驱动器会正确去抖动。然后,此双键按下将显示为两个连续按键,而不是双键按下。建议的连接方案不会发生这种情况,因为代表双密钥的每个密钥对都会一起去抖动。
审核编辑:郭婷
-
处理器
+关注
关注
68文章
19259浏览量
229647 -
led
+关注
关注
242文章
23252浏览量
660543 -
驱动器
+关注
关注
52文章
8226浏览量
146247
发布评论请先 登录
相关推荐
评论