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 | |