12键触摸板调试

1、合适的灵敏度:不误触发、有效动作

2、LED背光

3、IIC

4、触摸中断信号

5、供电电压  CPC21434是4.7-5.3   TSM12MC是3.3V 典型值,最大值5V

6、IIC SCL从PB4换到PB9就可以了。。。原因待查,IIC_CHECK 不通过,IIC_WRITE应该是好的,因为其他按键触摸也会产生中断,那么应该就是IIC_READ有问题。写的是0XAA,读出来的情况有:0xaa,0xae,0xa0,0x8e,0xa1

7、IIC设备要外加上拉电阻(只要是IIC都要)

8、触摸板要求供电电源比较干净,最好有独立的线性电源模块供电 AMS1117之类,否则纹波对测量结果影响还是蛮明显的

http://blog.sina.com.cn/s/blog_6e83e93d0101q4fi.html
触摸板数字 芯片cs_pin output寄存器值
3 CS9 out3:0x01、0x02、0x03
2 CS8 out2:0x40、0x80、0xc0
1 CS4 out1:0x40、0x80、0xc0
6 CS10 out3:0x04、0x08、0x0c
5 CS7 out2:0x10、0x20、0x30
4 CS3 out1:0x10、0x20、0x30
9 CS11 out3:0x10、0x20、0x3
8 CS6 out2:0x04、0x08、0x0c
7 CS2 0out1:0x04、0x08、0x0c
# CS12 out3:0x40、0x80、0xc0
0 CS5 out2:0x01、0x02、0x03
* CS1 out1:0x01、0x02、0x03

(是否要以 * 开头 待商榷)

 密码输入有声音提示;一次输入密码操作限时机制,从监测到输入‘ * ’键, 10s之后如果没有输入任何密码或这段时间内密码输入错误,密码缓存单元清空 对应的所有变量清零。

‘ * ’ : 开始标志变量 beginreadpsw

触摸盘已输入数字个数变量  inputcount  到达多少个个数开始密码检验?动态检测还是静态检测   动态检测允许用户设置的密码个数不固定 ,开销较大,优化方法是:约定两个输入密码动作的最大时限Tmax,比如用户要输入密码1234,则输入1 和2之间的时间间隔不能太长,比如超过2秒,则只将1作为用户1次密码输入操作输入的密码。这样弊端也是很明显  有些人输入密码就是比较慢;使用较为广泛的还是静态检测,  触发密码比较的情况有两种:输入密码个数到了约定的数目、某个动作触发,则开始密码比较(比如输完密码按开门键  这时候就是触发了密码比较,而不是在输密码的过程中就一直在比较)

中途用户输入密码错误 按‘ # ’ 清除已输入的所有密码  提示音要与之前稍有不同,清除beginreadpsw,之后重输密码还是要以‘ * ’开头  

每次检查到有输入动作 将读到的数据存入密码缓存单元  inputcount ++;

密码是否要求都是数字

 

测试条件:TSM12 灵敏度设置为7(最低),外部中断设置为上拉输入,裸板测试,未加数字键外壳。

触摸板样板1测试情况:

测试结果良好,基本上没有交叉干扰,但是出现这种异常情况的次数较多:进入中断,读OUTPUT读到的值却为0。而且测试读到的值普遍偏小01 02 03 ,以01居多。

触摸板样板2:测试CS11时,被影响对象CS10 错误值,0x08.

  

测试cs 被影响cs 错误值 程度
CS2 CS1   极少
CS3 CS2 0X08  
       
       
       
       
       
       
       
       
       
       

 

原文地址:https://www.cnblogs.com/fyp7077/p/8304123.html