无刷电调的器件和板子都到了。
最终成品:

画的每个元器件一点不差严丝合缝焊上了,果然还是应该发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 (下图左下角),这个倍率是多少呢?

我查了一下数据手册,没有看到明显数值。于是我问AI这个芯片的倍率。
AI说是个天文数值,信号放大需要搭外围电路。于是第一个问题出现了,没有给 SGM8584XS14G/TR 搭外围电路,这个芯片实际上就是个比较器,不具备放大功能。
吃了没学过模电的亏。
以为干扰比较大,所以必须用差分放大器。
下图是一个差分放大器,R1 = R4 、R2 = R3
Out = (V1 - V2) / R1 * R2

于是改电路:

半桥驱动芯片
反馈电流这样了,那没办法,盲转一下吧~
但是我发现电机只会抖动,并不会转。为什么呢?
示波器测量得到三个相输出的波形基本重合。这不可能...
下图中间,是六个半桥的驱动芯片。

抄都能抄错的电路···
HIN1接了LIN3、2接了1、3接了2
突然开始佩服自己···
3.3V电源问题
12V直接LDO转3.3V,我以为不会有什么问题,但各个3.3V芯片的功耗并不低,导致LDO过热。
于是换成 5V 用 DCDC 获得,3.3V从5V上LDO。
预留参考电极
这个板子画的,示波器的参考夹子没有地方夹,只能夹在电源输入处,但电源输入处离逻辑地比较远,噪声很大。
于是给板子加了几个开窗区。























