
作者:bbsgyd
链接:https://zhuanlan.zhihu.com/p/700406658
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
自己动手解决穿越机飞控软硬件故障
安全提示:请在没人的郊区飞穿越机,测试飞机请卸载螺旋桨!!!
飞穿越机总难免出现失控、炸机,常导致飞控电路性能故障的发生,一些常见故障的排除,是飞手(电子机械师们)必须具备的技能。
穿越机飞控因炸机或者芯片(电路)出现故障,有时会导致某一路电机控制信号无输出,无法控制电调,飞控因此报废。其实,很多STM32F405飞控大多都设计了6个电机控制输出焊盘,可以通过修改中断地址,让某个损坏的电机控制通道信号发送到5或者6号电机焊盘上,实现硬件端口替换,恢复飞控的基本功能。
修改示例:某款STM32F405(F4V3S plus)飞控炸机后1号电机焊盘无信号输出,无法控制1号电调,上电后用地面站软件测试电机旋转,1号电机无法转动。通过设置resource(资源)的IO中断地址配置参数,把1号电机控制信号输出到5号电机焊盘上,实现控制1号电机的目的。
操作步骤如下:
1、检查并确认损坏的端口:通过BF调参软件的电机测试界面,开启RPM功能,判定1路电机焊盘无法输出控制信号,测试界面显示油门错误(E100.00%)。表现为正常加电后,用遥控器解锁电机,飞机无法实现解锁。

如果电调固件无法支持RPM功能,则不能打开双向DSHOT开关,否则四个电机都无法转动。无RPM功能的电调可通过正常测试,确定1号电机无法转动。
2、读取并查看原有的配置:飞控刷的固件是Betaflight / STM32F405 (S405) 4.3.2版本,通过CLI命令行窗口输出DUMP命令,显示所有飞控配置命令行参数,将这些命令行保存为一个文本文件。打开文本文件,查看命令行中关于硬件资源配置部分内容,#resources下的电机MOTOR编号,故障电机控制端口位于1号,备用电机口位于5号,通过修改参数,使用5号备用端口实现1路电机输出信号,恢复飞控的正常功能。

在resources(资源)配置下,看到resource MOTOR 1 B00(1号电机输出中断为B00), resource MOTOR 5 A01(5号电机输出中断为A01)。因为1号电机的物理输出焊盘已经无法输出控制信号,可能是电路板断线、插座脱焊、单片机输出单元功能故障等引起。
F4V3S PLUS这款飞控设置有5、6号电机输出焊盘,通过端口替换法,快速解决飞控输出端口故障。当然,如果是飞控单片机的输出单元问题,可能因飞控芯片内部电路故障导致,要观察飞控是否发热严重,为保证飞行可靠性,有必要的需对飞控硬件进行更换,而不是通过本文的方法临时解决问题。
3、修改并写入新的替换配置:将1号电机的输出口修改为NONE,5号电机原地址设为B00,进入飞控调参软件中的CLI窗口输入:
# resources
resource MOTOR 1 NONE
resource MOTOR 5 B00
save
飞控自动保存重启,完成输出端口中断地址修改替换,飞控可以用5号电机焊盘,正常输出1号电机的控制信号了。
4、端口物理连接修改:将1号电机控制线从排插中拆除或者剪断,把该线头焊接到5号电机焊盘上,如下图所示。

5、电调协议特别说明:修改电机信号的输出端口中断地址,在DSHOT电调信号协议下,只需要修改MOTOR编号后的地址,无需修改PWM输出口的地址。如果你需要使用PWM协议的电调信号,需要修改PWM编号后的地址,将原来1路PWM的地址修改为NONE,5路修改为1路原始地址B08,以下端口中断地址为原始配置:
resource PWM 1 B08改为none
resource PWM 2 B09
resource PWM 3 C06
resource PWM 4 C07
resource PWM 5 C08改为B08
关于PWM电机协议,因测试所用的四合一电调刷了支持RPM双向DSHOT的固件,无法使用DSHOT以外的协议开启电调,PWM输出功能未经过测试,无法确保一定正确,需要用到PWM协议信号的同学可以自行测试该功能,如果你无法得到PWM电调协议信号输出,请降低飞控的固件版本。
在BF4.5.0以后的固件中,已经看不到PWM电调协议的相关配置命令行了,是否已经不在支持PWM电调协议呢?经测试,PWM相关配置命令行已经无法正确地完成配置,说明该固件无法通过配置窗口命令行配置PWM相关参数。
6、最后的测试:通过端口参数修改,完成了1号电机的端口替换,在调参软件中测试电机旋转控制正常,使用遥控器控制飞机起降正常,故障排除。