Skip to content

FOC-Single — 快速上手

单通道 FOC 无刷/永磁同步电机驱动器,STM32G473RCT6 + DRV8323。固件是 电机无关 的:换一颗新电机、接好线后,只需一次 learn 自识别(电流零偏、 霍尔映射、R/L、电流环增益)即可运行。

完整硬件规格:规格书 · 源码:github.com/DaliangAuto/foc-single

1. 供电与接线

连接器信号说明
U5(5.08 端子 2P)BAT+ / GND直流 8–54.6 V(6S–13S),出厂按 48 V 标定。无反接保护。
P4(5.08 端子 3P)电机 U / V / W相线建议 ≥ 14 AWG
U15(2.0mm 5P)霍尔 5V / GND / HA / HB / HC有感反馈
USB1(Type-C)USB 转串口 / 一键下载可用 USB 5V 给 逻辑 供电(驱动电机仍需电池)

只插 USB(不接电池)即可给 MCU/逻辑供电,用于烧录和配置;真正驱动电机需要 主电池母线。

2. 烧录固件

两种方式:

  • ST-LINK SWD(推荐) — 把 ST-LINK 接到 H1 排针 (3V3 / SWDIO / SWCLK / GND / NRST):

    STM32_Programmer_CLI -c port=SWD mode=UR -w FOC_single.elf -v --start

    必须加 --start,否则 CPU 会停在 halt,串口无响应。烧完约 900ms 后再打开 CLI 串口。

  • USB 一键下载(WebSerial) — 在浏览器 app.daliangauto.cn/flash 通过 USB-C 直接烧 .bin。板上有双三极管自动 BOOT0/NRST 电路。

    ⚠️ 本板的 WebSerial 自动下载时序/极性仍在验证中;若烧录卡在 0x7F 握手,请改用 SWD。SWD 复位期间不要让其它串口工具占用端口,否则板子可能 进入 DFU。

整片擦除(mass-erase)重新烧录会清掉存在 flash 最后一页的电机标定。 整擦烧录后要重新 learn

3. 与它对话 — USART1 CLI

用 USB-C 串口以 115200 8N1 打开。注意: 打开时把 DTR/RTS 设为 false,否则一键下载电路可能把板子拉进 DFU。

发送 help 查看命令表,ver 查看固件版本。常用命令:

命令作用
learn自识别所接电机(保持轴自由转动),完成自动保存
cl <mA>以指定电流做闭环力矩试转
save把设置/标定持久化到 flash
mon实时遥测流(转速 / 电流 / 母线电压)
side left|right双板整车应用时设置本板身份

4. 新电机首次运行

  1. 接好三相(U/V/W)和霍尔连接器。
  2. 给逻辑供电(低电流 learn 用 USB 即可,或直接上电池)。
  3. 在轴 可自由转动 的情况下 learn → 完成后标定自动保存。
  4. cl 1000 以约 1A 试转,再 iqmax 25000; save 设定你电机的力矩上限。

5. 用 Agent 定制

由于固件已经完整,在线 Agent 是在它之上 扩展,而不是重写 ——例如 "每 50ms 在 CAN 上广播遥测""加一条自定义油门曲线""过温时降额限流"。选择开发板 FOC-Single,描述功能,Agent 会生成一个新的 app_* 模块、编译并给你 .bin。它不会改动电流环或保护逻辑。