自制键盘(一)

概述

这个项目的灵感来源是稚晖君的客制化键盘项目,看到瀚文就觉得很震撼,就想自己也做一把试试。正好最近也正好在学嵌入式,顺便巩固一下最近所学的知识、也可以多了解一点技术栈。不过由于技术首先所以先做一把小键盘试试手。

项目整体思路

整个项目大致可以分为三个部分,首先是键盘的核心板,这里承载了键盘的主控等核心电路和一个usb扩展接口;然后是键盘的按键与扫描电路模块;第三个部分是键盘的扩展板,使用spi、iic等接口使得键盘的功能可以得到扩展。这样分模块的好处就是方便后续迭代。在pcb设计并没有完全成熟的时候,分模块可以极大程度上降低试验成本(也可以更好地白嫖嘉立创的打样)

主体部分电路设计

首先是核心板这里。键盘的主控我选择了比较经典的stm32f103cxt6 (别的我要还没怎么用过)。mcu周围的时钟电路和电源电路等要求不是很高,可以直接参考了官方以及一些厂商的原理图(下面这个是我找淘宝客服要的)
image
核心板另一部分就是usb拓展坞,我选择了sl12.a,选择这个是因为资料多,也有官方样例,同时比较好买,可以嘉立创直接下单。核心电路也同样没什么特殊要求,所以也是直接用了官方的样例。不过要注意sl12.a的一个端口要连接核心板上的usb接口,这个在米醋核心电路设计的时候也要留出来;然后就是全速usb设备要在dp线上接一个上拉电阻到3v3,阻值1.5k左右(实测1k电脑也可以识别),这个一定不要忘记,不然电脑不识别usb设备(别问我是怎么知道的。。)还有就是,typec 两条cc线要接5.1k下拉电阻。
image
拓展部分目前还没有想好,大致考虑使用spi与iic接口(pcb均已留出)。大致考虑给屏幕、mpu6050、编码器等。因为稚晖君无刷电机foc实现可调旋钮的方案涉及到电池充放电和升压,考虑到技术不行和我的人生安全,这个暂时不考虑接入。
扫描电路上我没有选择稚晖君用并转串的1*n扫描方案,还是使用了比较传统的行列扫描方案,每个按键和扫描线路之间设置二极管,以解决鬼键问题。(因为是小键盘,按键数量还是比较少,所以行列扫描产生的线路并没有很多)
image

pcb设计

这个板子比较简单,pcb设计难度并不是很大,合理排布一下元件位置和导线即可。usb差分线路最好可以做到等长。(不过这个速率的实测不做等长也没事;我第一版pcb没设计等长,还是可以用的)。
正面(usb拓展坞):image
背面(核心板):image
整体实际尺寸大概比大拇指稍大一点。
(键盘pcb就先不放了,也很简单)

感想

这一版pcb其实还有很多问题,一个主要的问题是usb dp线上的1.5k上拉电阻。然后就是一些小问题,像按键扫描pcb没有做vcc(供电是直接mcu引脚内部上拉电阻供电的,这里用开楼输出所以没问题,但是这导致对后续使用并转串等方案带来不便),还有就是非可控led(如果led可以通过引脚开关可以便于调试)。其他问题暂时想不到了,但是可以优化的空间也还有,不过就等以后了吧。
( ̄~ ̄;)

posted @   流光溢彩_lxy  阅读(63)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
点击右上角即可分享
微信分享提示