【原创】DIY Thinkpad USB键盘已完成【补充设计方案】
前段时间我发了个DIY Thinkpad USB键盘的帖子,有很多朋友关注,现在我的USB键盘已经完成,只是指点杆不知道为什么,没有收到信号.为了排除是我程序设计上的问题,我还专门找了个PS2的鼠标来测试了下,是可以的,由于没有示波器,还不能检查指点杆的问题,先放着吧.其实我对thinkpad的电脑从来没有什么情怀,我甚至都没买过任何一款Thinkpad的电脑。但是有一段时间,我用了Thinkpad电脑来写程序,发现那个指点杆简直是程序员的福音啊,当时就关注了thinkpad的电脑。经过一段时间的参数对比和参考了论坛的讨论,我发现,我要的不是Thinkpad的电脑,而是Thinkpad键盘,所以毫不犹豫买了个SK8855的键盘,从此不知鼠标为何物:D
我做这个USB的Thinkpad键盘,其实就是想在以后的win平板上用(还没有买平板),win平板很可能要用到键盘鼠标,而TP键盘无疑是最好的选择。现有的只有USB键盘,而蓝牙键盘又是新式的键盘布局和按键设计,我不喜欢,所以才想自己DIY一个老式的7行无线键盘。第一阶段做为试探,所以只做了USB键盘,以后会做成蓝牙4.0键盘。
应版主建议,我写个简单的技术方案。
1.选材
主控制MCU我选的STM32F103RBT6,不为别的,只是我手上现有的并且带USB的芯片。
设计Thinkpad键盘转USB键盘,难点其实不在于硬件和软件的设计,而在于键盘连接器不好买。我在淘宝上买了一个AA01B-S040VA1-R3000的连接器。
看起来和TP键盘的连接器差不多,但是拿到手之后,发现买的连接器短了,TP键盘插不上!最后还是把TP键盘的接口削短了才勉强插上了。
上图是SK8855键盘的连接器
2.硬件设计
大家知道,键盘的原理很简单,就是个开关矩阵,通过扫描行列交叉处是否连通来判断有无按键。所以如果只是做一个USB键盘的话,硬件方面就很简单,
用一个MCU来扫描按键就行了,外围只需要一个键盘连接器和一个5V转3.3V的LDO,再加上USB接口和调试接口就完了。
PCB正面
PCB背面
PCB成品
这一版我做了10块,只用了一块来测试。
板子设计时没有打算用晶振,但是发现无晶振时USB会有不稳定的情况,所以临时飞了个上去.
因为我在程序中没有收到指点杆发出的时钟信号,所以我用了一个PS2鼠标来进行测试,以后有条件时我会检查指点杆的连线,如果真是PS2的,那应该直接就可以用了。
3.软件设计
软件上大概分为3个模块,一是USB模块,完成USB接口的初始化和HID报告处理;二是键盘扫描模块,扫描得到所按的键,并转换为HID Usage ID;三是PS2鼠标处理,据说指点杆是PS2接口的,所以要按照PS2协议取得鼠标报告,然后转换为HID鼠标报告。
这个是设备管理器里的鼠标和键盘,都是USB HID的.
[ Edited byzmingwang on 2014-10-1 16:49 ] 强烈支持楼主量产 前排Mark一下 ^c^ 好家伙,真能折腾 这要加技术分了…… 牛逼的不行啊 高手,支持啦, 做成无线的,然后再弄个竹子的外壳,一个卖500+ 楼主 真是造福人类的啊。^v^
回复 #8 thinkfuture 的帖子
这一版是失败的,下一版我就会做成无线的了,首选是蓝牙4.0的,因为刚好手上有个蓝牙4.0模块. 主控板是哪个键盘的? mark,不多,顶~ 建议把相关技术方案写一下,这样对大家更有参考价值,写出来再给你补加技术分 学习了 高手,膜拜中! 支持量产 果断收藏看看! 支持量产 强烈支持!!! 支持量产回复 #1 zmingwang 的帖子
试一下有没有键位冲突的问题回复 #11 乱发烧先生 的帖子
我是用SK8855的键盘来做的测试,其他的因为手上没有现成的键盘,还不知道兼容性怎么样.回复 #21 gzjzdavid 的帖子
这个我测试过,任何6键无冲,理论上一次性最多可上报14个键:左右shift,左右ctrl,左右win,左右alt,其他任意6键. 电工V5回复 #23 zmingwang 的帖子
^g^ ^g^ ^g^ 可以众筹一下~推出成品我们来订购~~~ 期待下个版本完成红点的支持,必须的。考虑选择最便宜的键盘做测试,建议用x200/x201/t400/t410的键盘。
最后,还是开模把键盘底壳做好吧。
thinkpad的感觉,以后估计只能从键盘找了。 newbility^g^ 顶起!支持!佩服! DIY PCB的那算是很NB的了,至少我不会。只告示渔翁之利:D 指点杆能装TP的驱动吗?