打印
[MCU]

使用普通I/O口实现电容触摸感应方案

[复制链接]
561|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Sode|  楼主 | 2019-9-14 18:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
使用普通I/O口实现电容触摸感应方案

触摸感应解决方案受到越来越多的IC设计厂家的关注,不断有新的技术和IC面世,国内的公司也纷纷上马类似方案。但是目前所有的触摸解决方案都使用专用IC,因而开发成本高,难度大,而本文介绍的基于RC充电检测(RC Acquisition)的方案可以在任何MCU上实现,是触摸感应技术领域革命性的突破。

RC充电检测基本原理

RC充电检测基本原理是对使用如PCB的电极式电容的充电放电时间进行测量,通过比较在人体接触时产生的微小变化来检测是否有“按下”动作产生,可选用于任何单独或多按键、滚轮、滑条。

如图1(a)所示,在RC网络施加周期性充电电压Vin,测量Vout会得到如(b)的时序,通过检测充电开始到Vout到达某一阀值的时间tc的变化,就可以判断出是否有人体接触。


PCB设计注意事项

不论是单按键、多按键、滑条、滚轮设计,还是混合应用,都可以使用一个I/O进行充电,既可减少资源应用,又可以因使用同一定时标准从而简化软件设计。

用于传递按键信号的线一定要足够细,以降低线路造成的电容的影响,信号线间距为两倍线宽,不同组的信号间距应保证3~5mm。同组的信号线长度应尽量保持一致,不同组的信号线不可以交叉。独立按键的形状可设计为圆、三角或正多边形,尺寸以10~15mm为宜。滑条的形状可以是长方形或锯齿形,滚轮可以设计为幅射的扇形或环形,也可以是交错的齿轮,每个部分之间应保持0.2~0.5mm。按键PCB层不应该覆铜,否则会影响感觉的灵敏度,反面应覆铜以减少干扰。

LED经常在感应设计中用来指示按键是否有效按下,注意按键的地或电源线尽量短,线路较长时宜增加1nF的滤波电容。

另外,建议电源电路使用线性电源而不是开关电源,这对提高感应灵敏度很重要。


软件设计流程与实现
对充电时间的测量可以使用MCU中定时器的捕捉功能,对于多个按键一般MCU没有足够的定时器为每个按键分配一个,也可以使用软件计时的方法,这要求能对MCU的时钟精确计数,并且保证每个周期的时钟个数保持一定。这种情况通常要求对按键使用一个独立的MCU,以保证不被其他任务中断。为了提高系统的可靠性和稳定性,改进的测量方法是对Vout进行高和低两个门限进行测量。




使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1049

主题

1522

帖子

8

粉丝