CH554评测:开箱+测试USB接口的Touchkey键盘
<div class='showpostmsg'> 本帖最后由 XinChao 于 2017-11-30 16:46 编辑之前没用过触摸按键的MCU,看到活动说这款MCU主打的是USB和Touchkey,就想做个简单的USB接口的Touchkey键盘,就申请了{:1_138:},居然中了,感谢论坛!{:1_144:}
1.开箱
收到CH554评估板,开箱!一板、一线、一张纸,包装很简洁。
板板特写,板子品质看起来一般般,芯片所有的接口都有插座引出。4个触摸按键。板上两块芯片,一片CH554的MCU,另一片是CH340的USB转串口芯片。可惜USB Type-C接口没有焊上,小失望{:1_99:}
板板背面,没有任何器件。
芯片特写,CH554T,评估板兼容两种封装的554芯片。
2.上电测试
用附带的USB线把板子的P1接口连到电脑,检测到了串口,打开串口调试,可以看到数据,但是触摸按键时感觉输出的值不对,不管摸哪个键,输出的都是相同的值。。。
下载了提供的例程CH554EVT.zip,写入例程中的代码TouchKey.hex,测试也是不对,最后发现官方提供的例程代码中有不少错误。
如图,在初始化中触摸按键采样基准值时,累加取平均值的变量TmpSum,在用前居然没有清零,导致只有第一个通道的值正确,后边的全出错!
ps:我是调试了好长时间之后才发现的这个错误:Sad:
还有这块(下图),标记处应该是 if(ch >= KEY_LAST) ,否则会多采集一个通道的值。
3.USB TouchKey键盘
最终,参照例程,修复了错误,做出了USB Touchkey键盘(虽然只有两个按键:titter:)。
触摸按键采用自电容方式,使用了3和4两个通道,使用中断方式采集触摸按键数据,调整了程序中的参数,经反复调试,四个触摸按键中两个k3和k4可以正确的使用,按k1时会出现k3或k4的值,不稳定。按k2时没反应,应该是k2使用的P1.6端口复用接了LED的原因。
看原理图,4个按键采用了两种方式,k3和k4为自电容方式,k1和k2为互电容方式,不懂互电容方式怎么实现,以后有空再试吧。。。。。。
USB部分模拟了标准的USB键盘接口,使用k3和k4两个按键可以输入‘3’和‘4’两个字符,如下图,触摸按键时可以在文本中输入字符,同时MCU的串口输出测试信息:通道和采样值。
设备管理器中可以看到模拟出的键盘。
4.总结
一片只要1.3元,带USB接口、触摸按键、两组UART,增强型51核,性价比非常不错!编写程序、烧写芯片都比较简单方便。
感觉不好的地方就是官方提供的例程了,居然有错误!既然评估板都做出来了,为什么不针对评估板做一套测试程序呢?!可以让没有用过此芯片的快速入手,也能让没用过此芯片的很直观的测试芯片的性能。
5.源代码
此内容由EEWORLD论坛网友XinChao原创,如需转载或用于商业用途需征得作者同意并注明出处
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> 谢谢提醒,例程我们正在完善,针对此电路板硬件不完善的地方也在第二版本电路板中做了改正。:handshake
页:
[1]