DIY制作USB机械键盘

描述

大学时同学打游戏人手一个机械键盘,工作后经常写代码,于是想换一个顺手的机械键盘。淘宝看看各家的卖点大致为全键无冲,响应迅速,进口轴体,抗干扰磁环。不同点也只是在流水灯效和外观结构上。网上查了查键盘实现的原理,发现比较简单。加上自己工作上一直在接触USB协议,于是做一个USB机械键盘。先展示一下半成品,104个键通信正常,外壳还没有做,灯效目前只做了呼吸灯效果,还需要再改善一下。

硬件选型:MCU选择了WCH沁恒的8位单片机CH549L,因为公司一直在用他们家CH376T和CH340G芯片,在接口通信方面做得挺好的国产厂家。找原厂申请了几个样品,说一下当天就发了货,后面遇到技术问题支持也挺到位,非常感谢这位FAE!CH549L,资源大致如下。                  

usb

usb

机械轴我选择了青轴,触发键程2.4±0.6mm,压力克数60±1.5g,机械段感落感强,咔哒声音大,打字打游戏都可以。直接在淘宝上买了,65块钱110个按键,便宜质量也还不错。CIY设计的轴体,换轴很方便,手残的必备哈哈。

硬件设计:      键盘采用8×16的扫描矩阵,实际用了104个键,1000HZ的轮询速率,响应迅速挺快。每个按键处加了二极管,实现全键无冲。                         

usb

芯片USB可选择1.5Mbps(LS)的低速模式,也可以选择全速12Mbps(FS)的工作模式,USB信号线直接输出无需添加上下拉电阻,PCB走线注意以下几点即可:      

 1)D+/D-平行走线,如果不能确保PCB走线质量,芯片可以放置到角落减少PCB走线;          
 2)D+/D-信号线上建议添加ESD保护器件,或者便宜一些的TVS管;          
 3)外部的USB线尽量选用带屏蔽的USB信号线,确保信号可以正确传输,如果线材较差,没有屏蔽,可以选用LS模式,对线材要求比较低;            
 4)由于采用外部供电,电源上最好加上自恢复保险丝,确保不会因为外部供电造成芯片损坏;     灯部分就有点偷工减料了,没有采用RGB灯,而是用了单色LED,节约成本鸭。而且觉得炫彩的太浮夸不适合打字用。          

usb

usb

这是我设计的电路图:                              

usb

PCB:

软件编写:

做USB键盘,不得不把USB HID协议看懂,就不具体展开讨论了。我这里是基于WCH官网CH549模拟键鼠的例程更改实现的,例程已经封装好USB设备模式配置,设备模式启动,收发端点配置和HIDValueHandle()等函数,所以改起来还是挺方便的。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分