☰
一次接对:hoverboard-firmware-hack-FOC 主板引脚定义与接线实操指南
2026/10/23 4:19:37 网站建设 项目流程

一次接对:hoverboard-firmware-hack-FOC 主板引脚定义与接线实操指南

【免费下载链接】hoverboard-firmware-hack-FOCWith Field Oriented Control (FOC)项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC

这篇指南带你从零搭好 hoverboard-firmware-hack-FOC 的硬件:把主板上的电机相电流采样、霍尔、PWM 桥、控制输入和 SWD 烧录口逐一讲清楚,再给出一条按顺序往下走的接线流程和常见症状的排查思路,目标是你第一次通电就能让电机听话。

动手之前:先把清单列齐

开始接线前,桌上最好摆齐这几样东西,缺一样都可能让你白跑一趟:

  • 平衡车主板一块(核心芯片通常是 STM32F103RCT6,也有部分主板用 GD32F103RCT6,这套固件两种都认)
  • 原车两块副板(sideboard)和 4 芯侧板线缆,或者你打算自己接的遥控接收机 / 电位器
  • 10S 锂电池组:标称 36V、满电 42V,配套充电器
  • 万用表(量电压、查通断、找短路)
  • SWD 烧录器(DAPLink / ST-Link 均可)和 USB 转 TTL 串口模块(3.3V 电平)
  • 烙铁、热缩管、扎带,以及一把合适的内六角(拆轮子和电池仓要用)

安全红线先说死三句:接任何线之前先把电池插头拔下来;红线(12/15V)只认设备标注能吃的电压,3.3V 逻辑口碰到 15V 直接烧板;大电流线(电池、电机相线)裸露端一律套热缩管,防止碰到螺丝和车架短路。

这张总览图可以先混个脸熟:主板上挂两块副板、各一个轮电机、电池和充电口,控制信号从侧板线进来。下面按区域把引脚拆开看。

看懂主板引脚:hoverboard-firmware-hack-FOC 引脚映射表

这张官方标注图建议放大看,后面接线和排障基本都靠它对照。

主板上的引脚功能可以在固件里查到原始定义:Inc/defines.h 里集中放了霍尔、PWM、ADC 引脚,Src/setup.c 文件头部的注释则记录了 ADC 通道和电机线颜色的对应关系。按用途分成四组:

电源与状态类引脚

功能引脚说明
电池电压采样PC2接 DC 母线分压后的 BAT 信号,对应 ADC 通道 12
充电检测PA12识别充电器是否插入(板型 0)
电源锁存输入PA5OFF 信号,断电复位相关
电源按键PA1长按触发校准、双击等动作
状态 LEDPB2电池等级、报警闪烁都走这颗灯
蜂鸣器PA4起步提示、低电量报警音

电池方面,默认按 10S 配置(Inc/config.h 里BAT_CELLS 10),低电量告警在 36V 附近,35V 左右快闪提醒,低于约 33.7V 直接断电保护。所以你的电池组落在36V~42V这个区间才算正常工况,明显偏低就先充电。

电机相电流采样引脚

FOC 靠相电流反馈做定向控制,每个电机的 U/V 两相电流各占一个 ADC 通道,另有一路采 DC 母线电流:

信号引脚ADC 通道对应电机线颜色
左电机 U 相电流PA0ADC1 CH01左线绿
左电机 V 相电流PC3ADC1 CH13左线蓝
左电机 DC 电流PC0ADC1 CH10—
右电机 U 相电流PC4ADC2 CH14右线蓝
右电机 V 相电流PC5ADC2 CH15右线黄
右电机 DC 电流PC1ADC2 CH11—

这里最容易搞混:PA0、PC3、PC0 这几个口是采样线,不是驱动电机的强电线。驱动电机的强电走的是下面这组 PWM 桥。

霍尔信号与 PWM 桥驱动引脚

六个桥臂各有一高一低两路 PWM,左电机挂在 TIM8 上,右电机挂在 TIM1 上:

  • 左电机:U 相 PC6 / PA7,V 相 PC7 / PB0,W 相 PC8 / PB1
  • 右电机:U 相 PA8 / PB13,V 相 PA9 / PB14,W 相 PA10 / PB15

霍尔信号是 5V 电平的数字输入:

  • 左电机霍尔:PB5 / PB6 / PB7(U / V / W)
  • 右电机霍尔:PC10 / PC11 / PC12(U / V / W)

每条霍尔线除了 A/B/C 三个信号,还要各接一根 GND 和一根 5V 供电,缺一根传感器就不工作,FOC 起转定位会失败。

控制输入与烧录接口

主板上原本给两块副板留了两根 4 芯线,各引出 GND、12/15V 和一路串口:

  • 左侧线 → USART2(PA2 发、PA3 收),可复用为 UART、12bit ADC(电位器)、PPM,不耐 5V
  • 右侧线 → USART3(PB10 发、PB11 收),可复用为 UART、PWM、PPM、iBUS,5V 容忍

遥控输入按变体走不同引脚:右侧线接 PPM/iBUS 时信号落在PB11,接双通道 PWM 时是 PB10(转向)+ PB11(油门);左侧线接 PWM 时则是 PA2 / PA3。串口调试用 3.3V USB 转 TTL 模块,只接 GND 和 RX 两根线就够了——配置注释里专门警告过,那根红线是 15V,千万别接进串口模块。

烧录口是标准 SWD:PA13 = SWCLK,PA14 = SWDIO,再加 3.3V 和 GND 四根线。

按顺序接线:建议四步走

顺序不是随便定的:先弱电后强电、先静态后动态,出问题时能立刻知道是哪一段的锅。

第一步:电池接好并量电压

电池组插头接上 XT60 主电源口之前,先断电用万用表量一下电池端子:读数应该在 36V~42V 之间,正负极性和插头方向核对一致。

做完应该看到:按下电源键,状态 LED 亮、蜂鸣器响一声提示音,说明主板已上电。如果一点反应没有,回头查电池插头是否真正插到位、保险丝是否烧断。

⚠️ 易错提醒:XT60 插头没插到底会导致接触电阻发热,插好后轻轻拽一下确认锁扣咬合。

第二步:电机相线与霍尔线

轮子拆下来单独放在地上(电机空转状态,安全第一),按上表的引脚把相线和霍尔线一一对接到主板排针上:

对照线颜色接,别凭记忆:左电机绿线对 U 相、蓝线对 V 相,右电机蓝线对 U 相、黄线对 V 相。霍尔的 A/B/C 三线如果接错顺序,电机不会炸,但转向和加减速方向会反,后面用固件里的方向反转宏就能救回来。

做完应该看到:所有强电接头用热缩管包好、扎带固定后,用手晃轮轴没有松动;用万用表蜂鸣档复查相线之间、相线与地之间没有短路。

⚠️ 易错提醒:到这一步如果后面电机嗡嗡响但不转,十有八九是相序没对——先交换 U 和 V 两相再试。

第三步:选一路控制输入

按你的玩法选一种,同一时刻只用一种,变体定义在 Inc/config.h 顶部的 VARIANT 区选,平台里也对应platformio.ini的构建选项:

  • 两个电位器(最省事的验证手段):接左侧线,输入端 0~3.3V,别碰红线。上电长按电源键进自动校准,把两个电位器来回拧到底再松回中间即可。
  • 遥控(PPM / PWM / iBUS):接收机接右侧线,信号落 PB11。以 Flysky i6S 这类遥控器为例,通道分工一般是 CH1 转向、CH2 油门,开关用来切控制类型、模式和弱磁开关:

  • 串口协议:3.3V USB 转 TTL 接右侧线 GND + RX,波特率 115200,仓库里 Arduino/hoverserial/hoverserial.ino 给了一份现成的上位机示例工程可参考。

做完应该看到:开遥控后主板串口调试口(另一侧线接 USB 转 TTL)能滚动打出in1:xxx in2:xxx cmdL:0 cmdR:0 ...一行的数据,且 in 值随手柄动作变化。看不到数据就先查 PB11 有没有信号、接收机是否对频成功。

第四步:SWD 烧录与 MCU 解锁

新拆的主板芯片默认开了 Flash 读保护,第一次接 SWD 时大概率读不到内存。用 ST 官方的 ST-LINK Utility 连接后,如果弹窗提示 "Can not read memory",这是正常现象,不是板子坏了:走 Target 菜单 → Option Bytes,按提示解除读保护并整片擦除,之后 SWD 就能正常访问 Flash。

接线:PA13→SWCLK、PA14→SWDIO、3.3V→3V3、GND→GND,主板先上电再插 SWD。烧录固件这一步在 PlatformIO、Keil 或命令行make下操作都行,仓库提供 platformio.ini、Makefile 和 MDK-ARM/ 工程三种入口。源码仓库地址是git clone https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC,拿到代码后选一个变体直接构建即可。

做完应该看到:烧录工具显示 verify 通过,重启后主板不再跑原厂的自检逻辑,状态 LED 的行为按 FOC 固件的节奏走(电池等级指示灯、报警声)。

上电验证:按这个顺序确认

烧完固件、装回轮子前,空载状态按顺序过一遍:

  1. 量电池电压显示:打开串口调试(Inc/config.h 里的 DEBUG_SERIAL 相关开关),看BatV一栏,它显示的值乘以你万用表实测对比,偏差应在 ±1V 以内。差得远的话,把万用表读数和调试输出值 5 号项写进BAT_CALIB_*参数重新标定。
  2. 单侧电机空转:只使能一个电机(MOTOR_LEFT_ENA/MOTOR_RIGHT_ENA),轻推输入,看电机是否平滑起转。FOC 的好处此刻最能体会:起步没有换相法那种顿挫和嗡嗡噪声,扭矩是平顺爬升的。
  3. 方向核对:两侧电机同向转才算对;哪侧反了,就在配置里启用对应方向的反转宏(INVERT_L_DIRECTION/INVERT_R_DIRECTION),比来回拔线省事。
  4. 断电保护:行驶中断开控制信号(关遥控),应在数秒内触发紧急停机——这是TIMEOUT参数在起作用,属正常行为,别当成故障。

症状对照:出问题先查这几处

症状优先怀疑怎么快速定位
电机嗡嗡响但不转相序不对 / 霍尔没供电交换该电机 U、V 两相;用万用表量霍尔 5V 供电脚是否有电
电机转但方向反、加速反常霍尔 A/B/C 顺序或方向宏固件开方向反转宏,或核对霍尔线序
遥控完全无响应PB11 信号没到 / 变体没选对串口看 in 值是否变化;确认构建时选的 VARIANT 和实际接法一致
上电 LED 不亮、无声电池电压或主电源接触量 XT60 两端电压;检查电池插头锁扣和保险丝
电压读数明显偏差电池电压未标定按上文BAT_CALIB_*流程重新写标定值
SWD 连不上、提示读不了内存芯片读保护未解除按第四步走 Option Bytes 解锁,再全片擦除

排障时养成一个习惯:每次只动一处,改完立刻验证再改下一处,否则最后会分不清是哪个改动引起的问题。

收尾:参数都藏在哪

接线和固件跑通后,剩下可折腾的就是参数了:控制类型(CTRL_TYP_SEL,默认 FOC)、控制模式(电压 / 速度 / 扭矩)、电流与转速上限、弱磁窗口,全部集中在 Inc/config.h;更细的控制器参数在 Src/BLDC_controller_data.c。改完重新构建烧录即可。提醒一句:弱磁(FIELD_WEAK_ENA)能拉高极速,但电机转速会明显飙升,开启前把轮子架离地面、人离远点再测。

按"电池 → 电机 → 控制输入 → SWD"这个顺序走下来,每一步都有明确的通过标准,第一次通电翻车的概率会小很多。

【免费下载链接】hoverboard-firmware-hack-FOCWith Field Oriented Control (FOC)项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询