我想使用 LP586x 驱动 RGB LED 以及扫描键盘。 开路和短路检测功能似乎非常适合此目的。
使用 LP5860TEVM 电路板、我移除了跳线并通过串联电阻将 CS14..17引脚连接至键盘行、并通过1N4148二极管(K 至键盘)将 SW0..2连接至键盘列、从而禁用了 CS14..17的 LED 矩阵。
键盘是一个简单的3x4矩阵的硅胶按钮与碳丸,以完成电路。 导通电阻似乎约为10欧姆。
我使用0欧姆串联电阻、编写了一些测试代码来随机改变 LED 的颜色并读取相关的 DOT_LODx 和 DOT_LSDx 寄存器。
这符合我的预期:按下相应按钮时设置 SC 位、未按下相应按钮时设置 OC 位。
只是为了完成后台信息- Chip-en 寄存器设置为"1"、Dev_Initial 寄存器设置为0x58 (模式1)。 其余的配置为默认值、MC = 3 (15mA)、CCx = 64、DCx = 128
对于相关按钮、PWM_Brix 寄存器设置为255。
问题。 当我按下按钮时测量串联电阻两端的电压(以确定电流)、我得到如下值:
68R 上的0.8V 为14mA
0.06V、1.5R 时为 40mA
期望值将小于 Imax 设置的3.75mA。
以这种方式"滥用"短路检测是否明智?
是否建议使用高阻值串联电阻器并仅使用开路检测机制来确保过大的电流不会通过键盘?
评论是不可靠和/或不建议使用 LP586x 器件扫描键盘?