zmingwang 发表于 2014-9-29 23:18

【原创】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 ]

kart 发表于 2014-9-29 23:23

强烈支持楼主量产

javi-jie 发表于 2014-9-29 23:23

前排Mark一下

ycren 发表于 2014-9-29 23:24

^c^ 好家伙,真能折腾

peacefeeling 发表于 2014-9-29 23:26

这要加技术分了……

yangjingmike 发表于 2014-9-29 23:30

牛逼的不行啊

qwertykwl 发表于 2014-9-29 23:30

高手,支持啦,

thinkfuture 发表于 2014-9-29 23:31

做成无线的,然后再弄个竹子的外壳,一个卖500+

starwutian 发表于 2014-9-29 23:40

楼主 真是造福人类的啊。^v^

zmingwang 发表于 2014-9-29 23:48

回复 #8 thinkfuture 的帖子

这一版是失败的,下一版我就会做成无线的了,首选是蓝牙4.0的,因为刚好手上有个蓝牙4.0模块.

乱发烧先生 发表于 2014-9-30 00:08

主控板是哪个键盘的?

灭日九殇 发表于 2014-9-30 00:46

mark,不多,顶~

raulganseles 发表于 2014-9-30 01:31

建议把相关技术方案写一下,这样对大家更有参考价值,写出来再给你补加技术分

沙漠Yan 发表于 2014-9-30 05:15

学习了

changfeng526 发表于 2014-9-30 07:04

高手,膜拜中!

jh3499 发表于 2014-9-30 07:09

支持量产

绝影 发表于 2014-9-30 08:06

果断收藏看看!

silentjiang 发表于 2014-9-30 08:27

支持量产

tangxiaming 发表于 2014-9-30 08:42

强烈支持!!!

qwer20060606 发表于 2014-9-30 09:40

支持量产

gzjzdavid 发表于 2014-9-30 09:47

回复 #1 zmingwang 的帖子

试一下有没有键位冲突的问题

zmingwang 发表于 2014-9-30 12:10

回复 #11 乱发烧先生 的帖子

我是用SK8855的键盘来做的测试,其他的因为手上没有现成的键盘,还不知道兼容性怎么样.

zmingwang 发表于 2014-9-30 12:12

回复 #21 gzjzdavid 的帖子

这个我测试过,任何6键无冲,理论上一次性最多可上报14个键:左右shift,左右ctrl,左右win,左右alt,其他任意6键.

essencer 发表于 2014-9-30 12:18

电工V5

gzjzdavid 发表于 2014-9-30 12:35

回复 #23 zmingwang 的帖子

^g^ ^g^ ^g^ 可以众筹一下~推出成品我们来订购~~~

alpha 发表于 2014-9-30 12:46

期待下个版本完成红点的支持,必须的。
考虑选择最便宜的键盘做测试,建议用x200/x201/t400/t410的键盘。
最后,还是开模把键盘底壳做好吧。
thinkpad的感觉,以后估计只能从键盘找了。

Ryans 发表于 2014-9-30 12:52

newbility^g^

edcxyz 发表于 2014-9-30 13:12

顶起!支持!佩服!

LiveOnLove 发表于 2014-9-30 16:03

DIY PCB的那算是很NB的了,至少我不会。只告示渔翁之利:D

coolsear 发表于 2014-9-30 17:53

指点杆能装TP的驱动吗?
页: [1] 2 3 4 5
查看完整版本: 【原创】DIY Thinkpad USB键盘已完成【补充设计方案】