|
|
发表于 2026-7-5 12:28:34
|
显示全部楼层
=============================================================================================================
触摸按键检测原理:先对参考电容Co放电至0V,然后对被检测电容Cx按一定的频率fs充电至Vcc,接着将Cx与Co连接,Cx对Co放电,不断重复上述过程,直到参考电容Co上的电压达到设定的参考值。
测量的时间计数值都是以主频时钟为计时时钟,本例放电时间为5000个主频时钟,即5000/24=208us。
参考电压选择 Vcc*1/2,在开关频率fs时Cx等效电阻为1/(fs*Cx),则根据RC充电公式简单计算可得 t = 0.693*Co/(fs*Cx)。
fs = fosc/(2*(TSCFG1[6:4]+1)),本例TSCFG1[6:4]=7,则fs=24/16=1.5MHz,这个就是开关电容的频率。当这个频率越快,则充电时间就越短。
参考电压选择 Vcc*1/2,
测量时间 t = 0.6931*Co/(fs*Cx)。
倍测电容 Cx = 0.6931*Co/(fs*t)
一般我推荐一个按键0.5~1ms的检测时间,24MHz对应的读数是12000~24000,调整参考电容来调整时间(读数)。
推荐开关频率fs为1.5MHz,Cx一般在5~15pF之间。
主频为24MHz,
如果TSCFG1[6:4]=7,则fs=1.5MHz,此时某个键读数为24000,即为1000us,
如果TSCFG1[6:4]=3,则fs=3MHz,则读数变为12000,即为500us,
如果TSCFG1[6:4]=1,则fs=6MHz,则读数变为 6000,即为250us,
如果TSCFG1[6:4]=0,则fs=12MHz,则读数变为3000,即为125us。
fs低一些为好。
假设Co=22nF,fs=1.5MHz,某个键无触摸时读数cnt=24000,即t=1000us,
此时电容Cx = 0.693*22nF/1.5MHz/1000us = 10.164pF。或Cx = 0.693*22nF/1.5MHz *FOSC(MHz)/读数 = 244000/读数 (pF).
假设触摸时读数变小了8%,即读数为22080,时间为920us,则此时电容Cx = 0.693*22nF/1.5MHz/920us = 11.048pF,手指触摸增加电容0.884pF。
可见,手指触摸时电容改变通常不到1pF,所以设计电路一定要尽量减小分布电容,使触摸电容变化在5%以上,达到10%则会非常优秀。
用户将产品安装好之后, 读出每个键的未触摸读数(即零点)并做自动零点跟踪,读出已触摸的读数, 计算出差值就可以判断按键是否按下.
差值是未触摸读数的5%以上为合格, 达到10%以上为非常优秀. 占比小则灵敏度太低, 请重新审视硬件设计.
=============================================================================================================
做触摸按键基本要求:尽量减小分布电容,触摸感应面积尽量大,这样触摸后读数的变化率尽量大,能得到很好的效果,一般要求不触摸时读数为10000~20000左右,触摸后读数变化5%以上,能达到10%以上会非常好。
1、铺铜时,铜箔离按键线间隔不要小于0.8mm,触摸线要细、短,以此减小分布电容。
2、网格铺铜。
3、触摸线附近不要有高速变化的信号线,避免干扰。
4、尽量加大触摸感应面积。
5、相邻触摸线可以并走一条细地线隔开,避免两键相互影响。
6、一定要做0点跟踪。
|
|