站内搜索
发作品签到
专业版

STM/APM32 E/F103 RxT6 键盘测试板/主控板

工程标签

94
0
0
0

简介

适用于LQFP-64封装,STM32或APM32 F103/E103 RxT6系列的键盘开发测试板或主控板。

简介:适用于LQFP-64封装,STM32或APM32 F103/E103 RxT6系列的键盘开发测试板或主控板。
复刻成本:20

开源协议

CC BY-NC-SA 4.0

创建时间:2026-01-25 17:33:39更新时间:2026-02-12 00:52:33

描述

针对QMK键盘开发用的,适用于LQFP-64封装,STM32或APM32 F103/E103 RxT6系列的键盘开发测试板或主控板。
本工程附带两块PCB,分为:

开发阶段测试功能用的全功能测试板,引出了全部IO接口,可用于F072(不焊晶振就完事),F103以及E103的LQFP-64封装(R系列)。
F4xx由于缺少电容无法使用,请参考对应的的项目。
此测试板只适合开发前期测试,不适合作为产品,所有IO均已2.54间距引出,USB接口二选一。

产品阶段的全引脚最小主控板,引出了33个IO,可用于F072(不焊晶振就完事),F103以及E103的LQFP-64封装(R系列)。
F4xx由于缺少电容无法使用,请参考对应的的项目。
一般来说由于此项目引脚是以2.0间距引出,USB接口通过一个PH2.0贴座引出,只适合测试完成之后用作实际产品,已进行高强度测试可正常使用。建议本PCB以1.0版层厚度制作。

由于不同的RGB驱动方法,有两块略有不同的小板,这个问题参考下文

-------------------------------------------------------------------------------------------------------------------------------

关于此项目说明内容如下:

1,此项目是兼容F072系列主控,但由于F072主控可以不适用外挂晶振,故主控板不备注F072,但核心板测试是通过的;

2,目前测试确认兼容的型号有:
STM32 F 103R系列

APM32 F 103R系列(已停产)

APM32 E 103R系列
目前确认有问题,无法使用或者有问题的型号有:
GD32F103系列需要更换非原装Bootloader,无法兼容标准固件;、

3,由于E/F103系列是没有Bootloader的,所以需要先通过ST-LINK(已引出对应引脚,使用烧录夹烧录即可)刷入Bootoloader之后再烧录固件,或者直接烧录从初始地址开始的固件。
-------------------------------------------------------------------------------------------------------------------------------
建议新手参考附件的参考固件,再另行改动测试,避免遇到各类奇怪BUG。
-------------------------------------------------------------------------------------------------------------------------------

关于复用供电的说明:

对于某些特殊需求的键盘,把VDD与VDDA混用会导致ADC精度起飞,某些需求的键盘会出现无法正常使用的BUG,所以按照VDD与VDDA分开设计了电路。

如果需要偷懒只使用VDD一路供电,那么不焊接VDDA相关的LDO以及电容,将A3.3V以及3.3V用一个0R电阻连接即可。

AGND以及GND一般也是一个0R电阻连接,特殊情况可考虑更换磁珠,这个另行考虑。

-------------------------------------------------------------------------------------------------------------------------------
关于RGB为什么要分两个不同版本的主控板:
这个问题本质上是因为,能用R系列主控,那么就没必要非还用bitbang驱动RGB了。

C系列主控,要驱动一个全引脚键盘,使用bitbang驱动很多时候是不得已而为之。

Bitbang是完全基于GPIO模拟的,唯一的好处是上手快而且基本上是个引脚就能用,但他是CPU性能杀手,对于实际对刷新率和反应速度有要求的键盘,他损失比较大。

但是C系列主控我反而默认Bitbang也是有原因的......无论是SPI+DMA还是PWM+DMA,都会同时导致其他有引脚也无法使用,所以如果C系列主控做完整键盘那还是bitbang凑合吧。

