最丐61+3键机械键盘(附原理讲解)

3个月前

简介:采用价格低廉的沁恒CH551(CH55X家族中的丐中丐)没ADC,内存0.75+10,我就挑战不加io扩展,作出最低成本的61键机械键盘

开源协议: GPL 3.0

描述

设计要求:

虽然是挑战最低成本,最简电路,但下限还是有的:

1.全键无冲

2.带灯(我可以不焊,但你不能没有)

3.而且是双色led灯

4.带HUB,方便插无线鼠标(距离近,信号更强更稳定),U盘,不过因EDA对等长优化不够好,已砍

(听说等长布线有改进了,欢迎你们去修改PCB增加这个实用的功能)

设计思路:

百度“最少的io扫描最多的按键”你能看到的有(这里只列举几张代表性的)

传统矩阵: u=1470209489,3692830599fm=173app=49f=JPEG.jpg 二极管编码: u=1405912506,2491446644fm=173app=49f=JPEG.jpg 变种的行列键盘: u=3603759020,178093515fm=173app=49f=JPEG.jpg 当然,上面都是有键冲的,市面上常用的是基于第一种改造的无冲突键盘。而我要另辟蹊径,用第三种改造。 捕获.PNG 这是原理图的部分截图(忽略掉led引脚,只看按键),这里是由K1、K2、K3三个io驱动扫描六个按键,细心的观众可能看出来了,这和上面第三个方案是类似的。都是IO两两配对,正反各一个按键。这里不作运行流程讲解。

技术难点:

假设按下S1、S9,但K1置低电平时,K2、K3的电平是???

为了解答这个问题,我们翻开技术文档:

这是4148的伏安特性图: 捕获1.PNG 这是CH551的触发电平电压:

电源为5V: 捕获2.PNG 电源为3.3V: 捕获3.PNG 再假设流过4148的电流为1mA,那么压降为0.5V。

在这种情况下,若单片机5V供电,则K2、K3都为低。 这就有违全键无冲的初衷。

但在3.3V供电下,2*0.5V>0.8V,则K2为低、K3为高。成了。

实测551在0.9V下还不算低电平,故还需要上拉电阻给二极管提供偏置电流,增加压降,不然和5V供电下雷同

但我还不满足于此,还想加多按键,细看技术文档,发现RST脚能当输入脚使用,但技术文档没标出它的触发电平,保险起见,外接一个PNP管做反相器。 这样一来,仅一个CH551,16条腿,除去3条电源,2条usb,剩下10个IO加一个RST脚,在不考虑灯的情况下,就能做到100键无冲突。你说厉不厉害。 但3D打印机大小有限,而且要驱动LED。正巧自带两路PWM,用去驱动双色LED。剩下的还能做64键无冲。61键排列,还富裕3个按键,做成侧键。 各方面榨干这单片机。于是便有了这项目。

制作过程:

PCB正反面: IMG_20200328_130046.jpg 先焊接typeC口: IMG_20200328_132522.jpg 输入滤波: IMG_20200328_133410.jpg 电源稳压块: IMG_20200328_134236.jpg 单片机: IMG_20200328_134645.jpg 排阻和三极管(智能bom表有问题,导致忘了下单贴片8550,直插顶上) IMG_20200328_185249.jpg 开始焊4148: IMG_20200328_213207.jpg 先焊一边固定: IMG_20200328_213611.jpg 全部焊好: IMG_20200328_215628.jpg 特写:后面发现有一只4148一侧没上锡,刚好在图片上 IMG_20200328_215635.jpg 侧边按键: IMG_20200328_220143.jpg 开始焊轴25% IMG_20200328_230713.jpg 50% IMG_20200328_231133.jpg 75% IMG_20200328_231643.jpg 100% IMG_20200328_232450.jpg 焊点特写:(没上锡的4148又上镜了) IMG_20200328_232458.jpg 上平衡杆: IMG_20200328_233345.jpg 加键帽: IMG_20200328_234815.jpg 金主logo特写: IMG_20200328_234944.jpg

VID_20200410_194329 \[640i\].gif

程序更新日志:

Ver0.1:

  1. 无灯,
  2. 完善部分FN组合键,
  3. 软件消抖,
  4. 多按键按下时,序号低的优先输出
  5. 侧键功能:
  6. 未按下FN:截图、PGUP、PGDN
  7. 按下FN:INS、HOME、END

Ver0.2:

  1. 加入灯光驱动(不可按键调节)
  2. 将io全部配置成开漏输出,运行功耗将降低(一点点)

IMG_20200626_204146.jpg

已知硬件BUG:

  1. 上面图片的稳压块封装反了,所以倒着焊接(现PCB里以修复)
  2. S40的LED左右两通道是反的,注意一下
  3. 灯光控制脚不拉低也会微亮,是我忽略了单片机io的钳位二极管。不过影响不大,也就灯不能完全灭掉。

其他版本:

通过减少一路pwm输出,达到九九八十一个按键,caps lock键下的灯还能作为大小写指示,并于其他LED保持相同亮度 IMG_20200627_175011.jpg

原理说明图片引用链接:https://baijiahao.baidu.com/s?id=1621173179116478690&wfr=spider&for=pc

文档

键盘低配版

在编辑器中打开

单片机最小系统

在编辑器中打开

行列键盘及LED均流

在编辑器中打开

BOM

ID Name Designator Footprint Quantity BOM_Manufacturer Part BOM_Manufacturer BOM_Supplier BOM_Supplier Part
1 CH551G U1 SOP-16_L10.0-W3.9-P1.27-LS6.0-BL 1 CH551G WCH LCSC C108958

展开

工程成员

登录注册之后才可以进行评论操作
工程所有者当前已关闭评论
征集令发布者当前已关闭评论
全部评论 8

Tesla123

想研究下键盘代码,这个开源吗?1091331953@qq.com

2020-06-13 08:55:32
回复

yANgZEN

@wmhxxxx  量下轴,貌似5mm减去钢板厚度

2020-04-30 07:28:30
回复

wmhxxxx

大佬,定位板的铜柱是多高的呀?

2020-04-29 22:26:58
回复

yANgZEN

@666lhb
谦虚点,原理讲的也没多细致,都是网上拿现成的。
只是把设计时的推理过程写出来而已。

2020-04-16 19:39:48
回复

yANgZEN

@ds444  开学刚隔离完出检验结果,要在学校里封闭到疫情结束。
PCB板在家,可能要疫情过了周六日回家才有空。
单PCB 20元不包邮不算贵吧,比成本多出的几元当作请我一瓶矿泉水也不过分。
我觉得可以拿我的项目去打板,有多的可以成本价挂咸鱼出,但如果出售的比成本价高个十来元那我就不乐意了。

2020-04-16 19:36:37
回复
认证图标

666lhb

讲解很到位,制作很精细。

2020-04-16 11:50:05
回复

yANgZEN

@Peace.Bomb  就因为太丐了,报销都不给力😭

2020-04-09 17:26:05
回复

Peace.Bomb

真的是丐中丐.服了!!!

2020-04-09 08:28:10
回复

服务时间

周一至周五 9:00~18:00
  • 0755 - 2382 4495
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 立创EDA微信号

    easyeda

  • QQ交流群

    664186054

  • 立创EDA公众号

    lceda-cn