加入交流群  

扫一扫,添加管理员微信
备注:参考设计,即可被拉入群
和也在搞设计小伙伴们碰一碰

收藏 

评论 

念慈菴 发布

my_Megu Pad_v2

 
设计简介
![a5ad796d9abdb22d88982cf0f9d95f6.jpg] ![4db5b7c94cde2772f8cc13f2686a3d4.jpg] ![2b5d04a83093072452b072691576878.jpg] ![4de0420b81942c2e58bf82800e679d9.jpg] 有几个按键没有键帽,见谅 打定位板的话大概率出现50元,请使用亚克力 外形来源于<https://oshwhub.com/hirykun/megupad_v2-0-yuan-li-tu>,因此螺丝可以查考他的,做了修改,最最重要的是原点对齐!强迫症好受多了 贴图基本都是原神图片,不喜欢请替换 # 1.系统说明 采用AIR32F103CBT6芯片,RGB为SPI驱动WS2812,带0.96寸OLED,AT24C128进行存储,热插拔按键,使用二极管实现全键无冲设计,旋钮目前只能调节音量。 <font color="#dd0000">注意1:oled不能直接焊接排针,需要对比上板进行焊接,否则上板不能安装</font> <font color="#dd0000">注意2:oled模块自带上拉电阻,r9,r8可以不焊接,没有oled的话需要焊接</font> # 2.软件说明 ## 2.1QMK固件说明 尝试过QMK固件,我也会在后面把配置方案发出来,qmk可以实现不用外置eeprom存储,可以使用via,但是不建议,有以下问题 1. ws2812无法使用spi或者pwm驱动,应该是air32的问题 2. oled挂载总线为PB8 PB9的i2C,编译qmk固件后下载后会卡死不能运行,不用i2c可以运行,应该也是air32的问题 ## 2.2自制固件 为了解决qmk的弊端,包括我觉得qmk的 1. 自定义程度不高,很多不可见 2. 每次编译耗时超久 3. VIA软件真不好用 等原因 我自己编写了软件,软件整体框架可以查看源码,基本思路和之前键盘一样,不过那个键盘是我的第一个复杂设计,很多问题,包括晶振,usb乱放,瞎几把放电阻和电容等问题,目前主要实现了以下功能 1. 按键输入(一次最多14个按键,实际上理论上可以支持62个键一起,但是太多没啥用) 2. 鼠标功能模拟 3. 离线设置,可以在键盘上切换键盘层、RGB、OLED休眠时间、亮度、鼠标、滚轮移动距离 4. 音量控制 5. UF2固件更新,一次下载后不用下载器 6. 采用RTX5嵌入式OS编程,可扩展性强,air32频率为144Mhz,理论上比32更加快 # 3.使用说明 ## 3.1下载说明 1. 第一次下载请使用下载器下载uf2boot.bin文件,之后按住旋钮按键插入USB即可进行uf2模式,电脑会出现U盘,将uf2格式文件拖入即可完成下载,uf2文件起始地址为0x8004000 2. 灯闪烁即为uf下载模式 ## 3.2使用说明 ### 3.2.1上位机使用 ![Snipaste_2022-10-09_16-53-02.png] 刷新后会出现多个,请尝试连接如图所示的VID和PID设备,连接的上会连接成功,连接不上会提示连接失败,都不行请尝试重新拔插。连接郭一次,会记录,下次可以直接连接。 ![Snipaste_2022-10-09_16-56-46.png] 连接成功后,需要先读取层数,然后读取按键配置,之后点击按键就可以显示当前按键的情况,点击更改配置就可以更改 ![image.png] 建议在输入捕获框中输入按键,会自动增加按键,不过注意删除要在按键值框中删除,实际上是以“+”作为分隔符,因此也可以自己输入,按键名在右边,必须对于,否则会提示错误 ![image.png] 按键确认后不用点击重新读取就可以读取,重新读取只适用点击单个按键读取这个按键 灯光控制一看就会就不多说了 <font color="#dd0000">注意:按键层的切换在下位机,如果上位机没读取,切换层是不显示的,你在上位机1层改按键,下位机如果是2层的话,修改按键也是2层的</font> ### 3.2.2下位机说明 下位机按键布局同上位机一样,这里就说按键多少对应位置和上位机相同 #### 3.2.2.1层切换 下位机一共5层,分别是按键123层,RGB和OLED设置层,鼠标层 通过按住旋钮按键,然后点击4或者6进行前后切换,切换后松开 #### 3.2.2.2 RGB和OLED设置 松开旋钮 1. 8和9控制R大小 2. 9和12控制G大小 3. 10和11控制B大小 4. 7和14控制RGB模式(其中模式8还没有) 5. 4和5控制oled亮度 6. 1和2控制OLED休眠时间 #### 3.2.2.3 鼠标设置 松开按键 1. 5 12 8 10分别为鼠标上下左右 2. 4和6位鼠标左右键 3. 9为中间 4. 7和14位滚轮 5. 11和13为鼠标移动距离秀海 6. 1和2位为滚轮距离修改 # 4.二次开发说明 <font color="#dd0000">注意:二次开发需要经验,由于程序xjb乱写的,且相比stm32有很多不同,理论上是可以通用,但是有写地方需要重新修改</font> ## 4.1替换其他32说明 1. 整体采用stm32cubemx生成,但是进行了诸多魔改,直接用ioc生成会替换很多修改过的文件,请合理备份USB库和main.c文件 2. mian.c中 ``` USB_Port_Set(0); HAL_Delay(100); USB_Port_Set(1); ``` 这个为air32专用实现usb重新枚举 3. SystemClock_Config();实现了完全修改,使系统频率为144mhz 4. 虽然用的mdk编程,但是用的vscode的eide,不能直接使用mdk,要用的话需要添加相关文件,用vscode安装eide后应该可以直接导入 ## 4.2 其他说明 1. 上位机采用vs2022 c# .net4.6编写,调用了hidsharp库 2. 查看代码建议从rtx5.c入手,因为采用rtos,这里面是创建的线程,文件尽量采用一个功能一个文件 ![image.png] 3. eide中以下设置需要注意,安装目录不同,需要添加引用 ![image.png] 4. 起始地址如下 ![image.png] main.c开头需要添加中断向量表重映射到0x8004000 5. 转换uf2格式需要配合脚本并添加生成后任务 ![image.png] 6. uf2.bin固件编译环境为ubuntu 16.04 # 目前还未完成的工作 1. 上位机捡漏 2. oled没有动画 3. typec缺少cc两个5.1k电阻,c to c线可能有问题
参考设计图片
×

!注意:请使用浏览器自带下载,迅雷等下载软件可能无法下载到有效资源。

 
群聊设计,与管理员及时沟通

欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeworld”及时沟通。

 
查找数据手册?

EEWorld Datasheet 技术支持

论坛推荐 更多
更新时间2024-11-12 21:52:47

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

EEWORLD参考设计中心

站点相关: TI培训 德州仪器(TI)官方视频课程培训

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved