第2期:APM32微控制器键盘PCB设计实战教程

news2025/6/3 3:45:59

第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系统类似,主要步骤如下:

  1. 选择合适的轴座封装(本例使用带RGB灯的下灯位凯华轴座)
    在这里插入图片描述

  2. 使用阵列副本功能批量创建轴座(5行4列,行距列距均为200)

  3. 连接正极线路(使用阵列副本功能)

    • 注意:WS2812B 6028反贴灯需要接5V电源(而非3.3V VCC)
  4. 连接行列线(也可使用阵列副本)

2.2 添加防反向二极管

  1. 选择合适的二极管(推荐1N4148W SOD323封装)
  2. 使用阵列副本功能批量放置
  3. 注意选择元器件库时,建议使用嘉立创基础库,避免SMT加工时产生额外换料费

提示:使用嘉立创基础库中的元器件可以避免20元/项的换料费,只要封装和功能相同即可替换。

2.3 处理空轴位

根据键盘布局,需要删除以下位置的轴座:

  • 第一行第三列
  • 第三行第三列
  • 第四行第一列

2.4 添加RGB灯光

若需要更均匀的灯光效果,可以调整LED位置或增加LED数量(详细在RGB矩阵教程中介绍)。

2.5 添加引脚标号

为行列线添加相应引脚标号,标记不使用的引脚位置。

三、旋钮编码器添加

3.1 EC11编码器介绍

在这里插入图片描述

EC11是客制化键盘常用的旋钮编码器:

  • 有半轴和梅花轴两种版本
  • 共有7个引脚
  • 旋钮帽推荐使用电吉他旋钮帽(价格合理,外观良好)

3.2 编码器引脚连接

在这里插入图片描述

  1. D引脚和E引脚用作普通按键功能(按下旋钮时触发)
  2. A引脚和B引脚直接连接到主控(用于检测旋转方向)
  3. C引脚和F/G引脚接地(F/G为固定点,可选择接地或打叉不连接)

四、PCB布局设计

画好图后,点击:
在这里插入图片描述

4.1 准备工作(转PCB后)

  1. 设置网格大小为23.438mil
  2. 原理图转PCB
  3. 放置边框
    在这里插入图片描述

4.2 元器件布局技巧

  1. 轴体布局:

    • 使用"查找相似对象"和"布局传递"功能快速摆放轴体
    • 微调位置确保对齐
  2. 二极管布局:

    • 同样可使用布局传递功能
    • 可放置在旋钮底部节省空间
  3. 关键器件放置:

    • Type-C接口(根据空间决定放在正面或侧边)
    • APM32芯片
    • 线性稳压器及外围电路
    • 晶振及相关电容
    • USB识别电阻
  4. 空间利用技巧:

    • 利用卫星轴下方空间放置接口
    • 在小型PCB上合理安排元器件位置,避免布线困难
      在这里插入图片描述
      一些细节图如下:
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

五、总结

通过本次教程,我们学习了:

  1. APM32小系统的特点与使用方法
  2. 键盘矩阵的设计原理
  3. 阵列副本功能的高效应用
  4. 布局传递功能的使用技巧
  5. 旋钮编码器的添加方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2394960.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker-搭建MySQL主从复制与双主双从

Docker -- 搭建MySQL主从复制与双主双从 一、MySQL主从复制1.1 准备工作从 Harbor 私有仓库拉取镜像直接拉取镜像运行容器 1.2 配置主、从服务器1.3 创建主、从服务器1.4 启动主库,创建同步用户1.5 配置启动从库1.6 主从复制测试 二、MySQL双主双从2.1 创建网络2.2 …

canvas 实现全屏倾斜重复水印

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

vue3项目 前端文件下载的两种工具函数

1、Blob 流下载 Blob 表示不可变的原始数据的类文件对象&#xff0c;通常用于处理文件或大块二进制数据。 注意&#xff1a;js中还有一个二进制数据类型ArrayBuffer&#xff0c;它们的区别如下 Blob 可以位于磁盘、高速缓存内存和其他不可用的位置&#xff1b;ArrayBuffer 是存…

5.31 day33

知识点回顾&#xff1a; PyTorch和cuda的安装 查看显卡信息的命令行命令&#xff08;cmd中使用&#xff09; cuda的检查 简单神经网络的流程 数据预处理&#xff08;归一化、转换成张量&#xff09; 模型的定义 继承nn.Module类 定义每一个层 定义前向传播流程 定义损失函数和优…

HTML 计算网页的PPI

HTML 计算网页的PPI vscode上安装live server插件&#xff0c;可以实时看网页预览 有个疑问&#xff1a; 鸿蒙density是按照类别写死的吗&#xff0c;手机520dpi 折叠屏426dpi 平板360dpi <html lang"en" data - overlayscrollbars - initialize><header&…

MMR-Mamba:基于 Mamba 和空间频率信息融合的多模态 MRI 重建|文献速递-深度学习医疗AI最新文献

Title 题目 MMR-Mamba: Multi-modal MRI reconstruction with Mamba and spatial-frequency information fusion MMR-Mamba&#xff1a;基于 Mamba 和空间频率信息融合的多模态 MRI 重建 01 文献速递介绍 磁共振成像&#xff08;MRI&#xff09;因其无创、无辐射特性以及…

2.5/Q2,Charls最新文章解读

