从零开始造一台复读键盘(一)

引言

2018年4月的一天,某手柄刚刚参加完某比赛。结果不尽如人意,遂从新沉迷 osu! 这款音乐游戏,但愿可以拥有一台趁手的小型键盘,无奈淘宝价格广泛过百,便尝试自造一台。html

全文大部份内容根据本身数月前的经验和操做过程猜想和总结,因此有大量错误在所不免,还请各位大佬包涵并指出错误以改进本文!segmentfault

总述

本节介绍了 项目的需求,选型,和 首次刷写程序,并使用 例程,完成了基本的 USB键盘 功能,完整项目可在 个人博客 获取,该部分源码可在 百度网盘 提取码33dt 下载查看。浏览器

注:
开发环境的操做系统为 Windows 10 1803 x64
在开发过程当中可能会须要如下开发设计软件:(本文暂时还所有没用)
Keil μVision 5
Altium Designer 10
AutoCAD 2019测试

成品设备可在 个人淘宝店铺 直接购买。spa

从提出问题到解决问题

需求

制做出一个键盘,让其能够响应操做,而且键值能够配置,若是可能的话,最好还有RGB灯光和模拟鼠标按键功能操作系统

进行拆分.net

  1. USB识别为HID键盘设备,可响应操做
  2. USB识别为混合设备,额外包含HID输入设备,开发一个电脑上使用的控制程序用于修改键值
  3. 拥有若干RGB灯光,也能够被配置
  4. USB识别为混合设备,额外包含一个鼠标

选型

搜索某宝,某度和某应,找支持USB的单片机或键盘IC,找到以下可使用的型号:设计

  1. WCH-CH340(模拟串口) + WCH-CH9328(键盘IC)
  2. WCH-CH55X(C51单片机)
  3. STM-STM32F10x(ARM32单片机)

最终基于“省钱”和“响应速度够快”两个想法的状况下, 采用 CH551G 型芯片(后期因为IO口不够用更换为了CH552T型),封装针脚定义以下图。3d

CH551封装

链接面包板

CH551G 为 SOP16 封装,无 DIP 封装版本,故购买了 SOP16 测试座一个(约¥14),将其转为 DIP 插口插入面包板。code

接下来,给单片机链接 USB 线以用于链接至计算机,按照针脚定义,USB 以及供电针脚定义以下
P12:USB Data P
P13:USB Data M
P15:VCC
P14:GND
而后,参照 CH552/CH551 型单片机规格书的要求,给 P16 V33 以及 P15 VCC 分别接 0.1μF 电容至 P14 GND 上。

下载安装 WCHISPTool 链接数据线至计算机,可见 标签页 8位CH55X系列 下,在USB设备列表中已识别出设备,显示为 CH551。

设置刷写按钮

按照官方规格书说明,CH55x 提供了内置的 BootLoader ,正常来讲按照下图来接就好……可是很玄学……在按照图像接好后并无什么卵用……

官方ISP按钮原理图

最终我按照下图接线,成功工做……(D+反了别吐槽)

最后实际的接线

刷入例程

下载例程包,而后进入目录 \EVT\EXAM\USB\Device ,按住刚才设置的 刷写按钮 ,打开 WCHISPTool ,切换至标签页 8位CH55X系列 下,在固件中选择目录中的文件 CompositeKM.hex ,进行刷入,链接 P15 到一个按钮,而后接至 GND ,按下按钮,电脑收到按键响应。

这个固件的对应源码是 CompositeKM.C 其中的源码下次再详细说明。

(具体响应是什么我真的忘了……毕竟好几个月以前了……)

碎碎念

各位大佬好……本文本着水分的想法开写,将以前造键盘的过程发布出来进行分享。因为时间有点久远,有一些内容没法准确回忆起来,还望脑部部分缺失内容。

希望本文还会继续更新下去,越新的内容我或许就能回忆起更过吧,笑。下次更新的内容应该是关于USB描述符相关的内容,尽可能不鸽。

最后再水下,SimPad,基于C51的开源2键游戏键盘键盘项目,其中的PC端控制程序使用Electron完成,其中包含的无依赖组件 simple-color-picker (颜色选择器)可用于普通浏览器中,欢迎吐槽和建议。

相关文章
相关标签/搜索