第2期:APM32微控制器键盘PCB设计实战教程
第2期:APM32微控制器键盘PCB设计实战教程
一、APM32小系统介绍
使用apm32键盘小系统开源工程操作
APM32是一款与STM32兼容的微控制器,可以直接替代STM32进行使用。本教程基于之前开源的APM32小系统,链接将放在录播评论区中供大家参考。
1.1 电路组成
相比标准开发板,我们的小系统有以下简化:
- 只保留一个8MHz晶振电路,去掉了32.768KHz晶振(通常只用于时钟应用)
- 保留USB接口(Type-C)
- 使用线性稳压器将5V转换为3.3V供主控使用
- 预留烧录Bootloader的跳线(CBT6/C8T6一般不自带Bootloader)
1.2 CBT6与C8T6对比
- CBT6比C8T6性能稍好,内存更大
- 价格方面,CBT6约5.6元,C8T6约8元
- 两款芯片可以直接互相替换,没有功能差异
1.3 针脚使用指南
- 总共48个引脚,去除供电、地、数据等引脚后,可用约31个引脚
- 不建议使用的引脚:C13、C14、C15和A0(直接打叉标记)
- 可用引脚:A1至B11,B9、B8、B7至B3,A15,A14,A10至B12
- 必须预留烧录用针脚
二、矩阵原理与绘制
2.1 基础矩阵设计
设计矩阵键盘与之前的32U4系统类似,主要步骤如下:
-
选择合适的轴座封装(本例使用带RGB灯的下灯位凯华轴座)
-
使用阵列副本功能批量创建轴座(5行4列,行距列距均为200)
-
连接正极线路(使用阵列副本功能)
- 注意:WS2812B 6028反贴灯需要接5V电源(而非3.3V VCC)
-
连接行列线(也可使用阵列副本)
2.2 添加防反向二极管
- 选择合适的二极管(推荐1N4148W SOD323封装)
- 使用阵列副本功能批量放置
- 注意选择元器件库时,建议使用嘉立创基础库,避免SMT加工时产生额外换料费
提示:使用嘉立创基础库中的元器件可以避免20元/项的换料费,只要封装和功能相同即可替换。
2.3 处理空轴位
根据键盘布局,需要删除以下位置的轴座:
- 第一行第三列
- 第三行第三列
- 第四行第一列
2.4 添加RGB灯光
若需要更均匀的灯光效果,可以调整LED位置或增加LED数量(详细在RGB矩阵教程中介绍)。
2.5 添加引脚标号
为行列线添加相应引脚标号,标记不使用的引脚位置。
三、旋钮编码器添加
3.1 EC11编码器介绍
EC11是客制化键盘常用的旋钮编码器:
- 有半轴和梅花轴两种版本
- 共有7个引脚
- 旋钮帽推荐使用电吉他旋钮帽(价格合理,外观良好)
3.2 编码器引脚连接
- D引脚和E引脚用作普通按键功能(按下旋钮时触发)
- A引脚和B引脚直接连接到主控(用于检测旋转方向)
- C引脚和F/G引脚接地(F/G为固定点,可选择接地或打叉不连接)
四、PCB布局设计
画好图后,点击:
4.1 准备工作(转PCB后)
- 设置网格大小为23.438mil
- 原理图转PCB
- 放置边框
4.2 元器件布局技巧
-
轴体布局:
- 使用"查找相似对象"和"布局传递"功能快速摆放轴体
- 微调位置确保对齐
-
二极管布局:
- 同样可使用布局传递功能
- 可放置在旋钮底部节省空间
-
关键器件放置:
- Type-C接口(根据空间决定放在正面或侧边)
- APM32芯片
- 线性稳压器及外围电路
- 晶振及相关电容
- USB识别电阻
-
空间利用技巧:
- 利用卫星轴下方空间放置接口
- 在小型PCB上合理安排元器件位置,避免布线困难
一些细节图如下:
五、总结
通过本次教程,我们学习了:
- APM32小系统的特点与使用方法
- 键盘矩阵的设计原理
- 阵列副本功能的高效应用
- 布局传递功能的使用技巧
- 旋钮编码器的添加方法
相关文章:

第2期:APM32微控制器键盘PCB设计实战教程
第2期:APM32微控制器键盘PCB设计实战教程 一、APM32小系统介绍 使用apm32键盘小系统开源工程操作 APM32是一款与STM32兼容的微控制器,可以直接替代STM32进行使用。本教程基于之前开源的APM32小系统,链接将放在录播评论区中供大家参考。 1…...

Docker-搭建MySQL主从复制与双主双从
Docker -- 搭建MySQL主从复制与双主双从 一、MySQL主从复制1.1 准备工作从 Harbor 私有仓库拉取镜像直接拉取镜像运行容器 1.2 配置主、从服务器1.3 创建主、从服务器1.4 启动主库,创建同步用户1.5 配置启动从库1.6 主从复制测试 二、MySQL双主双从2.1 创建网络2.2 …...
LeetCode - 203. 移除链表元素
目录 题目 解题思路 读者可能出现的错误写法 正确的写法 题目 203. 移除链表元素 - 力扣(LeetCode) 解题思路 使用哨兵节点: 创建一个哨兵节点(dummy),将其next指向原链表头节点 哨兵节点的作用是统一处理所有情况&#x…...

