7.1. 概述
BBP 控制板在硬件焊接安装完成之后, 就可以通过烧写器将控制程序烧写到控制板的 MCU 上, 此步骤与通常的stm32单片机程序烧写完全一致。
烧写完成在程序能够正常运行后, 还需要执行至少一次机载参数初始化工作. 在后续调试及开发过程中, 如果参数系统内容未发生改变, 那么只需下载程序运行即可, 无需重新进行参数系统初始化.
7.2. BBP飞控板首次运行步骤说明
7.2.1. 连接烧写器ST Link
将烧写器ST Link或JLink正确连接到BBP飞控板的SWD接口上。
7.2.2. 使用USB-TTL连接BBP及开发电脑
使用2个USB-TTL模块分别连接BBP飞控板的USART1(遥测串口)及USART6(调试串口),两个USB-TTL模块中只需要有一个模块为BBP飞控板供电即可。注意USB-TTL模块与BBP串口连接时,两者的tx、rx引脚需要交错连接。ST Link及USB-TTL与BBP接线图如下:
7.2.3. 初次加电
确认上述硬件连接正确后,将2个USB-TTL模块插入电脑USB接口,为BBP飞控板加电开始工作。留心观察飞控板上各器件有无发热,气味异常等情况发生。
7.2.4. 烧写PH47程序固件
电脑端通过Keil IDE将编译链接完成的PH47代码框架2进制固件烧写进BBP飞控板。在烧写完成并运行程序后若一切正常,则F411核心板上的状态指示蓝色led将以1hz频率开始闪烁。
7.2.5. 接收观察BBP串口输出数据
在上一步正常工作的基础上,在电脑端使用串口调试工具,以115200波特率分别打开之前接入的两个USB-TTL模块,之后在USART6(调试串口)即可看到飞控板启动过程信息,同时以1hz频率输出的“.”符号;
BBDB 启动时调试串口输出运行信息(不同条件下输出信息略有差别,如GPS锁定与否)
同时,USART1(遥测串口)以16进制形式快速输出飞控板对控制站的下行遥测-数据。如果以ASCII码形式形式显示,则是乱码形式:
如果切换到HEX形式显示,那么每次收到的第一个字节应当是0xFE,这是mavlink数据帧的帧头标志,一般只要符合上述情况,那么基本就可以判断飞控板下行发送的遥测数据基本正常。
此步骤非常重要,如果上述状态均正常的的话,说明BBP飞控板已基本处于正常工作状态。反之若该步骤显示状态异常,则应该立即开始检查故障。
7.2.6. 机载参数初始化
在启动之后,因为是控制板首次运行,在控制板EEPROM存储器中数据还是一片空白,没有对参数系统进行初始化,故调试串口中会以1Hz频率输出 “Para error to firmware 0” 信息,提示用户当前存储器中没有参数数据,或者参数数据与当前固件版本不符。
在这种情况下,就需要通过串口调试工具,向飞控板USART6(调试串口)写入飞控软件调参参数初始化命令"initfstrun;"(命令以分号结束,末尾不要加回车换行),若飞控板正确响应,则在串口调试软件中即可看到参数系统首次初始化过程的信息显示。
参数系统只需要初始化一次即可。后续相同固件重复烧写均不需要再次进行初始化。除非用户参数系统进行了修改,或者向控制板烧写不同类型的固件才需要重新进行初始化。
7.2.7. 格式化Flash存储器
Flash存储器用于存储飞行记录数据。在全新控制板初次运行时,同样需要向调试串口写入Flash存储器格式化命令:“erasechip;”,大约45s后格式化工作完成并显示相关信息(BBP v2 45s,BPP FEI耗时较短)。至此,飞控板首次初始化工作即全部完成,对飞控板重新加电重启即可进入正常运行状态。
7.2.8. 使用CSS的CssDem_BBDB工程接收BBP数据
若飞控板工作正常,那么接下来就可以使用CSS打开飞控板遥测串口,接收并显示飞控板数据,关于CSS介绍,可参见“CSS基本使用介绍”。具体步骤如下:
-
- 电脑端运行CSS。
-
- 确认当前控制站项目为CssDemo_BBDB。
-
- 确认CSS用于打开遥测串口的波特率已设置为115200,以及当前连接BBP飞控板USB-TTL模块的串口号。
-
- 点击飞控综显标签下的“GCS启动”按钮,启动CSS开始接收BBP下行发送数据。
若一切正常,则此时数据帧收发区域的运行时间、接收速率显示及帧计数开始变化。且调试串口软件中显示参数启动下载更新的过程(CSS启动运行后会自动向控制板发出请求批量下载参数的指令)。下载过程若显示下行帧速率大约为5k/s左右,且显示界面大部分数据显示均为停止状态,此情况即为飞控板进入了通讯故障处理状态(Telefailure),并将下行速率自动设置为最低。只需要点击“MsgRst”按钮即可将通讯状态恢复为正常速率。
首次烧写后姿态显示仪表显示姿态为上下颠倒状态,这是因为在在参数设置中还未对不同飞控板imu坐标轴进行统一,后期可根据不同的飞控板型号进行设置即可。
7.3. BBP 首次运行故障检查
如果BBP在制作完成后首次加电后运行出现异常,则一般按照下述流程进行排查:
7.3.1. BBP核心板上状态指示灯不会闪烁
排查PH47框架固件烧录是否正常,在烧录后是否通过Keil开始了程序运行。此问题多出现于对Keil编译烧录不甚熟悉的初学者。
如果排除了烧录问题的可能,那么可以通过万用表测量F411核心板电源引脚供电电压是否正常判断MCU是否运行。
也可通过Keil的中断程序运行进入单步调试方式检查是由于某个传感器模块硬件故障导致程序初始化失败卡死。
7.3.2. 调试串口无输出
只要状态led以1hz频率开始闪烁,就说明PH47运行基本正常,此情况下调试串口若无数据输出或输出为乱码:
检查打开串口的波特率是否为115200。
检查串口调试软件打开的串口是否为BBP调试串口USART6。
检查USB-TTL模块与BBP插座之间的连接是否正常;是否存在Tx、Rx接反的情况,此情况较为常见。
尝试在电脑端重新插拔USB-TTL模块后重新用串口调试软件打开
7.3.3. CSS 界面无动态数据显示输出
检查CSS打开的串口是否为遥测串口(usart1),打开波特率是否为115200。
查看下行数据接收速率,确认是完全没有接收到有效下行数据,还是接收速率较低(5k/s左右),若为后者,这是因为BBP进入了要车通信故障保护状态,点击CssDemo飞控综显界面上“MsgRst”按钮重置下行通讯速率即可。
检查USB-TTL模块与BBP插座之间的连接是否正常;是否存在Tx、Rx接反的情况,此情况较为常见。
更多内容见CSDN博客专栏:无人机飞控
相关资源:https://gitee.com/ss15/ph47