专栏中心

EEPW首页 > 专栏 > 基于RT-Thread和N32G457的迷你键盘

基于RT-Thread和N32G457的迷你键盘

发布人:半导体行业观察 时间:2022-04-16 来源:工程师 发布文章

作品出处:RT-Thread

作者:Blues Jiang

原文链接:https://bbs.21ic.com/icview-3212790-1-1.html


此文为参加RT-Thread与国民技术联手推出N32G457 RT-Thread设计大赛期间作品。
由于疫情影响加上其他各种原因,本应在3月25日结束的比赛在今日终于完成了一个比较完整的作品,无论是否可以参赛,还是希望对大家有所帮助。
先放个图。
应用背景
机械键盘在最近几年发展迅猛,功能也逐渐丰富,在开源环境中也存在几个发展迅猛的开源项目,比如QMK。这些项目对STM32之类的芯片虽然有所支持,但是相关资料也会少很多,所以项目之初我是希望可以将QMK作为一个软件包接入RT-Thread,但是由于对其了解不够深入,最后项目变成了完成键盘为主(主要PCB已经画回来了)。
本次作品,是希望借实现一个小键盘接触QMK之类的开源项目,并将其接入RT-Thread,这样对于机械键盘这个行业而言,主控芯片的选择会丰富很多。
实现功能
本项目主要为一个通过USB HID协议对电脑进行通信的机械键盘(30左右键+3个编码器),添加WS2812的灯珠,添加1.14寸OLED显示屏,均完成基础功能编写测试(存在部分不稳定的bug)。通过RT-Thread为每一个设备建立线程,实现了互相通讯,实现了部分互动特效。
开发板和RT-Thread使用情况概述
本次设计对键盘部分设计了PCB以及顶部定位板的PCB,使用40P的FPC排线将所有所需引脚引出,通过杜邦线连接到主控板,使用的主控板为国民技术提供的N32G457开发板,将所有IO引出,考虑之下,作为前期项目,采取了杜邦线的形式。
在设计PCB的时候,考虑到整体键盘一体性,有做额外设计,将主控部分放置于顶层定位板处,床层PCB通过FPC排线进行连接。当然由于时间与资源关系并没有完成该部分,定位板只做定位板使用,是便于调试的选择。
在软件层面该程序使用RT-Thread 4.1.0为主控系统,部分内容通过对软件包的修改完成。
硬件框架
如图:

实装了OLED,WS2812b,和键盘本体,通过FPC排线接到转接板,通过杜邦线连接到开发板。
对于机械键盘部分,原理图如下。

软件框架说明

针对每一个外设都有做线程,USB接收的信息有CapsLock和NumsLock,这类事件通过Event公告。
keyboard线程是10ms扫描一次,先扫描矩阵键盘,再扫描旋转编码器。
当发现有按键需要发送出去,在线程内先打包好,然后通过消息队列发送出去。
软件模块说明
由于N32G45X的BSP并不支持USB设备,在移植尝试进行了一些时间后,由于本身并未研究过USB设备,在仍然希望最终结果相对完整的前提下,选择了另一种方法。根据国民技术提供的N32G457的库函数,内部包含了部分使用USB向电脑发送数据的例程,本次项目将该部分例程魔改,并未初始化USB的device,但对USB设备分配了一个线程,使用RT-Thread的方法进行桥接,发送所需数据到例程中设备向USB主机发送设备的位置,最终实现了成功枚举HID设备并正常进行打字输入。
现阶段软件在打字部分已经比较完善,ws2812b部分存在bug,会出现颜色偏差。
对SPI部分驱动后续有进行小修复,验证通过,后续会提交PR。
作品完整图片
视频演示
演示内容放在了Bilibili:一个不迷你的迷你机械键盘雏形的演示视频
代码地址
Gitee_Mini-Keyboard-Blues

使用特权



专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词: 国民技术 MCU

相关推荐

飞思卡尔杯-第六届设计应用大奖赛 三等奖获奖论文

售价仅1.7元!STC高性价比车规级MCU重塑汽车电子供应链格局

STC32车规级 MCU中国芯赋能潍柴玉柴,铸就重型柴油机尾气后处理“中国方案”

汽车电子 2026-04-29

边缘 AI 加速的 Arm Cortex‑M0+ MCU 如何为电子产品注入更强智能

英飞凌聚焦人形机器人:传感、电机控制和电源管理成为切入口

单片机模糊控制系统设计与应用实例

内置TinyEngine NPU:TI全新MCU助力边缘AI落地

嵌入式系统 2026-05-12

AEIF 2026 本周举行,软件定义汽车把车规半导体带到更多环节

3D打印“狂飙”背后:兆易创新GD32 MCU多元方案驱动性能升级

飞思卡尔杯-第六届设计应用大奖赛 二等奖获奖论文

NEC MCU 78F0513D开发板使用教程

视频 2009-04-07

如何让电机控制更精准高效

Badge USB OCD 与 78F0513D 使用演示视频

视频 2009-05-20

GD32E230F6V6实用指南:为下一个项目选择合适单片机

氮化镓+MCU赋能高效OBC:大联大诠鼎与英飞凌共探车载电源新趋势

MXT8051 SoC开发系统的设计方法

视频 2009-06-05

电子科技大学--嵌入式系统应用开发技术39

视频 2009-05-07

飞思卡尔杯-第六届设计应用大奖赛 优秀奖获奖论文1

飞思卡尔杯-第六届设计应用大奖赛 一等奖获奖论文

电子科技大学--嵌入式系统应用开发技术38

视频 2009-05-07
更多 培训课堂
更多 焦点
更多 视频

技术专区