本帖最后由 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原创,如需转载或用于商业用途需征得作者同意并注明出处