canvas 实现全屏倾斜重复水印
参考: html、js、canvas实现水印_html页面使用canvas绘制重复水印-CSDN博客 效果 不求水印显示完全。 实现代码 <template><div class"watermark" ref"waterMark"></div></template><script lang&q…...

vue3项目 前端文件下载的两种工具函数
1、Blob 流下载 Blob 表示不可变的原始数据的类文件对象,通常用于处理文件或大块二进制数据。 注意:js中还有一个二进制数据类型ArrayBuffer,它们的区别如下 Blob 可以位于磁盘、高速缓存内存和其他不可用的位置;ArrayBuffer 是存…...
SpringAI系列 - 升级1.0.0
目录 一、调整pom二、MessageChatMemoryAdvisor调整三、ChatMemory get方法删除lastN参数四、QuestionAnswerAdvisor调整Spring AI发布1.0.0正式版了😅 ,搞起… 一、调整pom <properties><java.version>17</java.version><spring-ai.version>...

5.31 day33
知识点回顾: PyTorch和cuda的安装 查看显卡信息的命令行命令(cmd中使用) cuda的检查 简单神经网络的流程 数据预处理(归一化、转换成张量) 模型的定义 继承nn.Module类 定义每一个层 定义前向传播流程 定义损失函数和优…...
Vue3 + VTable 高性能表格组件完全指南,一个基于 Canvas 的高性能表格组件
Vue3 + VTable 高性能表格组件完全指南 前言 VTable 是一个高性能的多维表格组件,专为处理大数据量场景而设计。它支持数十万条数据的快速渲染,提供了丰富的表格功能和良好的用户体验。本文将详细介绍如何在 Vue3 项目中使用 VTable,并解决常见的配置问题。 什么是 VTabl…...
【七. Java字符串操作与StringBuilder高效拼接技巧】
7. java字符串 7.1 API 介绍:应用程序编程接口。在 Java 中,API 指的是 JDK 提供的各种功能类,这些类把底层实现封装好了,我们不用关心内部怎么写的,直接用就行 用 API 帮助文档步骤:以查Random类为例 打…...
题解:洛谷 P12672 「LAOI-8」近期我们注意到有网站混淆视听
设 LGR 存在数量为 x x x,CSP 存在数量为 y y y。 很明显,我们只需要将其中数量较小的一方改没就行了(一个巴掌拍不响)。 每两个字符串可同意进行一次更改,答案为: ⌈ min ( x , y ) 2 ⌉ \left\lce…...

HTML 计算网页的PPI
HTML 计算网页的PPI vscode上安装live server插件,可以实时看网页预览 有个疑问: 鸿蒙density是按照类别写死的吗,手机520dpi 折叠屏426dpi 平板360dpi <html lang"en" data - overlayscrollbars - initialize><header&…...
WIN11+eclipse搭建java开发环境
环境搭建(WIN11ECLIPSE) 安装JAVA JDK https://www.oracle.com/cn/java/technologies/downloads/#jdk24安装eclipse https://www.eclipse.org/downloads/ 注意:eclipse下载时指定aliyun的软件源,后面安装会快一些。默认是jp汉化e…...
Linux 环境下C、C++、Go语言编译环境搭建秘籍
引言 在当今多元化的编程世界里,C、C 和 Go 语言凭借各自独特的优势,在不同的领域发光发热。C 语言作为一门古老而强大的编程语言,以其高效、贴近硬件的特性,在操作系统、嵌入式系统等底层开发中占据着重要地位;C 作为…...

MMR-Mamba:基于 Mamba 和空间频率信息融合的多模态 MRI 重建|文献速递-深度学习医疗AI最新文献
Title 题目 MMR-Mamba: Multi-modal MRI reconstruction with Mamba and spatial-frequency information fusion MMR-Mamba:基于 Mamba 和空间频率信息融合的多模态 MRI 重建 01 文献速递介绍 磁共振成像(MRI)因其无创、无辐射特性以及…...

2.5/Q2,Charls最新文章解读
文章题目:Trajectories of depressive symptoms and risk of chronic liver disease: evidence from CHARLS DOI:10.1186/s12876-025-03943-7 中文标题:抑郁症状的轨迹和慢性肝病风险:来自 CHARLS 的证据 发表杂志:BM…...

Unity QFramework 简介
目录 什么是MVC模式? QFramework 架构提供了 Model 的概念 QFramework 架构引入 Command 的方式 QFramework 架构引入 Event事件机制 四个层:表现层、系统层、数据层、工具层 委托和回调函数的关系 命令和事件的区别 工具篇 QFramework整体基于M…...

