无刷电调的器件和板子都到了。

最终成品:

微信图片_20260618014214_516_17 拷贝.jpg

画的每个元器件一点不差严丝合缝焊上了,果然还是应该发BOM清单给淘宝店铺处理,虽然贵了点,但是买的时候方便,也不会灵机一动不买或者漏买,报销也方便。

傻子的小聪明

美中不足的是把调试的排线选错宽度了,打算2.54mm的,选成了2.0的了,画板子的时候居然没有发现。

于是我买了2.0的排线,但是一时半会儿到不了,怎么烧程序呢?

于是...

2.0改2.54,完美。幸好没用成1.27的,不然难改了。

找固件

询问AI过后,本来决定使用 VESC ,这个固件是为 STM32F405RG 设计的,但是我用的主控是更便宜的 GD32F303CBT6 ,大概需要修改。

交给AI,他这么说:

很遗憾,直接将当前的 VESC 固件(本仓库代码)刷入 GD32F303CBT6 是行不通的。

虽然它们都是 Cortex-M4 内核,但 GD32F303CBT6 的硬件资源和外设架构与 VESC 要求的芯片有巨大差异。以下是具体的原因以及你应该怎么做的建议:

❌ 为什么不能直接刷 VESC 固件?
Flash 和 RAM 容量严重不足:
GD32F303CBT6: 仅有 128KB Flash 和 32KB RAM。
VESC 固件: 编译后的 .bin 固件通常在 350KB - 500KB 以上,运行时需要至少 128KB - 192KB 的 RAM。VESC 内置了 ChibiOS RTOS、LispBM 解释器、QML 核心通信协议等,128KB/32KB 的容量根本装不下。
外设寄存器不兼容(最致命):
VESC 固件是深度基于 STM32F4xx 芯片的外设(高级定时器 TIM1/TIM8、ADC 注入通道、DMA 触发)编写的。
GD32F303 的外设寄存器和架构与 STM32F1xx/F3xx 兼容,与 STM32F4 完全不同。这意味着底层的时钟、DMA、ADC 采样和 PWM 生成全部无法工作。

概况:得大改,我不想改。

那没办法...

于是乎,最后用了 hoverboard-firmware-hack-FOC 这是一个驱动两路无刷电机的固件,当然也可以一路啦。

我只需要把我的硬件状态报清楚,剩下的就是AI的活啦。

设计错误

放大器

AI 问我,信号放大的倍率是多少。

我知道我用的是 SGM8584XS14G/TR (下图左下角),这个倍率是多少呢?

SCH_Schematic1_1-P1_2026-06-12.png

我查了一下数据手册,没有看到明显数值。于是我问AI这个芯片的倍率。

AI说是个天文数值,信号放大需要搭外围电路。于是第一个问题出现了,没有给 SGM8584XS14G/TR 搭外围电路,这个芯片实际上就是个比较器,不具备放大功能。

吃了没学过模电的亏。

以为干扰比较大,所以必须用差分放大器。

下图是一个差分放大器,R1 = R4R2 = R3

Out = (V2 - V1) / R1 * R2

于是改电路:

半桥驱动芯片

反馈电流这样了,那没办法,盲转一下吧~

但是我发现电机只会抖动,并不会转。为什么呢?

示波器测量得到三个相输出的波形基本重合。这不可能...

下图中间,是六个半桥的驱动芯片。

SCH_Schematic1_1-P1_2026-06-12.png

抄都能抄错的电路···

HIN1接了LIN3、2接了1、3接了2

突然开始佩服自己···

3.3V电源问题

12V直接LDO转3.3V,我以为不会有什么问题,但各个3.3V芯片的功耗并不低,导致LDO过热。

于是换成 5V 用 DCDC 获得,3.3V从5V上LDO。

预留参考电极

这个板子画的,示波器的参考夹子没有地方夹,只能夹在电源输入处,但电源输入处离逻辑地比较远,噪声很大。

于是给板子加了几个开窗区。


我能想到的,最大的成功就是无愧于自己的心。