文章题目&#xff1a;Trajectories of depressive symptoms and risk of chronic liver disease: evidence from CHARLS DOI&#xff1a;10.1186/s12876-025-03943-7 中文标题&#xff1a;抑郁症状的轨迹和慢性肝病风险&#xff1a;来自 CHARLS 的证据 发表杂志&#xff1a;BM…

Unity QFramework 简介

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

C++ 日志系统实战第五步:日志器的设计

全是通俗易懂的讲解&#xff0c;如果你本节之前的知识都掌握清楚&#xff0c;那就速速来看我的项目笔记吧~ 本文项目代码编写收尾&#xff01; 日志器类 (Logger) 设计&#xff08;建造者模式&#xff09; 日志器主要用于和前端交互。当我们需要使用日志系统打印 log 时&…

性能测试-jmeter实战1

课程&#xff1a;B站大学 记录软件测试-性能测试学习历程、掌握前端性能测试、后端性能测试、服务端性能测试的你才是一个专业的软件测试工程师 性能测试-jmeter实战1 为什么需要性能测试呢&#xff1f;性能测试的作用&#xff1f;性能测试体系性能测试基础性能测试工具性能监控…

杏仁海棠花饼的学习日记第十四天CSS

一&#xff0c;前言 第二天&#xff0c;今天看CSS。 二&#xff0c;CSS简介及导入方式 CSS简介 CSS&#xff08;层叠样式表&#xff0c;Cascading Style Sheets&#xff09;是一种用于描述 HTML 或 XML&#xff08;包括 SVG、XHTML 等&#xff09;文档呈现效果的样式语言。…

ESP8266远程控制:实现网络通信与设备控制

概述&#xff1a; 最近一直在弄esp8266的网络通信&#xff0c;但是一直都还没搞懂到底esp8266可不可以通过连接一个网络过后&#xff0c;在很远的地方使用网络将其关掉 在网上找了两个教程都有程序&#xff0c;都跑通了 第一个 第二个找不到了&#xff0c;但是程序有 CSDN上放文…

【机器学习基础】机器学习入门核心算法:隐马尔可夫模型 (HMM)

机器学习入门核心算法&#xff1a;隐马尔可夫模型 &#xff08;HMM&#xff09; 一、算法逻辑与核心思想二、算法原理与数学推导核心问题与算法推导 三、模型评估四、应用案例1. 语音识别 (Speech Recognition)2. 自然语言处理 (Natural Language Processing - NLP)3. 手写体识…

Leetcode 2819. 购买巧克力后的最小相对损失

1.题目基本信息 1.1.题目描述 现给定一个整数数组 prices&#xff0c;表示巧克力的价格&#xff1b;以及一个二维整数数组 queries&#xff0c;其中 queries[i] [ki, mi]。 Alice 和 Bob 去买巧克力&#xff0c;Alice 提出了一种付款方式&#xff0c;而 Bob 同意了。 对于…

AI炼丹日志-25 - OpenAI 开源的编码助手 Codex 上手指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇&#xff1a; MyBatis 更新完毕目前开始更新 Spring&#xff0c;一起深入浅出&#xff01; 大数据篇 300&#xff1a; Hadoop&…

C# 类和继承(使用基类的引用)

使用基类的引用 派生类的实例由基类的实例和派生类新增的成员组成。派生类的引用指向整个类对象&#xff0c;包括 基类部分。 如果有一个派生类对象的引用&#xff0c;就可以获取该对象基类部分的引用&#xff08;使用类型转换运算符把 该引用转换为基类类型&#xff09;。类…

进程间通信(消息队列)

目录 一 原理 二 API 1. ftok 2. msgget 3. msgctl 4. msgsnd 5. msgrcv 三 demo代码 四 基于责任链模式和消息队列对数据处理 1. 什么是责任链模式 2. 下面基于责任链模式来对消息队列获取的消息进行处理 前置 其实system v 版本的进程间通信&#xff0c;设计的接…

Nginx--手写脚本压缩和切分日志(也适用于docker)

原文网址&#xff1a;Nginx--手写脚本压缩和切分日志&#xff08;也适用于docker&#xff09;_IT利刃出鞘的博客-CSDN博客 简介 本文介绍nginx如何手写脚本压缩和切分日志。 1.创建切分日志的脚本 创建脚本文件&#xff1a;/work/tmp/nginx-log_sh&#xff08;后边要用run-…

OpenCv高阶(十八)——dlib人脸检测与识别

文章目录 一、dlib库是什么&#xff1f;二、opencv库与dlib库的优缺点对比1、opencv优缺点2、dlib库优缺点 三、dlib库的安装1、在线安装2、本地安装 四、dlib库的人脸检测器1. 基于 HOG 的检测器2. 基于 CNN 的检测器 五、dlib人脸检测的简单使用1、导入必要库2、初始化人脸检…

中山大学无人机具身导航新突破!FlightGPT:迈向通用性和可解释性的无人机视觉语言导航

作者&#xff1a;Hengxing Cai 1 , 2 ^{1,2} 1,2, Jinhan Dong 2 , 3 ^{2,3} 2,3, Jingjun Tan 1 ^{1} 1, Jingcheng Deng 4 ^{4} 4, Sihang Li 2 ^{2} 2, Zhifeng Gao 2 ^{2} 2, Haidong Wang 1 ^{1} 1, Zicheng Su 5 ^{5} 5, Agachai Sumalee 6 ^{6} 6, Renxin Zhong 1 ^{1} …