ArduPilot 板卡移植指南:SequreH743 飞控硬件定义与参数配置全解析
2026/9/15 16:55:21 网站建设 项目流程

ArduPilot 板卡移植指南:SequreH743 飞控硬件定义与参数配置全解析

【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot

SequreH743 / SequreH743v2 是由 Sequre 设计生产的高性能飞控板,基于 STM32H743 主控,是 ArduPilot 官方支持的 ChibiOS 板卡之一。本文以 SequreH743 板卡 README 为核心,结合仓库中 hwdef.dat、hwdef-bl.dat 与 defaults.parm 等板级定义文件,系统讲解该板卡的 UART 映射、RC 输入、OSD/VTX、PWM/DShot 输出、电池监控等硬件资源的 ArduPilot 使用方式,以及固件烧录流程,帮助你在 Copter / Plane / Rover / Sub 等固件中正确部署并调优这块板卡。

板卡概览与硬件特性

SequreH743 系列飞控的核心硬件规格如下(V2 版本在传感器上有增强):

项目规格
MCUSTM32H743xx 32 位处理器,主频 480 MHz
IMUMPU6000;V2 版本增加 ICM42688
气压计BMP280(rev 2 上为 DPS368 / DPS310)
OSDAT7456E
UART6 路串口
PWM 输出9 路(8 路电机输出 + 1 路 LED)

这些特性在板级定义文件 hwdef.dat 中有完整对应:主控声明为MCU STM32H7xx STM32H743xx,时钟配置为 8 MHz 外部晶振(OSCILLATOR_HZ 8000000)并倍频到 480 MHz(MCU_CLOCKRATE_MHZ 480),Flash 容量 2048 KB,其中起始 384 KB 预留给引导加载程序(FLASH_RESERVE_START_KB 384),参数存储区使用 16 KB 的HAL_STORAGE_SIZE

从源码结构可以推断,这块板卡属于 ArduPilot 的 ChibiOS 硬件抽象层(AP_HAL_ChibiOS)体系,所有外设资源都通过hwdef.dat中的声明式指令描述,再由Tools/ardupilotwaf/chibios.pylibraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py在构建时生成对应的头文件与初始化代码。

引脚定义与 UART 映射

板卡正面与背面的完整引脚图如下,UART 引脚在图中以 Rn(接收)和 Tn(发送)标记:

UART 默认映射

板卡 6 路串口的 ArduPilot 默认功能分配如下:

串口硬件默认功能备注
SERIAL0USBMAVLink2USB 虚拟串口
SERIAL1USART1RCIN(遥控接收)DMA 使能
SERIAL2USART2SmartAudio(图传音频)
SERIAL4UART4None(未分配)
SERIAL6USART6GPSDMA 使能
SERIAL7UART7MSP_DisplayPortDMA 使能
SERIAL8UART8ESCTelemetry(电调遥测)

该映射在 hwdef.dat 中通过SERIAL_ORDER OTG1 USART1 USART2 EMPTY UART4 EMPTY USART6 UART7 UART8声明,即串口序号按此顺序分配给各外设(EMPTY 表示占位跳过,对应 SERIAL3 / SERIAL5 未使用)。各串口的默认协议分别由DEFAULT_SERIAL1_PROTOCOL SerialProtocol_RCINDEFAULT_SERIAL2_PROTOCOL SerialProtocol_SmartAudioDEFAULT_SERIAL4_PROTOCOL SerialProtocol_NoneDEFAULT_SERIAL6_PROTOCOL SerialProtocol_GPSDEFAULT_SERIAL7_PROTOCOL SerialProtocol_MSP_DisplayPortDEFAULT_SERIAL8_PROTOCOL SerialProtocol_ESCTelemetry指定。

串口协议与 DMA 说明

每个串口的实际协议均可通过对应SERIALn_PROTOCOL参数运行时更改。需要说明的是:

  • USART1、USART6、UART7 在硬件定义中未标注NODMA,即默认启用 DMA 收发(README 中标注为 "DMA-enabled");而 USART2、UART4、UART8 显式标注了NODMA,使用中断/轮询方式收发。
  • 若需将某个空闲串口改作他用,只需修改对应的SERIALn_PROTOCOL参数即可,无需重新编译固件。

RC 输入配置

板卡默认将 USART1(SERIAL1)配置为遥控接收输入,硬件层默认协议为SerialProtocol_RCIN(即参数值 23)。如果你希望将接收机改接到其他 UART 端口,需要:

  1. 在新的端口上设置SERIALn_PROTOCOL = 23(RCIN);
  2. SERIAL1_PROTOCOL改为其他值(例如 0/None),释放 USART1。

对于单向协议之外的双向协议(需要回传链路),必须使用 USART1 的 TX 引脚。各主流接收协议所需的参数配置如下:

协议SERIAL1_PROTOCOLSERIAL1_OPTIONS备注
通用 RCIN23单向协议默认配置
FPort2315需要半双工与反转处理
CRSF230仅连接 TX 引脚
SRXL2234仅连接 TX 引脚
PPM不支持

