DIY一把属于自己的机械键盘(三)

news/2024/11/13 4:25:09/

硬件篇


  上篇讲完键盘配列,这篇更新下我的硬件电路。首先,明确一下需要的功能:(需求明确是一个项目最重要的开端,可以说是项目的指导纲领,在需求合理的情况下一切按需求办事,不仅能避开不必要的问题和责任,还能使项目生命周期健康推进,这也是大公司和小公司的区别之一。)

  1. 设备采用USB接口;
  2. 支持背光显示, 亮度可调;
  3. 适当增加背光动画,不必太花哨;
  4. 按键响应速度快;
  5. 支持全键无冲;

一、硬件方案

1. USB接口

  USB接口有两种方案:一是采用外围USB驱动芯片,如CH9329串口转USB,傻瓜式配置即可实现USB键盘功能,这种方案虽然减少了软件开销和难度,但是增加了硬件成本,且降低通信速率;二是使用带有USB接口的单片机,通过软件实现USB键盘功能,减少了硬件成本但增加了软件负担。
  本着软件能解决的问题就不使用硬件的原则,选择使用带有USB接口的单片机,这里用的是最熟悉的STM32F103。
  这是STM32F103C8T6最小系统原理图:
在这里插入图片描述

2. 背光显示

  为了实现LED背光和亮度调整,单纯使用IO是无法驱动的,必然要使用外围器件增加驱动能力,那么就有两种方案:一是使用晶体管元件,二是使用集成驱动芯片。相比之下,使用集成驱动IC,不管在成本上,还是软、硬件开销都优于分立元件搭的驱动电路。经过选型,选用了TM1629A这颗芯片,芯片大致参数如下:
在这里插入图片描述
在这里插入图片描述
  这颗芯片的驱动电流已经完全够用,因此不需要外部元件增加驱动能力,况且太亮的话反而影响使用体验。原理图如下:
在这里插入图片描述

3. 按键扫描

  为了增加按键响应速度,按键扫描电路应尽可能便于扫描,再普通矩阵键盘的基础上每一行增加一个上拉电阻,这样只要扫描一次就能得出键值,而不需要行列转换扫描,原理图如下:
在这里插入图片描述

4.全键无冲

  全键无冲属于软件问题,这里大概讲一下USB硬件接口。Micro USB的引脚定义如下:

PIN名称描述
1VBUS电源正5 V
2D-数据线负
3D+数据线正
4IDOTG模式下检测ID脚状态高低,从而判断为主设备或从设备
5GND信号地线

  这里不需要OTG功能,因此ID脚悬空处理。
  由于USB2.0是向下兼容USB1.X的,即USB2.0支持高速、全速、低速的USB设备(HIGH-SPEED,FULL-SPEED,LOW-SPEED),而USB1.X不支持高速设备。因此如果高速设备接在USB1.X的hub上,也只能工作在全速状态。因此对速度的识别是很重要的,否则没办法以想要的速度通信。全速设备和低速设备的识别取决于设备端的一个上拉电阻,如果D-上拉1.5K电阻则是低速设备,D+上拉1.5K电阻则是全速设备。高速是基于全速设备基础上,通过握手信号进一步识别,这里就不详细说明。USB接口原理图如下:
在这里插入图片描述


  至此,硬件原理基本设计完了,下一篇讲一下程序设计。

DIY一把属于自己的机械键盘(四)


http://www.ppmy.cn/news/206327.html

相关文章

【MySQL】一文带你了解表的增删改查 CRUD

文章目录 1. 增加(Create)1.1 单行插入 全列插入1.2 多行插入 指定列插入 2. 查询(Retrieve)2.1 全列查询2.2 指定列查询2.3 查询字段为表达式2.4 别名2.5 去重2.6 排序 3. 条件查询(Where)3.1比较运算符…

Phoxi相机

记录自己一个傻逼的事情(关于phoxi相机): phoxi control 安装之后,我找不到phoxi API。我直接能够想到的就是官网和github开源网站。没找到这样的API document。然后我就认为只有在售后里面才有。但是事实是有还有两种其他方式找…

python 推荐算法实例,电影推荐,挖局隐含特征推荐,LFM推荐算法

推荐算法实例代码: 1.数据处理过程,主要涉及数据的读取,文件data_process.py import pandas as pd import os import csvdef get_item_info(input_file):"""得到Item的信息input_file: Item的文件地址return:dict&#xff1…

广角相机app哪个比较好用_买不起单反?这个专业级相机 App,让你拍出同款大片...

大家在讨论手机拍摄的时候,更多时候会把讨论的核心放在拍摄效果上。 对于现在的用户而言,手机拍照的方便性很高,限制也很多。辅助拍摄的技术越来越多,手机的相机 app 也越来越简单。 就这一点,iOS 可算是做得非常「极致」了。 这几版的 iOS 自带相机,静态拍摄的部分只剩下…

使用小觅相机标准入门版运行vins

摘自:https://blog.csdn.net/weixin_41074793/article/details/87866964 使用小觅相机标准入门版运行vins 骑士——永不止步 2019-02-21 19:21:20 2632 收藏 10 分类专栏: VINS SLAM VIO 版权 文章目录 运行步骤概括详细步骤 第一步:下载…

背包详解

目录 我的理解 01背包 完全背包 多重背包 前言:之前看背包的时候,还是大一暑假集训那会,那会看背包,就跟看天书一样,现在看来,其实现在看起来简单了许多,也比较容易理解,可能这就…

【C++】 全局变量(Global Variable)存在的一些潜在问题

前言: C是一种非常常用的编程语言,它允许程序员定义和使用全局变量。全局变量在程序中的使用非常广泛,但由于它们的访问权限是全局的,因此它们可能会导致一些潜在的问题。在本文中,我们将讨论C全局变量的检测增强&…

玩转你的数码相机

世界变化太快了!在人类历史上,我们从视觉上表达自己的能力、功能、速度和控制力都比以往有了飞速的进步。你可以拿起一台数码相机,为孩子拍一张照片,在几秒钟内把图像输进电脑中,应用图像编辑软件自如地对图像进行加工…