8437|6

2856

帖子

260

TA的资源

五彩晶圆(高级)

楼主
 

CH554评测——CH554软件篇之触摸按键 [复制链接]

本帖最后由 ltbytyn 于 2017-10-8 00:47 编辑

触摸按键是CH554的一大特色,所以优先测试


看了一下原理图,4个按键只有3个检测IO。其中P16可认为是上拉。
查看CH554的datasheet,其触摸按键有两种检测方法。一种自电容检测;一种互电容检测。资料也没有详细介绍。百度了一下,加上自己的猜测,基本这样理解:按键由一个IO口和地组成的叫自电容检测;由2个IO口组成按键的叫互电容检测。


查看资料,当触摸按键按下时的数据比未按下时的数据小。


事实是P16的脚一直检测到的KeyDate一直是很小的值(等效该键一直被按下),因此P16基本废了,不能做触摸按键使用。此处应该是开发板原理图中的第一个BUG


K1按键由P14和P15共同检测;K2由P14和P16共同检测(实际P16已经失效,等同按下,K2实际只由P14检测);K3由P14检测;K4由P15检测。K2和K3检测结果一样,因此导致4组按键实际能识别的只有3组(K1、K2或者K3、K4)。

沁恒没有提供专供开发板的软件Demo,沁恒官网下载到的是通用库函数,需要修改程序才能用来验证。

测试中发现一个问题:有个全局变量定义在xdata中,只有一个函数在调用。里面的值和我要求的结果不一致,莫名其妙,没有道理。后来改到idata就ok。是否芯片设计的BUG?由于开发板只有串口烧录功能,不能仿真。无法确定该变量在执行哪一块出现变化。虽然我写的测试程序比较邋遢,但基本逻辑还是能保证的。原厂的技术人员需要的话,联系我,可提供我的测试程序。

触摸键测试程序需求修改一下才能测试。貌似我好像是第一个完成触摸键测试的。提供一下我的测试文件 CH554DEMO.hex (6.98 KB, 下载次数: 8) ,仅供测试。工程文件我晚点发布。

触摸键演示视频:
http://v.youku.com/v_show/id_XMzA3MDgzMzUzMg==.html
此内容由EEWORLD论坛网友ltbytyn原创,如需转载或用于商业用途需征得作者同意并注明出处






此帖出自单片机论坛

最新回复

CH554评测— by ltbytyn https://bbs.eeworld.com.cn/thread-567991-1-1.html ch554测评汇总贴: 汇总:CH554测评 https://bbs.eeworld.com.cn/thread-568476-1-1.html   详情 回复 发表于 2017-10-16 07:45

赞赏

2

查看全部赞赏

点赞 关注
 

回复
举报

6105

帖子

4

TA的资源

版主

沙发
 
此帖出自单片机论坛
 
 

回复

63

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
楼主说的有道理。
起始触摸按键的原理就是对通道PCB产生的感应电容充放电,然后采集充放电次数,实际采集通道值就是充放电计数,检测周期1ms或者2ms可设置。
但是PCB走线会有寄生电容,寄生电容越小越好,所以线长,线距,走线方式还是有些要求的。
感应方式分为自容式和互容式,简单理解就是通道和地线之间,通道和通道之间。
现在这个测试板,通道接上拉,会影响通道充放电,所以触摸按键时需要将LED去掉,才能正常使用。
实际使用发现,自容式更为实用,所以新版统一改成自容式(触摸弹簧,可加亚克力等面板)按键,但是因为G封装IO复用,所以依然是LED和触摸二选一。
网上也有很多其他相关的文章,可作为设计开发参考。
此帖出自单片机论坛

点评

首先表示感谢。对于触摸按键功能其实我没有疑问。疑问的是在调试过程中出现全局变量(定义在XDATA)莫名其妙被改写,打印非我所要的答案。把全局变量放到Idata没有问题。  详情 回复 发表于 2017-10-10 23:16
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(中级)

4
 
我发了帖子链接被屏蔽了,你可以直接百度搜索,CH554 触摸按键,有一篇发在其他电子论坛的帖子,网上也有其他讲的很细致的帖子可以看看。
此帖出自单片机论坛
 
 
 

回复

2856

帖子

260

TA的资源

五彩晶圆(高级)

5
 
SuiBianLiuLiu 发表于 2017-10-9 11:00
楼主说的有道理。
起始触摸按键的原理就是对通道PCB产生的感应电容充放电,然后采集充放电次数,实际采集 ...

首先表示感谢。对于触摸按键功能其实我没有疑问。疑问的是在调试过程中出现全局变量(定义在XDATA)莫名其妙被改写,打印非我所要的答案。把全局变量放到Idata没有问题。
此帖出自单片机论坛

点评

原触摸按键代码一共两个全局变量,一个是基值数组(按键空闲时充放电计数值),另外一个是按键状态记录(0表示未有按键按下,1表示按键发生),不知是哪个变量出现了问题; 如果你改后的代码,定义了其他全局变量,  详情 回复 发表于 2017-10-11 09:21
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(中级)

6
 
ltbytyn 发表于 2017-10-10 23:16
首先表示感谢。对于触摸按键功能其实我没有疑问。疑问的是在调试过程中出现全局变量(定义在XDATA)莫名 ...

原触摸按键代码一共两个全局变量,一个是基值数组(按键空闲时充放电计数值),另外一个是按键状态记录(0表示未有按键按下,1表示按键发生),不知是哪个变量出现了问题;
如果你改后的代码,定义了其他全局变量,建议你把具体的变量和代码发到lb@wch.cn邮箱,咱们可以探讨下,找找问题的真正原因。
此帖出自单片机论坛
 
 
 

回复

1万

帖子

2853

TA的资源

管理员

7
 
CH554评测— by ltbytyn
https://bbs.eeworld.com.cn/thread-567991-1-1.html

ch554测评汇总贴:
汇总:CH554测评
https://bbs.eeworld.com.cn/thread-568476-1-1.html
此帖出自单片机论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表