前两天玩坏了一个飞控的IO芯片,具体表现为上电后红灯一直闪或常亮,有以下解决办法:
FMU给IO刷写
先断电,按住安全开关,上电不要松手,蜂鸣器会嘟嘟嘟响,灯会闪红色,这个时候FMU就在给IO写入固件
重新烧写BootLoader
可以参考这篇PX4_Bootloader编译,针对pixhawk4做一些补充。
FMU能给IO刷写的前提是,其中的BootLoader部分没有损坏,如果这部分都不幸坏掉了,FMU就无能为力,需要我们先自己修复一下BootLoader部分。
下面这张图就展示了直接从飞控两个芯片上引出的调试管脚,使用了SH1.0mm的6PIN接头,其中IO就是辅助芯片,FMU为主芯片,我们平常烧录固件都是给FMU烧录,一般不会碰IO部分。
这是拆开后的样子,对应的芯片位置
观察上面的调试口,SWDIO和SWCLK都是标准的SW烧录接口,所以结合st-llink就可以烧写固件。
首先从github上面
git clone http://github.com/PX4/Bootloader.git
然后同步子模块
git submodule init
git submodule update
之后make进行编译
然后就会在build目录下生成一系列的所需文件,我们要的就是这个px4io_bl.bin
将其拷贝到Windows下,用stlink和飞控的IO芯片连接好,st-link管脚如图,只用CLK,IO,GND
打开st-link utility, connect
选择烧录即可
然后就可以用第一种方法,烧入程序了