注意:该板卡不支持 PPM 输入,接收协议请优先选择 SBUS、FPort、CRSF 或 SRXL2。

SERIALn_OPTIONS参数用于控制串口的底层行为(如半双工、信号反转、拉高/拉低等),上述取值与 ArduPilot 串口选项的位定义一致,具体可参考对应机型的参数文档中SERIAL1_OPTIONS的说明。

OSD 与 VTX 支持

模拟 OSD(AT7456E)

板卡内置 AT7456E 视频叠加芯片,ArduPilot 侧通过OSD_TYPE = 1(MAX7456 驱动)启用。硬件定义中通过以下指令完成初始化:

  • SPI 设备声明:SPIDEV osd SPI1 DEVID1 OSD1_CS MODE0 10*MHZ 10*MHZ(挂载在 SPI1,片选为 PA4);
  • 驱动使能:define OSD_ENABLED 1define HAL_OSD_TYPE_DEFAULT 1
  • 字体资源:ROMFS_WILDCARD libraries/AP_OSD/fonts/font*.bin,将 OSD 字体文件打包进固件文件系统。

数字 VTX / DisplayPort

板卡同时支持在 HD VTX 连接器(UART7)上输出 MSP DisplayPort 协议,用于 DJI 数字图传等设备。默认配置即SERIAL7_PROTOCOL = MSP_DisplayPort,硬件定义中还通过define AP_MSP_VIDEOTX_ENABLED 1开启了 MSP 视频发射机支持,并预留了OSD_TYPE与 DisplayPort 双路输出并存的能力。

VTX 连接器电压警告

SH1.0-6P 连接器支持 DJI Air Unit / HD VTX 连接,协议默认使用 DisplayPort。注意:该连接器的 1 号引脚输出 9V 电压,切勿将其接到无法承受 9V 的外设上,以免损坏设备。

相机控制引脚

GPIO 81(硬件上对应 PB3)设计用于 PWM 相机控制,但 ArduPilot 目前不支持该功能,只能作为通用 GPIO 使用。默认情况下RELAY2被配置来控制此引脚,并在上电时将 GPIO 置高,对应硬件定义为PB3 CAMERA1 OUTPUT GPIO(81) LOWdefine RELAY2_PIN_DEFAULT 81。若需要使用继电器/相机开关,可基于 RELAY2 参数(如RELAY2_FUNCTIONRELAY2_PIN)进行配置。

PWM 输出与 DShot

SequreH743 支持最多 9 路 PWM 或 DShot 输出,电机输出 M1–M9 的焊盘同时出现在电机连接器和独立焊盘上,另有独立的 LED 灯带和其他 PWM 输出焊盘。

输出分组与速率规则

9 路 PWM 分为 4 个定时器组:

通道定时器
Group 1PWM 1–4TIM3
Group 2PWM 5–6TIM4
Group 3PWM 7–8TIM2
Group 4PWM 9TIM1

使用时有两条硬性规则:

  1. 同一组内的通道必须使用相同的输出速率(PWM 频率);
  2. 如果组内任意一个通道使用 DShot,则整组所有通道都必须使用 DShot

这是因为同一组共享一个定时器,定时器只能以单一配置运行。硬件定义中电机通道依次为TIM3_CH1~CH4(M1–M4)、TIM4_CH1~CH2(M5–M6)、TIM2_CH3~CH4(M7–M8)、TIM1_CH1(M9/LED),其中M1–M8(通道 1–8)支持双向 DShot(BIDIR),对应定义中 M1、M3、M5、M7 显式标注了BIDIR关键字。双向 DShot 可让飞控从电调读取转速反馈,用于旋翼转速估算与共振滤波等功能。

第 9 路输出与 LED

PWM 9(M9)默认用作 LED 灯带输出,仓库中的 defaults.parm 通过SERVO9_FUNCTION 120(LED)预设了这一功能;硬件层同时声明DEFAULT_NTF_LED_TYPES 455,使能了板载 RGB LED 的通知类型支持。若需复用第 9 路做其他用途,修改SERVO9_FUNCTION即可。

DMA 分配

为保证多路高频率 DShot 与 IMU SPI 读取互不冲突,硬件定义通过DMA_NOSHARE TIM3_UP TIM1_UP TIM4_UP SPI2*DMA_PRIORITY TIM3_UP TIM1_UP TIM4_UP SPI2*对定时器更新事件与 SPI2 的 DMA 通道做了优先级与共享策略的声明。

电池监控

板卡内置分压电压传感器,同时在 ESC 连接器上提供外部电流传感器输入。电压传感器最高支持6S LiPo电池。

ArduPilot 侧默认的电池参数如下:

参数默认值说明
BATT_MONITOR4模拟电压 + 电流监测
BATT_VOLT_PIN13电压采样 ADC 引脚(PC3 / ADC1)
BATT_CURR_PIN12电流采样引脚 CURR(PC2 / ADC1)
BATT_VOLT_MULT11.0电压分压倍率
BATT_AMP_PERVLT17.2电流传感器每伏安数

