STM32F072-DISCO 电容触摸滑条原理

/ 0评 / 4

STM32F072-DISCO上的电容触摸滑条能够通过STMTouch库,实现0~255级的调整.他主要实现方式和网上的坑爹滑条还不一样,网上坑爹滑条是通过多个按键实现,他这里是真正的3个IO满足一切.
主要是4片铜皮,其中最外面两个是同一个IO,里面两个分别是别的IO.

如下是我修饰过的图,R,G,B区域分别连接三个IO.

只要所在测量IO被按下,那么Meas的数值就会变小.按左边和右边极点,都会导致红色对应IO的Meas变小,但是按左边时候,红色和绿色的Meas都变小,而蓝色Meas还是那么大,按右边同理.因此,两个红色区域是可以区分出来的,可以知道是按左边的红色,还是右边的红色,所以之前也说过,要3个IO才能做滑条.中间就是绿色和蓝色的交汇了,更靠近谁,谁数值更少.
如下图是空闲状态:

如图是按到中间了.蓝色和绿色下降的都差不多.

分别按两端时的图:

可见分别按两端时,红色跌落比较大,但是按哪一段,可以通过图看得到,而按中间时候,红色跌落比较小,所以,在ST的算法中,用delta来计算坐标,是合理的.第一次图蓝色比较低,可见是触摸靠近右边,第二次绿色比较低,可见是触摸左边.
为什么什么都不按,蓝色和绿色竟然不一样呢,通过实验,知道是采样电容存在差异了.他们两个电容一交换,曲线就交换了,红色为什么总是偏低,因为他覆盖两面铜的缘故吧,通过换电容看不出太大改善.
所以,在触摸程序中,不能使用定值,因为定值不合理,不能保证电容的一致性.应该通过程序在线识别,计算.
在Layout测试发现,越细的线路,信噪比越高,网状覆铜也能提高信噪比.其实这个电容触摸外设还可以用电路知识来解释.但是官方手册有一张更明显的图.

首先把两个都放电,然后给手指电容充电.这时候Cs是Hiz,高阻不代表断开,他依然有微弱电流流过,所以在给Cx充电过程时,Cs也在充电,只是非常慢,比如Cx充电了百分之一微库仑,而Cs只有万分之一微库仑,接着进入大家都高阻状态,Cx和Cs的电势不等(电容内电量也不等),Cx就会放电给Cs,直到Cs和Cx电势一样.计算的是Cx给Cs充电时间,然后写到寄存器,如果有触摸,在一定时间内,Cx能充的电量就会少,转而Cx充Cs时间变小,所以数值变小.
关于TSC外设中,Cx充电是充满,假设手指放上去会变成10pF,默认是15pF,所以,给Cs的时间就更短了.下一个回合说一下这个TSC操作,库操作占了多少时间.看看效率如何.

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注