电容式触摸替代机械式按键
一个4x4矩阵键盘的典型波型如下图所示
本文引用地址:https://www.eepw.com.cn/article/132685.htm
图2 扫描线波形
如图所示,任何时刻都有扫描线逐一下拉至GND接地端,其数量不会超过处于逻辑 ‘0’状态的扫描线。同时有多条扫描线处于逻辑 ‘0’状态,会减低检测出按钮按压的精确度。
为了替代键盘,电容感应控制器必须扮演一个机械式键盘的角色,并让host认为它就是机械键盘 ,host的输出线(扫描线)必须变为输入,而host端的输入线(读取线)则会成为电容感应控制器的输出端。根据扫描线状态以及按钮触摸状态,系统须视情况由控制器来更新读取线。步骤如下所述。在一个12按钮(如图3所示)的产品中,按钮必须排成3x4矩阵,其中3是扫描线数量,4则是读取线数量。
1. 开启扫描线上的中断。
2. 把中断设置成边缘触发(在两端)。
3. 为3条扫描线启动一个 ‘3’字节数组,由于我们需要4条读取线(每条分配1个位),因此选择BYTE(字节)。如果超过8条读取线,则应使用WORD。
4. 对于任何使用电容感应算法的手指触摸系统,读取12个按钮,并利用相对应的数值来更新字节数组。注意:读取线应是active low状态,因为每当按压按钮时,扫描线上的 ‘0’就会传送至读取线,在默认状态下,读取线会上拉至Vcc。
5. 所有扫描线中断都无需开启。只有当扫描线上报告有按钮按压事件时,中断才会开启,不然应处于关闭状态。这样的设计有助于在电容式触摸控制器中降低CPU的负荷。
6. 在扫描线中断时,读取这些线并视状况更新读取线(参考下图)。

3 键盘仿真
评论