电容式触摸(TOUCH)按键(二)

前言:

电容式触摸按键在外形美观和使用寿命等方面都优于传统的机械按键,所以在电子产品上非常受欢迎。

ADC的例程中是有包含TouchKey采样的方式,用户可以进行触摸功能的使用。针对该触摸功能,进一步完善并提供了触摸库,触摸库也是基于ADC的TouchKey实现的,但是实际的功能更加丰富,且有投入产品使用。

上一篇博客针对电容式触摸按键原理进行了讲解:电容式触摸(TOUCH)按键(一)。接下来对CH58x的触摸库使用进行讲解。

一、基本参数

  • 滤波器模式分为CS10、CS10BLE、1、2、3,相应的区别可参考触摸库的使用;
  • 使用触摸功能需注意触摸按键通道数目与实际的触摸按键个数相同,即MAX_QUEUE_NUM参数,必须和通道初始化中的初始化数量严格对应;

二、软件调整

  1. 基线值一般设置为3000-3600之间,在手指触碰到按键上时,类似于并联电容,在相同的时间内电压会减小,所以基线值会变低,也就变成了当前检测值。当前检测值与基线值进行做差,得出来的阈值可以进行判断是否有手指按下;
  2. 基线值打印一直在4095下不去,则减小chargeTime,减小为0后基线值仍不符合要求,则检查触摸的初始化,肯定做过修改。同时需要注意按键通道数MAX_QUEUE_NUM与实际的通道数对应。使用ADC的例程TOUCH功能也会是在4095,建议使用触摸库;
  3. 建议在串口打印基线值的显示,可以在notify_data(确保可以执行到的)函数中进行打印,PRINT("TKY_GetCurQueueBaseLine= %d ", TKY_GetCurQueueBaseLine(i));
  4. 采样值:触摸后检测值与基线值的做差绝对值。未触摸时检测值一般等于基线值,即采样值=0;触摸后检测值会变化,加盖板触摸后采样值一般为100+;
  5. 触摸后进行判断的依据设置:上升变化阈值设置75%,下降变化阈值设置50%。在实际使用的情况下,如上升阈值给45,下降阈值给40,能够有明显变化即可;
  6. 基线值漂移及解决:蓝牙睡眠结合触摸一起使用时,触摸唤醒引脚日志显示基线值上升40左右,可以尝试调整baseRefreshSampleNum( 基线更新采样次数)、baseUpRefreshDouble( 基线向上更新的倍数参数)、baseDownRefreshSlow( 基线向下更新的减速参数)。baseUpRefreshDouble与baseDownRefreshSlow设置参数差值不要太大,如给乐客调节参数均设置200。相应参数基于32K产生(存疑),baseRefreshSampleNum单位是几ms(具体未知);
  7. 在触摸一号按键的时候,旁边的数据也会受到较小干扰,这是因为电容式触摸容易与周围环境的元件产生耦合,因此出现了虽然没有触摸到相应的按键,但是键值的检测也会有些许变化。这里的误差为可接受范围内,因为变化明显,变化值与干扰导致误差之间的差距足够让程序区分。设置好阈值进行触摸的是否响应即可;

三、硬件调整

1、走线设计

触摸按键与处理器之间的走线的长度会增加并联电容,从而降低触摸检测的灵敏度。通常在走线时应注意以下几个方面:

①长度

走线时应尽量缩短触摸按键至处理器的长度,以降低元件与走线产生耦合的风险。建议走线长度小于100mm;

②宽度

走线的宽度同样也会增加触摸按键的感应电容,同时也会增大与其他元件的耦合。因此设计时,走线宽度应为制板工艺的最小线宽,通常情况下,双面板尽量采用5~8mil的线宽,单面板采用10~15mil的线宽。

③避免与其他信号线平行

触摸按键的走线禁止靠近如IIC或SPI等通讯线,因为通讯线的频率会影响触摸按键的性能。如果必须要靠近通讯线时,应将两者放置在不同层,并保证垂直交叉或有一定的间隔。同时相邻按键之间的走线间距至少应在1mm以上。

④铺地

触摸按键感应盘底层正下方不铺地,顶层如果需要铺地隔离时,一般采用网络铺地,同时触摸感应盘和其引线与GND的距离要保证大于3mm。

2、主动屏蔽

主动屏蔽就是触摸键旁边的那个圆圈,是接到AIN0引脚的,可以不要。这个目的就是产生一个跟触摸按键相反的波形来抵消一些杂波。网格屏蔽就是PCB板上的格子,可以使信号更好。主动屏蔽这个引脚不算在MAX_QUEUE_NUM,触摸按键通道数目与实际的触摸按键个数相同即可。主动屏蔽的硬件设计参考触摸库的PCB,即PCB上的SHILED引脚。

 

posted @ 2023-01-04 11:51  SweetTea_lllpc  阅读(1747)  评论(0编辑  收藏  举报