这些默认值直接固化在硬件定义中:define HAL_BATT_MONITOR_DEFAULT 4define HAL_BATT_VOLT_PIN 13define HAL_BATT_VOLT_SCALE 11.0define HAL_BATT_CURR_PIN 12define HAL_BATT_CURR_SCALE 17.2,并在 ADC 声明处以PC2 BATT_CURRENT_SENS ADC1 SCALE(1)PC3 BATT_VOLTAGE_SENS ADC1 SCALE(1)建立物理引脚到传感器的绑定。如果使用不同规格的电流计,请按实际硬件重新校准BATT_AMP_PERVLT(推荐通过BATT_AMP_OFFSET配合校准流程完成)。

罗盘(Compass)与 I2C 外设

SequreH743没有板载罗盘,需要外接罗盘并通过板上的 SDA / SCL 焊盘(I2C1:PB9 SDA、PB8 SCL)连接。硬件定义中做了一系列针对性处理:

  • define AP_COMPASS_PROBING_ENABLED 1:启动时在 I2C 总线上探测所有可能的外部罗盘类型;
  • define HAL_I2C_INTERNAL_MASK 0:无内部 I2C 器件需要屏蔽;
  • define HAL_COMPASS_AUTO_ROT_DEFAULT 2:默认外部罗盘自动方向为 2(对应常规安装方向)。

此外板载传感器全部位于 I2C 与 SPI 总线:IMU 为 SPI 连接的 Invensense MPU6000(ROTATION_YAW_270)与 V2 版的 ICM42688(ROTATION_PITCH_180_YAW_270),气压计为 I2C0 地址 0x76 的 BMP280,并在 rev 2 上支持 DPS368 / DPS310(硬件定义中同时声明BARO DPS310 I2C:0:0x76)。HAL_DEFAULT_INS_FAST_SAMPLE 1则默认开启了 IMU 快速采样。

另外,define HAL_FRAME_TYPE_DEFAULT 12表明该板卡的默认机架类型为 Betaflight/X 电机顺序(适用于标准电调接线),装机时应按 X 型四旋翼的电机方向检查。

固件烧录与升级

获取固件

SequreH743 的官方固件发布在 ArduPilot 固件仓库中,位于以 "SequreH743" 命名的子目录下,按机型(ArduCopter、ArduPlane、ArduRover、ArduSub 等)分别提供。

首次烧录(DFU)

首次刷写固件需要使用 DFU 模式:

  1. 按住板上的bootloader 按钮的同时插入 USB 连接电脑;
  2. 使用任意 DFU 烧录工具(如 STM32CubeProgrammer、dfu-util)加载"with_bl.hex"固件文件。

"with_bl" 版本同时包含引导加载程序与应用程序,首次刷写后板卡即具备完整的 ArduPilot 引导加载器。硬件定义 hwdef-bl.dat 显示,引导加载程序从 Flash 偏移 0 开始(FLASH_RESERVE_START_KB 0),将应用程序放置在 384 KB 偏移处(FLASH_BOOTLOADER_LOAD_KB 384),与主固件中FLASH_RESERVE_START_KB 384的预留布局一致;同时 bootloader 版本会默认将所有引脚拉低(DEFAULTGPIO OUTPUT LOW PULLDOWN)以避免上电瞬间的 ESD 风险。

后续升级

首次烧录完成后,即可通过任意 ArduPilot 地面站软件(Mission Planner、QGroundControl 等)进行后续固件升级。升级时应使用*.apj固件文件——这类文件是带板卡校验信息的压缩格式,地面站可据此校验板卡类型与固件完整性。

参数默认值速查

下表汇总了该板卡在仓库中固化的默认配置,供装机时快速核对:

配置项来源文件值 / 说明
MCU / 主频hwdef.datSTM32H743xx / 480 MHz
Flash 布局hwdef.dat总 2048 KB,应用起始偏移 384 KB
SERIAL1 协议hwdef.datRCIN(23)
SERIAL2 协议hwdef.datSmartAudio
SERIAL4 协议hwdef.datNone
SERIAL6 协议hwdef.datGPS
SERIAL7 协议hwdef.datMSP_DisplayPort
SERIAL8 协议hwdef.datESCTelemetry
电池监控hwdef.datBATT_MONITOR=4,VOLT_PIN=13,CURR_PIN=12,VOLT_MULT=11.0,AMP_PERVLT=17.2
SERVO9 功能defaults.parm120(LED)
机架类型hwdef.dat12(Betaflight/X)
罗盘hwdef.dat无板载,外部 I2C 探测使能
输出组hwdef.datG1: M1–M4,G2: M5–M6,G3: M7–M8,G4: M9

如需深入理解板级定义的语法与生成机制,可直接阅读 SequreH743 的 hwdef.dat 全文,并对照其他板卡定义文件了解 ArduPilot ChibiOS 板卡移植的通用模式;若要调整任何默认参数,在固件中对应机型的参数列表(Copter、Plane、Rover、Sub 的 Parameters 定义)中查找同名参数即可。

【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot

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

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

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

立即咨询