HPMicro Betaflight v0.1.0发布

betaflight介绍

Betaflight是用于多旋翼和固定翼飞行器的飞行控制器软件 (固件)。
飞行控制器本质上是一台计算机,它读取传感器 (陀螺仪,加速度计,GPS等),计算要采取的所需动作,将命令发送到ESC以控制电机,产生推力,并保持四轴飞行器在空中。它还可以控制其他外围设备 (VTX控制,无线电链路遥测,led)。

Betaflight是在飞行控制器上运行的软件,用于执行所有这些操作
Betaflight不断更新新功能和改进。它的主要重点是高性能飞行 (自由式/赛车四轴飞行器),但它也支持其他类型的飞机 (固定翼,三翼/六角/八轴飞行器等)。最近,重点一直在扩大,以支持更先进的GPS救援能力

Betaflight已成为飞行控制器的事实标准,几乎每个飞行控制器都有一个Betaflight目标
有关betaflight的发展历程,可以参考betaflight的wiki:https://www.betaflight.com/docs/wiki/getting-started

先楫betaflight支持包

先楫半导体基于hpm_sdk v1.10.0对betaflight v4.5.2进行了适配。为使用先楫芯片快速搭建fpv竞速平台提供了支持。同时先楫提供了开源的flight controller线路板的原理图和layout文件供参考。
原理图和layout文件链接如下:
https://github.com/hpmicro/betaflight/releases/tag/v0.1.0
betaflight工程仓库链接如下:
github: https://github.com/hpmicro/betaflight/
gitee: https://gitee.com/hpmicro/betaflight/releases/tag/v0.1.0
主要硬件资源:

betaflight已经适配的特性/功能:

  • Dshot电调数字通讯协议
    • 支持dshot300/600/1200
    • 支持dshot300/600的双向通讯
  • 基于SDIO的sd卡黑盒子记录功能
  • 基于SPI/I2C的IMU通讯
    • SPI通讯支持dma和polling方式
    • 典型通信频率8K,最高32K
    • 支持双IMU通讯和姿态计算
  • 支持模拟OSD
  • 支持USB虚拟串口通信
  • 支持UART通信
  • 支持电池电压/电流检测
  • 支持GPS功能
  • 支持CRSF串行协议接收机
  • 支持LED灯带
  • 内部Flash保存配置参数

工程创建和编译:

  1. 下载工程源码
    git clone https://github.com/hpmicro/betaflight.git
    cd betaflight
    git submodule init
    git submodule update
  2. 创建工程
    在windows环境下,下载使用sdk_env创建工程是最方便的

    git clone https://github.com/hpmicro/sdk_env.git

    打开sdk_env工具,在advance子界面配置HPM_SDK_BASE为betaflight目录下的hpm_sdk目录,并勾选hpm6754evk开发板,勾选Enable User Application Path,选择betaflight目录,单击Generate按键产生工程,然后打开SES工程。

    Linux环境下创建工程请参考hpm_sdk中的文档,betaflight工程的CMakeLists.txt在betaflight/src/目录下。

  3. 工程配置和编译
    由上一步产生的工程是一个标准的segger工程,按照一般segger工程进行编译和下载即可。
    需要注意的是,为了关键代码的运行效率,在产生工程时,默认对部分目录下的源码文件配置了优化等级和指定代码段section名称的操作。用户可以在segger ide中对文件配置进行二次修改,但是ide中的配置修改不会在重新生成工程后生效,如果需要修改产生工程时的默认配置,可以修改文件betaflight\src\main\CMakeLists.txt末尾的sdk_ses_set_code_placement和sdk_ses_set_optimization_level语句。
    对于gcc命令行用户,本工程未做针对性优化,爱好者可以自行对代码进行优化。
  4. 性能指标:
    在典型环境下,即IMU@8k采样率,4路dhsot600电调(未使用回传),外接CRSF接收机,外接IRC协议图传,采样电池电压的情况下:

    各任务运行情况如下:

    在开启dshot回传后

  5. 开源pcb资源分配一览
    板载资源:
模块 数量 使用外设 引脚
SD卡插槽 1 SDIO0 PE18 PE21 PE22 PE23 PE26 PE27 PE28
板载IMU1 1 SPI0 PZ2 PZ3 PZ4 PZ5 PZ7(INT)
板载IMU2 1 SPI1 PE15(INT) PE3 PE4 PD30 PD31
板载OSD 1 SPI2 PA26 PA27 PA31 PB0
板载灯带 0
板载wifi 0
板载蓝牙 0
板载接收机 0

接插件/焊盘定义:

Receiever

名称 功能 使用外设 引脚
GND
TX5 数据发送 UART5 PD7
RX5 数据接收 UART5 PD6
ADC0 RSSI测量 ADC0 channel 0 PE14
3.3V
5V

GPS

名称 使用外设 引脚
GND
TX7 UART7 PE31
RX7 UART7 PE30
3.3V
5V

PWM

名称 使用外设 引脚
MOTOR0 PWM1 CH4 PA25
MOTOR1 PWM1 CH5 PA24
MOTOR2 PWM1 CH6 PA20
MOTOR3 PWM1 CH7 PA19

CAMERA

名称 功能
GND
OUT 接外部图传
GND
IN 接外部摄像头

LED Strip

名称 功能 使用外设 引脚
GND
NC
PY4 灯带 SPI3 MOSI PY4 (使用时JTAG不可用)
3.3V

ADC

名称 功能 使用外设 引脚
GND
GND
ADC0.P3 电池电压测量 ADC0 CH3 PE16
ADC0.P2 电流测量 ADC0 CH2 PE17
5V
5V
1
0

订阅

发表回复 0

Your email address will not be published. Required fields are marked *

captcha
Enter the characters shown in the image:
Reload

This CAPTCHA helps ensure that you are human. Please enter the requested characters.