
STM/APM32F405RGT6 键盘测试板/主控板
简介
适用于LQFP-64封装,STM/APM32 F405 RGT6或APM32F407RGT6系列的QMK键盘开发测试板或主控板。
简介:适用于LQFP-64封装,STM/APM32 F405 RGT6或APM32F407RGT6系列的QMK键盘开发测试板或主控板。开源协议
:CC BY-NC-SA 4.0
描述
针对QMK键盘开发用的,适用于LQFP-64封装,STM/APM32 F405 RGT6或APM32F407RGT6系列的QMK键盘开发测试板或主控板。
本工程附带两块PCB,分为:
开发阶段测试功能用的全功能测试板,引出了全部IO接口,可用于F405RGT6/APM32F407RGT6(STM没有这个对应封装)
此测试板只适合开发前期测试,不适合作为产品,所有IO均已2.54间距引出,USB接口二选一。
产品阶段的最小主控板,引出了大部分能使用的全部IO,可用于F405RGT6/APM32F407RGT6(STM没有这个对应封装)
一般来说由于此项目引脚是以2.0间距引出,USB接口通过一个PH2.0贴座引出,只适合测试完成之后用作实际产品,已进行高强度测试可正常使用。建议本PCB以1.0版层厚度制作。
-------------------------------------------------------------------------------------------------------------------------------
关于此项目说明内容如下:
0,F405默认适配12Mhz晶振!!!!!!与F401/411不一致!!!!!!
1,目前测试确认兼容的型号有:
STM32 F405 RGT6
APM32 F405/407RGT6
2,考虑到F4xx系列不太可能需要通过串口救砖,并且IO数量足够,所以A13/A14不作为IO引出,这样方便通过STM32CubeProgrammer救砖。
另外APM32以及STM32的固件实际上是通用的,区别在于在Keyboard.json中有这么一个配置:
如果使用QMK ToolBox烧录固件,ToolBox会根据这个设置去找对应设备的Bootloader。
比如固件设置为stm32-dfu,使用APM32F405主控的时候,通过QMK Toolbox是无法烧录固件的,它会提示类似如下的内容:
Attempting to flash, please don't remove device
> dfu-util.exe -a 0 -d 314B:0106 -s 0x08000000:leave -D "E:\QMK_Keyboard\f405r_110_stmspi_default.bin"
> dfu-util 0.11
>
> Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
> Copyright 2010-2021 Tormod Volden and Stefan Schmidt
> This program is Free Software and has ABSOLUTELY NO WARRANTY
> Error: File ID 0483:df11 does not match device (314b:0106 or 314b:0106)
> Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
>
> Opening DFU capable USB device...
> Device ID 314b:0106
> Device DFU version 011a
> Claiming USB DFU Interface...
> Setting Alternate Interface #0 ...
> Determining device status...
> DFU state(2) = dfuIDLE, status(0) = No error condition is present
> DFU mode device DFU version 011a
> Device returned transfer size 2048
Flash complete
QMK ToolBox是会严格检查F4xx系列自带DFU的VID PID,如果不对是无法烧录固件的(哪怕真的通用)
但STM32CubeProgrammer,或者DAP-LINK这类离线烧录器,是不受到这个限制的,
甚至假如有某种和STM/APM32F405 Pin-to-Pin替换的芯片,也可以如此直接烧录,但QMK Toolbox是无法使用的。
3,说明下部分引脚的情况:
A9是VBUS引脚,这个引脚根据惯例通过两个100K电阻分别连接到5V或者GND,使得他能维持一个2.5V的电平。
这两个电阻不可省略,这个引脚也不可复用为矩阵,因为这个引脚直接关系到设备是否被正常检测到系统连接。
A10是OTG_FS_ID引脚,虽然大部分时候这个引脚还好,但建议通过一个22K电阻连接到到3.3V,否则某些情况下键盘会无法正常确认他是主设备还是从设备。
B12,B13,B14,B15由于需要让B15作为SPI驱动WS2812,其余三个引脚全部不能作为矩阵IO使用。
B6/B7引脚有板载的外置EEPROM或FRAM,同样也可以外接I2C OLD,但有这么几个问题:
首先QMK对于ARM的I2C,只能使用I2C1(B6/B7)。
部分市场上的OLED I2C模块 是自带了那两个4.7K上拉电阻的,假设使用这类模块,EEPROM附近的那两个4.7K电阻便不需焊接。
除非你1,使用EEPROM/FRAM 2,不使用外挂OLED或者外挂OLED是自己设计的模块没有准备上拉电阻
否则千万别焊多上拉电阻会导致I2C总线初始化失败!
关于EEPROM/FRAM的设置如下:
rules.mk
config.h
前两个选项根据选择芯片二选一,另外WP引脚建议确定保留而不是默认的接地。
在某些很极端的情况下,WP引脚接地会导致初始化出错,从而默认配置出现故障,我就遇到过默认CapsLock和LCtrl相反的BUG...我都懵了
临时解决方式为清空EEPROM。长期解决方式为WP接引脚。
-------------------------------------------------------------------------------------------------------------------------------
建议新手参考附件的参考固件,再另行改动测试,避免遇到各类奇怪BUG。
-------------------------------------------------------------------------------------------------------------------------------
关于复用供电的说明:
对于某些特殊需求的键盘,把VDD与VDDA混用会导致ADC精度起飞,某些需求的键盘会出现无法正常使用的BUG,所以按照VDD与VDDA分开设计了电路。
如果需要偷懒只使用VDD一路供电,那么不焊接VDDA相关的LDO以及电容,将A3.3V以及3.3V用一个0R电阻连接即可。
AGND以及GND一般也是一个0R电阻连接,特殊情况可考虑更换磁珠,这个另行考虑。
-------------------------------------------------------------------------------------------------------------------------------
为什么要F405?
根据我的测试,目前对于我个人使用的6x21矩阵+200RGB+OLED键盘。E103RET6的平均矩阵刷新率约为2368(PWM RGB)或2563(SPI RGB)hz。
F405RGT6能接近3900hz。
我的终极目标是完善并且复刻某位前辈的F407+USB3300,QMK 80000hz有线键盘计划。
这只是个开始。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程工程成员
知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论