[单片机芯片]

CH55X低成本USB单片机实现定制键盘、鼠标、游戏杆方案

[复制链接]
2388|17
手机看帖
扫描二维码
随时随地手机跟帖
WCHTech2|  楼主 | 2019-10-11 16:37 | 显示全部楼层 |阅读模式
本帖最后由 WCHTech2 于 2019-10-14 11:53 编辑

一、背景
      Human Interface Device(USB-HID),USB协议中人机交互设备类,例如键盘、鼠标、游戏杆等符合HID类别规范的设备都是HID设备。
      HID设备类包含USB设备类共性的所有优点,比如热插拔,即插即用,总线供电,高速率串行数据传输等,显著的优点在于操作系统集成驱动,比如Windows、Linux(Android)、Mac Os,并且系统层提供完整数据收发接口,方上层开发。
      HID只支持控制和中断传输,中断传输特性限制了最大传输速度,比如低速约800B/s,全速约64KB/s,高速约8MB/s。
不过如果需求比较高的传输速度,也不推荐使用HID,可以考虑CDC,自定义设备类等,全速状态下使用批量传输速度也能达到约1MB/s。
二、方案说明
CH55X低成本USB单片机实现定制键盘、鼠标、游戏杆等功能,框图如下:
  技术参数:
  模拟HID设备支持Win、Linux、Android、MAC Os等各种操作系统;
  按键:IO扫描,支持检测,消抖;
  触摸按键:电容式触摸按键检测,消抖;
  摇杆:AD检测;模拟HID复合设备:模拟普通键盘,鼠标,多媒体键盘,游戏摇杆设备;
游戏1.png
演示板如下:
游戏2.png



  • 演示板支持模拟普通键盘,多媒体键盘

  • 按键触发方式可选电容触摸键盘,实体按键或者自制IO键盘扫描驱动电路

  • 提供技术支持和误差校准、消抖等处理算法

  • 提供按键配置软件,支持键值自定义修改,且掉电不丢失,重新上电配置生效,配置软件如下
游戏3.png

注:软件按键位置排列和演示板对应
三、演示说明
      CH55X单芯片方案完成以下功能:
      1)按住K22上电,再释放,进入TouchKey模式,J4断路,PC打开文本输入工具,通过点击键盘矩阵,可以上传相应的按键操作;
      2)按住K25上电,再释放,进入鼠标模式,J4短路,通过遥杆动作,模拟鼠标移动;
      3)按住K26上电,再释放,进入摇杆模式,J4短路,普通PC软件无法直观的看到演示效果,可以通过游戏模拟器看到操作效果,手柄下方的4个按键表示按钮操作。
四、应用
此方案可扩展应用到其他产品方案,如扫描枪控制、手柄模拟、IC和磁条刷卡器、自定义USB按键开关、KVM切换器、定制键盘等。
游戏4.png

五、技术关键点
1、USB HID设备类的实现
     1)USB HID的实现支持XP,WIN7,WIN8,WIN10等全系WIN系统免驱,支持Linux,MAC OS免驱,特殊系统或者系统不兼容,提供技术解决方案;
     2)简单方便的数据上下传API函数,方便二次开发;
     3)支持HID数据上下传;
2、AD参数
游戏5.png
注:
1)INL:斜率引起的满量程误差,若修正斜率,INL<0.5LSB;
2)LSB:least significant bit,最低有效位;



CH554HID_KM.rar

2.51 MB

CH554定制游戏杆例程

使用特权

评论回复
Taoyukai| | 2019-10-12 09:02 | 显示全部楼层
有意思,学习了

使用特权

评论回复
WCHTech2|  楼主 | 2019-10-12 09:33 | 显示全部楼层
有其他相关的应用或者方案需求可帖下留言,只要我们有都会与大家分享。

使用特权

评论回复
tcm123| | 2019-10-13 21:26 | 显示全部楼层
游戏杆  的CH55X代码能不能分享下   

使用特权

评论回复
WCHTech2|  楼主 | 2019-10-14 11:54 | 显示全部楼层
tcm123 发表于 2019-10-13 21:26
游戏杆  的CH55X代码能不能分享下

附件已上传

使用特权

评论回复
kissdb| | 2019-12-30 13:32 | 显示全部楼层

这个代码能实现
提供按键配置软件,支持键值自定义修改,且掉电不丢失,重新上电配置生效,配置软件如下;
吗?
我看了源码,没找到接收的代码

使用特权

评论回复
arduino999| | 2019-12-30 15:46 | 显示全部楼层
请问可以模拟多点触控吗?

使用特权

评论回复
WCHCN| | 2019-12-31 08:53 | 显示全部楼层
arduino999 发表于 2019-12-30 15:46
请问可以模拟多点触控吗?

技术上可实现。

使用特权

评论回复
sayid233| | 2020-1-2 17:44 | 显示全部楼层
学习一下

使用特权

评论回复
lijianxu001| | 2020-5-1 17:05 | 显示全部楼层
鼠标方案的有程序吗

使用特权

评论回复
welssss| | 2020-5-1 17:42 | 显示全部楼层
学习学习

使用特权

评论回复
dalu22| | 2020-7-1 17:03 | 显示全部楼层
4个switch语句嵌套,里面还有几层if语句。还要用tab分隔,花括号长长短短我看我吐了。有没有专业写程序的人啊。

使用特权

评论回复
dalu22| | 2020-7-1 17:05 | 显示全部楼层
WCHCN 发表于 2019-12-31 08:53
技术上可实现。

你们程序员写的程序很不规范。作为例程是极不靠谱的。

使用特权

评论回复
copower| | 2020-8-12 22:43 | 显示全部楼层
谢谢分享。

使用特权

评论回复
chenqianqian| | 2020-9-10 07:41 | 显示全部楼层
这个芯片使用方便

使用特权

评论回复
勇敢的大白菜| | 2020-9-10 08:39 | 显示全部楼层
。断点 单步 走不了 头痛啊

使用特权

评论回复
xinghe280| | 2020-9-14 14:33 | 显示全部楼层

有意思,学习了

使用特权

评论回复
ssing| | 2020-9-18 10:42 | 显示全部楼层
有意思,谢谢啦!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

86

主题

1099

帖子

8

粉丝