C++ 日志系统实战第五步:日志器的设计
全是通俗易懂的讲解,如果你本节之前的知识都掌握清楚,那就速速来看我的项目笔记吧~ 本文项目代码编写收尾! 日志器类 (Logger) 设计(建造者模式) 日志器主要用于和前端交互。当我们需要使用日志系统打印 log 时&…...
@Docker Compose部署Alertmanager
文章目录 Docker Compose部署Alertmanager1. 准备工作1.1 系统要求1.2 目录结构准备 2. 配置文件准备2.1 创建docker-compose.yml文件2.2 创建Alertmanager配置文件 3. 部署Alertmanager3.1 启动服务3.2 验证服务状态3.3 检查日志 4. 服务验证4.1 访问Web UI 4.2 API健康检查5.…...
前端面试准备-3
1.let、const、var的区别 ①:let和const为块级作用域,var为全局作用域 ②:let和var可以重新赋值定义,而const不可以 ③:var会提升到作用域顶部,但不会初始化;let和const也会提升到作用不顶部…...

性能测试-jmeter实战1
课程:B站大学 记录软件测试-性能测试学习历程、掌握前端性能测试、后端性能测试、服务端性能测试的你才是一个专业的软件测试工程师 性能测试-jmeter实战1 为什么需要性能测试呢?性能测试的作用?性能测试体系性能测试基础性能测试工具性能监控…...
汽车高速通信的EMC挑战
随着“软件定义汽车”的理念全面渗透,中国汽车行业正加速向集中式电子电气架构(E/E架构)转型。SOA(面向服务的架构)理念推动下,整车开始围绕中央计算平台(OIB)与分布式域控制器(VIU)构建,硬件平台具备前所未有的数据处理能力,能掌控整车控制与实时感知决策。 一、…...
[SC]SystemC在CPU/GPU验证中的应用(五)
SystemC在CPU/GPU验证中的应用(五) 摘要:下面分享50个逐步升级SystemC编程能力的示例及建议的学习路线图。您可以一次一批地完成它们——从前五个基础的例子开始,然后转向channels, TLM, bus models, simple CPU/GPU kernels等等。在每个阶段掌握之后,再进行下一组…...
[蓝桥杯C++ 2024 国 B ] 立定跳远(二分)
题目描述 在运动会上,小明从数轴的原点开始向正方向立定跳远。项目设置了 n n n 个检查点 a 1 , a 2 , ⋯ , a n a_1, a_2, \cdots , a_n a1,a2,⋯,an 且 a i ≥ a i − 1 > 0 a_i \ge a_{i−1} > 0 ai≥ai−1>0。小明必须先后跳跃到每个检查…...
现代网络安全攻防技术与发展现状
1. 引言 随着数字化转型进程的加速,全球信息化程度不断深入,网络安全问题日益凸显。根据最新的统计数据,2022年全球范围内的网络攻击事件较前一年增长了约41%,造成的经济损失高达超过6万亿美元。在这个背景下,了解现代…...

杏仁海棠花饼的学习日记第十四天CSS
一,前言 第二天,今天看CSS。 二,CSS简介及导入方式 CSS简介 CSS(层叠样式表,Cascading Style Sheets)是一种用于描述 HTML 或 XML(包括 SVG、XHTML 等)文档呈现效果的样式语言。…...

ESP8266远程控制:实现网络通信与设备控制
概述: 最近一直在弄esp8266的网络通信,但是一直都还没搞懂到底esp8266可不可以通过连接一个网络过后,在很远的地方使用网络将其关掉 在网上找了两个教程都有程序,都跑通了 第一个 第二个找不到了,但是程序有 CSDN上放文…...
RabbitMQ监控:关键技术、技巧与最佳实践
RabbitMQ作为企业级消息中间件的核心组件,其稳定性和性能直接影响分布式系统的可靠性。有效的监控不仅能帮助快速定位问题,还能优化系统资源分配,预防潜在故障。本文基于RabbitMQ官方文档,深入探讨其监控的技术方案、实践技巧及最…...

【机器学习基础】机器学习入门核心算法:隐马尔可夫模型 (HMM)
机器学习入门核心算法:隐马尔可夫模型 (HMM) 一、算法逻辑与核心思想二、算法原理与数学推导核心问题与算法推导 三、模型评估四、应用案例1. 语音识别 (Speech Recognition)2. 自然语言处理 (Natural Language Processing - NLP)3. 手写体识…...
zookeeper 操作总结
zookeeper 中的节点类型 节点类型命令选项说明持久节点无选项(默认)永久存在,除非手动删除。临时节点-e与客户端会话绑定,会话结束自动删除(不能有子节点)。顺序节点-s节点名自动追加递增…...
golang 实现基于redis的并行流量控制(计数锁)
在业务开发中,有时需要对某个操作在整个集群中限制并发度,例如限制大模型对话的并行数。基于redis zset实现计数锁,做个笔记。 关键词:并行流量控制、计数锁 package redisutilimport ("context""fmt""…...