有RGB需求,全键盘,不能接受刷新率下降再使用R系列主控跑SPI/PWM。

 

所以我另外改了两版板子,分别对用使用SPI+DMA 以及PWM+DMA驱动RGB的情况,当然这两板子你也可以直接走BitBang驱动,Bitbang唯一优点就是他不挑剔。

关于这三种驱动方法的区别参考下图:

PWM驱动的版本,考虑到走线复杂程度,我用的是PB0,这个引脚对应DMA通常映射到DMA1 Channel2。

Config.h针对设置如下;

// PWM + DMA配置
// 以下配置基于PB0(TIM3_CH3)引脚,使用PMW + DMA驱动WS2812
#define WS2812_PWM_DRIVER PWMD3
#define WS2812_PWM_CHANNEL 3                        // B0引脚是TIM 3
#define WS2812_PWM_PAL_MODE 2                       // 引脚模式PWM
#define WS2812_DMA_STREAM STM32_DMA_STREAM(2)       // F103上TIM3的DMA通常映射到DMA1 Channel2
#define WS2812_DMA_CHANNEL 0                        // F103上此项其实不生效,但建议保留

 另外,rules.mk中设置为

WS2812_DRIVER = pwm

除此以外,需要设置如下内容:

halconfig.h

//如果需要用到PWM(PWM + DMA驱动RGB)功能则追加如下定义;
#undef HAL_USE_PWM
#define HAL_USE_PWM TRUE

mcuconfig.h

//如果需要用到TIM3/DMACH2(使用PWM + DMA驱动WS2812)则追加如下定义;
#undef STM32_PWM_USE_TIM3
#define STM32_PWM_USE_TIM3 TRUE
#undef STM32_DMA_USE_CH2
#define STM32_DMA_USE_CH2 TRUE

已测试通过,但暂时没很上强度,如果有BUG请留言。

-------------------------------------------------------------------------------------------------------------------------------

SPI驱动的版本,考虑到走线复杂程度,用SPID1(PA7)一个是会和ADC功能打架,一个是走线会麻烦一点,所以我用SPID2,PB15引脚走线要方便一点。

SPID3 PB5理论也可行,没测试。

所以这个版本的小主控板子,RGB引脚我特意拉了个B15引脚出来跑SPI+DMA驱动RGB,已测试通过。

Config.h针对设置如下;

// SPI + DMA配置
// 以下配置基于PB15(SPI2_MOSI)引脚,使用SPI + DMA驱动WS2812
#define WS2812_SPI_DRIVER SPID2                     // 强制使用 SPI2 外设
#define WS2812_SPI_MOSI_PAL_MODE PAL_MODE_STM32_ALTERNATE_PUSHPULL
#define WS2812_SPI_SCK_PIN B13
#define WS2812_SPI_SCK_PAL_MODE PAL_MODE_STM32_ALTERNATE_PUSHPULL
// 时钟分频:F103 (72MHz) / 16 = 4.5MHz
// 在这个频率下,SPI 发送一个字节(8 bits)对应 WS2812 的 2-3 个位
#define WS2812_SPI_DIVISOR 16
#define WS2812_SPI_USE_CIRCULAR_BUFFER              // 启用循环缓冲区以支持连续动画效果

 另外,rules.mk中设置为

WS2812_DRIVER = spi

除此以外,需要设置如下内容:

halconfig.h

//如果需要用到SPI(OLED或者SPI + DMA驱动RGB)功能则追加如下定义;
#undef HAL_USE_SPI
#define HAL_USE_SPI TRUE

mcuconfig.h

//如果需要用到SPID2(使用SPI + DMA驱动WS2812)则追加如下定义;
#undef STM32_SPI_USE_SPI2
#define STM32_SPI_USE_SPI2 TRUE

-------------------------------------------------------------------------------------------------------------------------------

bitbang直接rules.mk一句

WS2812_DRIVER = bitbang

就完事

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
暂无数据
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航