ArduPilot AeroCogito H7-Digital 飞控硬件定义与实战指南:从引脚映射到烧录排障
2026/9/14 4:41:20 网站建设 项目流程

ArduPilot AeroCogito H7-Digital 飞控硬件定义与实战指南:从引脚映射到烧录排障

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

本篇指南基于 ArduPilot 仓库中 AeroCogito H7-Digital 板级 README 展开,结合同目录下的 hwdef.dat 与 hwdef-bl.dat 硬件定义文件,完整讲解这块面向伴飞计算机(Raspberry Pi / Jetson)设计的 NDAA 合规飞控的串口映射、连接器引脚、关键参数默认值、PWM/DShot 输出分组、电池监测以及固件烧录流程。读完你可以独立完成该板型的接线、参数配置、首次开机校准与常见故障排查。

一、板卡概述:一块为伴飞计算机而生的 H743 飞控

AeroCogito H7-Digital 是一款 NDAA 合规的高性能飞控,核心卖点是从设计之初就围绕"飞控 + 伴飞计算机(Raspberry Pi、Nvidia Jetson)"的组网场景,且仅支持数字高清图传(OpenIPC、DJI、Walksnail、HDZero),板上没有模拟 OSD 芯片。

核心规格如下:

项目参数
MCUSTM32H743 @ 480MHz
内存1MB RAM,2MB Flash
IMUICM-42688-P 6轴(独立供电轨 + 额外滤波)
气压计DPS368
尺寸41mm x 41mm(30.5mm 安装孔距)
输入3S-6S(11.1V - 25.2V)
5V BEC峰值 2.5A / 持续 2A
10V BEC峰值 2.5A / 持续 2A,软件可控
模拟输出10 路 PWM(DShot150/300/600、PWM、OneShot)

从 hwdef.dat 可以确认硬件层面的几处关键设定:

MCU STM32H7xx STM32H743xx OSCILLATOR_HZ 16000000 # 16MHz 外部晶振 FLASH_SIZE_KB 2048 FLASH_RESERVE_START_KB 128 # 前 128KB 保留给 bootloader

即主固件从 128KB 偏移处加载,前 128KB 是 DFU bootloader 的领地,这一点直接关系到后文"首次烧录"章节的操作方式。

二、串口映射(SERIAL0 ~ SERIAL6)

板子上 UART 引脚标注为 Rn / Tn:Rn 是 UARTn 的接收脚,Tn 是发送脚。hwdef.dat 第 24 行 的SERIAL_ORDER决定了串口号与外设的对应关系:

SERIAL_ORDER OTG1 UART5 USART2 UART8 UART4 USART3 UART7

逐号对应结果:

Serial#物理端口默认协议说明GPIO 引脚
SERIAL0OTG1USB-FSUSB Type-C 接口PA11/PA12 (OTG_FS_DM/DP)
SERIAL1UART5MAVLink2伴飞计算机/遥测,DMAPD1(TX) / PD0(RX) 对应 UART4 见注*
SERIAL2UART2DisplayPortMSP OSDPA2(TX) / PA3(RX)
SERIAL3UART8GPSDMAPE0(RX) / PE1(TX)
SERIAL4UART4RCINSBUS/CRSF/ELRS,DMAPD1(TX) / PD0(RX)
SERIAL5UART3ESC Telemetry仅 RX(ESC 座 T 脚)PD9(RX, NODMA)
SERIAL6UART7NONE仅 RX(R7 脚接 DJI 图传)PE7(RX)

注*:原文档 UART 映射表列出的端口与协议默认值,可在 hwdef.dat 的 UART ASSIGNMENTS 段逐条核对,例如:

# UART5: Companion computer (MAVLink) PB12 UART5_RX UART5 PB13 UART5_TX UART5 define DEFAULT_SERIAL1_PROTOCOL SerialProtocol_MAVLink2 define DEFAULT_SERIAL1_BAUD 115

需要特别注意原文档中的一条易错点(DJI SBUS 切换):

若要用 SERIAL6 在 HD VTX 连接器上接收 SBUS,则 SERIAL4 不能再用作 RC(即其协议需从 "23" 改掉),并把SERIAL6_PROTOCOL改为 "23"(RCIN)。

这与 hwdef.dat 中 UART7 只定义了PE7 UART7_RX UART7(纯接收)的硬件事实一致——该口没有 TX,只能做 SBUS/DSM 这类单向接收型 RC 输入,默认未启用协议。

三、连接器引脚详解(BetaFlight JST-SH 标准)

H7-Digital 全部采用 BetaFlight 连接标准的 JST-SH 座子:8 pin(ESC)、6 pin(Motor 5-8 / GPS-Compass / VTX)、4 pin(Servo / RC Input / Companion Computer)。各座子逐脚定义如下,接线时务必按此表核对。

3.1 ESC 座(PWM 输出 1-4)

PinLabel信号电压
1BATVBAT11.1V - 25.2V (3S-6S)
2GGNDGND
3CCurrent3.3V
4TTelemetry3.3V
5M1M13.3V
6M2M23.3V
7M3M33.3V
8M4M43.3V

其中 C 脚接电流采样线(对应 ADC1 的 PA1 通道),T 脚接 ESC 遥测数据线(对应 USART3_RX,即 SERIAL5,仅接收)。

3.2 Motor 5-8 座(PWM 输出 5-8)

PinLabel信号电压
1NC未连接 (NC)-
2GGNDGND
3M5M53.3V
4M6M63.3V
5M7M73.3V
6M8M83.3V

3.3 Servo 座(PWM 输出 9-10)

PinLabel信号电压
15VPWR5V
2GGNDGND
3S1S13.3V
4S2S23.3V

3.4 GPS/Compass 座(UART8 + I2C4)

PinLabel信号电压
14V5PWR4.5V
2GGNDGND
3R8RX3.3V
4T8TX3.3V
5SDASDA3.3V
6SCLSCL3.3V

注意:4.5V 供电脚在 USB 上电或电池上电时都会输出,因此接 GPS/罗盘前要先断开 USB,避免 5V 反灌进计算机接口。

3.5 Companion Computer/Telemetry 座(UART5)

PinLabel信号电压
1NC未连接 (NC)-
2GGNDGND
3R5RX3.3V
4T5TX3.3V

这是 SERIAL1,飞控侧接收脚 R5 接伴飞计算机的 TX,发送脚 T5 接伴飞计算机的 RX。

3.6 RC Input 座(UART4)

PinLabel信号电压
14V5PWR4.5V
2GGNDGND
3R4RX3.3V
4T4TX3.3V

同样注意 4.5V 脚的 USB/电池双路供电问题,与 3.4 节相同。

3.7 VTX/DisplayPort 座(UART2)

PinLabel信号电压
110VPWR10V
2GGNDGND
3T2TX3.3V
4R2RX3.3V
5GGNDGND
6R7RX3.3V

10V 脚是"软件可控"的 VTX 供电,由 hwdef.dat 中映射为 RELAY2 的 PE2 使能脚控制:

PE2 BEC_EN OUTPUT HIGH GPIO(80) # 10V BEC 使能(VTX 供电) define RELAY2_PIN_DEFAULT 80 define RELAY2_DEFAULT 1 # Relay2 默认 ON

即默认上电即输出 10V;在 ArduPilot 里把 RC 开关或任务指令绑定到RELAY2 ON/OFF功能,即可在飞行中切换 VTX 电源。

四、伴飞计算机(Companion Computer)接线与配置

H7-Digital 通过 UART5(SERIAL1)对接伴飞计算机,是这块板子相对普通 FPV 飞控最大的差异化设计。

4.1 硬件接线

接板上的COMPUTER座(3.5 节引脚表):

  • 2 脚 (GND) → 伴飞计算机 GND
  • 3 脚 (R5/RX) → 伴飞计算机 TX
  • 4 脚 (T5/TX) → 伴飞计算机 RX

不要接 1 脚 NC。

4.2 软件配置

hwdef.dat 已将默认协议与波特率写死为:

define DEFAULT_SERIAL1_PROTOCOL SerialProtocol_MAVLink2 define DEFAULT_SERIAL1_BAUD 115

对应参数含义:

  • SERIAL1_PROTOCOL = 2(MAVLink2,默认)
  • SERIAL1_BAUD = 115(即 115200,默认)
  • 高带宽应用(如带视觉流/多路传感器融合)可考虑SERIAL1_BAUD = 921(921600),但更高波特率要求短线缆、屏蔽良好与扎实的电性设计,长距离飞线先保持 115200。

五、RC 输入与 OSD(仅数字 HD VTX)

5.1 RC 输入

默认 RC 输入在 UART4(SERIAL4),hwdef.dat 中定义为:

# UART4: RC receiver input PD1 UART4_TX UART4 PD0 UART4_RX UART4 define DEFAULT_SERIAL4_PROTOCOL SerialProtocol_RCIN

支持 SBUS、CRSF/ELRS、DSM、PPM 等标准协议。如前文所述,若要把 DJI 图传口的 SBUS 挪到 SERIAL6(UART7 R7 脚),需把 SERIAL4 协议从 23 改走,并将SERIAL6_PROTOCOL = 23

5.2 OSD

本板只有数字 HD VTX OSD,没有模拟 OSD 芯片。hwdef.dat 中:

# USART2: Video transmitter (MSP DisplayPort) PA2 USART2_TX USART2 PA3 USART2_RX USART2 define DEFAULT_SERIAL2_PROTOCOL SerialProtocol_MSP_DisplayPort define AP_MSP_VIDEOTX_ENABLED 1

配合 第 153-155 行 的OSD_ENABLED 1HAL_OSD_TYPE_DEFAULT 5(MSP DisplayPort),出厂默认即为:

  • OSD_TYPE = 5(MSP DisplayPort)
  • SERIAL2_PROTOCOL = 42(DisplayPort)

兼容数字系统:OpenIPC、DJI、Walksnail、HDZero。VTX/DisplayPort 座的 T2/R2 脚接图传的 MSP 口;若接 DJI 类只回传 SBUS 的图传,则其 SBUS 数据走 R7(SERIAL6,UART7 接收)。

六、PWM 输出:三路定时器、三组协议约束

8 路电机 + 2 路舵机全部由三路定时器驱动,hwdef.dat 中的定义:

# Main motor outputs (1-8) PE9 TIM1_CH1 TIM1 PWM(1) GPIO(50) BIDIR # Motor 1 PE11 TIM1_CH2 TIM1 PWM(2) GPIO(51) # Motor 2 PE13 TIM1_CH3 TIM1 PWM(3) GPIO(52) BIDIR # Motor 3 PE14 TIM1_CH4 TIM1 PWM(4) GPIO(53) # Motor 4 PD12 TIM4_CH1 TIM4 PWM(5) GPIO(54) BIDIR # Motor 5 PD13 TIM4_CH2 TIM4 PWM(6) GPIO(55) # Motor 6 PD14 TIM4_CH3 TIM4 PWM(7) GPIO(56) BIDIR # Motor 7 PD15 TIM4_CH4 TIM4 PWM(8) GPIO(57) # Motor 8 # Servo outputs (9-10) PC6 TIM3_CH1 TIM3 PWM(9) GPIO(58) # Servo 1 PC7 TIM3_CH2 TIM3 PWM(10) GPIO(59) # Servo 2
输出引脚定时器通道分组
M1PE9TIM1_CH11
M2PE11TIM1_CH21
M3PE13TIM1_CH31
M4PE14TIM1_CH41
M5PD12TIM4_CH12
M6PD13TIM4_CH22
M7PD14TIM4_CH32
M8PD15TIM4_CH42
S1PC6TIM3_CH13
S2PC7TIM3_CH23

要点:

  1. 所有电机输出支持 DShot(150/300/600)以及 PWM/OneShot;双向 DShot(BIDIR)仅 M1/M3/M5/M7 四条线具备(TIM1_CH1/3、TIM4_CH1/3 标有BIDIR),因此 M1-M8 都支持 DShot 遥测回读,但注意只有奇数电机线声明了双向能力。
  2. 同组协议必须一致:TIM1 同一定时器只能跑一种协议,所以 M1-M4 必须全部同协议(例如都 DShot300);M5-M8(TIM4)同理;S1-S2(TIM3)同理。配置时以组为单位设置MOT_PWM_TYPE

七、电池监测:内置压流双采

板载电压/电流监测,hwdef.dat 将两个 ADC 通道定义在 ADC1:

PA0 BATT_VOLTAGE_SENS ADC1 SCALE(1) # 电池电压采样 PA1 BATT_CURRENT_SENS ADC1 SCALE(1) # 电池电流采样

出厂默认参数(同文件 第 163-168 行):

  • BATT_MONITOR = 4(电压 + 电流)
  • BATT_VOLT_PIN = 16(PA0 对应 ADC 通道 16)
  • BATT_CURR_PIN = 17(PA1 对应 ADC 通道 17)
  • 电压分压比HAL_BATT_VOLT_SCALE = 11.0
  • 电流传感系数HAL_BATT_CURR_SCALE = 18.0

若更换电池插头线或改装分压电阻,需按硬件重新计算这两个 scale 值,否则电池百分比与低电压保护都会失准。

八、板载传感器:IMU、气压计、罗盘与 SD 卡

8.1 IMU:ICM-42688-P 走 SPI1

hwdef.dat 中:

SPIDEV 42688 SPI1 DEVID1 GYRO_CS MODE3 2*MHZ 16*MHZ IMU Invensensev3 SPI:42688 ROTATION_ROLL_180_YAW_90
  • 引脚:SPI1 的 SCK/MISO/MOSI = PA5/PA6/PA7,片选PB0 (GYRO_CS),数据就绪中断PB1 (GYRO_EXTI)
  • 双速率配置2*MHZ 16*MHZ:初始化 2MHz,工作 16MHz;
  • 默认安装旋转ROTATION_ROLL_180_YAW_90(即AP_MOUNT_ATT的 ROLL_180_YAW_90)——如果你把飞控按非默认姿态安装,记得改AP_MOUNT_ATT

8.2 气压计:DPS368(驱动注册为 DPS310)

hwdef.dat 第 66 行:

BARO DPS310 I2C:0:0x76 # DPS368 挂在 I2C1,但按 DPS310 驱动注册

物理器件是 DPS368,挂在 I2C1(PB6 为 I2C4_SCL?注意:I2C1 = PB8 SCL / PB9 SDA,见下)。原文档写"通过 I2C1(地址 0x76)",而 hwdef 注释说明 DPS368 与 DPS310 寄存器兼容、借用 DPS310 驱动——这是读源码时容易困惑的一处,实际探测地址就是 0x76。I2C 总线布局(第 61-70 行):

  • I2C1(内部传感器:气压计):PB8 SCL / PB9 SDA
  • I2C4(外部设备:罗盘等):PB6 SCL / PB7 SDA,引出到 GPS/Compass 座的 SCL/SDA 脚

8.3 罗盘

板上没有内置罗盘,但 hwdef.dat 打开了AP_COMPASS_PROBING_ENABLED 1,在 I2C4 上挂任意 ArduPilot 支持的外置罗盘模块即可自动探测。

8.4 SD 卡(SDMMC1)

microSD 卡槽走 SDMMC1(PC12 CK、PD2 CMD、PC8-PC11 D0-D3),用途:Blackbox 日志、参数备份、SD 卡烧录固件。建议 Class 10 或 UHS-1 以上卡。

8.5 状态 LED

LED引脚GPIO 号颜色/功能
LED0PD890蓝色(主状态)
LED1PB1591绿色(次状态)
LED2PB1492琥珀色(第三状态/DFU)

hwdef.dat 中三个 LED 全部映射进 AP_Notify(AP_NOTIFY_GPIO_LED_3_ENABLED 1),因此 ArduPilot 的起停/解锁/故障指示灯语义可以直接驱动这三颗 LED。

九、ESC 遥测(UART3 / SERIAL5)

ESC 遥测走 USART3,仅接收,接 ESC 座的 T 脚:

# USART3: ESC telemetry (receive only) PD9 USART3_RX USART3 NODMA define DEFAULT_SERIAL5_PROTOCOL SerialProtocol_ESCTelemetry define DEFAULT_SERIAL5_BAUD 115
  • 默认协议:AM32 / BLHeli32 / BLHeli_S 遥测,对应SERIAL5_PROTOCOL = 16,波特率 115200;
  • 可读取电机 RPM、电压、电流、温度数据;
  • 注意该通道标记NODMA,且 hwdef.dat 显式开启HAL_WITH_ESC_TELEM 1

十、固件烧录:Board ID、DFU 模式与 SD 卡更新

10.1 板型标识

在 Tools/AP_Bootloader/board_types.txt 中可查到该板型的注册信息:

# IDs 4300-4309 reserved for AeroCogito AP_HW_AeroCogito-H7Digital 4300

ArduPilot Board ID = 4300,APJ 标识AP_HW_AeroCogito-H7Digital。该板型由 hwdef.dat 第 6 行 的APJ_BOARD_ID AP_HW_AeroCogito-H7Digital与编译系统关联;各机型发布说明(如 ArduCopter/ReleaseNotes.txt)中记录了 "AeroCogito-H7Digital support" 的加入条目。固件可从 ArduPilot 固件服务器按AeroCogito-H7Digital目标下载。

10.2 首次烧录(出厂为 BetaFlight)

出厂预装 BetaFlight。要运行 ArduPilot,需先烧录板型专属的 ArduPilot-bl.hex文件(含 bootloader + 主固件),之后更新即可用:

  • 地面站.apj文件(经 MAVLink);
  • 或 SD 卡.abin文件。

烧录工具可用 BetaFlight Configurator、INAV 或 STM32CubeProgrammer。hwdef.dat 末尾明确构建了 SD 卡烧录所需的 ABIN:

# build ABIN for flash-from-bootloader support env BUILD_ABIN True

10.3 进入 DFU 模式

  1. 断电;
  2. 按住 BOOT 键;
  3. 插入 USB(Type-C);
  4. DFU LED(琥珀色)点亮即进入 DFU;
  5. 用烧录工具写入固件。

hwdef-bl.dat 解释了 bootloader 侧的几个关键行为:

FLASH_RESERVE_START_KB 0 # bootloader 位于 flash 起始 FLASH_BOOTLOADER_LOAD_KB 128 # 主固件从 128KB 偏移加载 PB15 LED_BOOTLOADER OUTPUT HIGH # 绿色 LED 在 bootloader 下点亮 PE2 BEC_EN OUTPUT LOW # 10V BEC(VTX 供电)在 bootloader 模式下关闭 define AP_BOOTLOADER_FLASH_FROM_SD_ENABLED 1 # 支持从 SD 卡刷固件

两个实用推论:进入 bootloader 后 10V VTX 供电被强制关闭(排障 VTX 无电时先想到这条);DFU 期间 SD 卡仍可用,因此可以在不接 USB 数据线的情况下用 SD 卡.abin完成刷写。

10.4 首次开机检查清单

  1. 设置机架类型与电机顺序;
  2. 执行加速度计/罗盘初始校准;
  3. 配置 RC 输入与 OSD;
  4. 将 RC 通道分配到舵机/继电器(如 RELAY2 的 VTX 电源控制)。

十一、故障排查

原文档 Troubleshooting 章节的五类问题,逐条整理如下,并补充了源码依据:

11.1 USB 无法识别板子

  • 确认 Type-C 线支持数据传输(非纯充电线);
  • Windows 需安装 CH34x/STM32 USB 驱动(ImpulseRC Driver Fixer)。
  • 串口侧对应 OTG1(PA11/PA12),bootloader 与主固件共用同一 USB 口。

11.2 OSD 不显示

  • 核对OSD_TYPE = 5(MSP DisplayPort);
  • 核对SERIAL2_PROTOCOL = 42
  • 确认 VTX 的 TX/RX 交叉接线(板 T2 → VTX RX,板 R2 → VTX TX);
  • 确认RELAY2没有被切到 LOW——否则 10V BEC 关闭、VTX 直接断电(见 3.7 节与 10.3 节);
  • 记住:本板无模拟 OSD,模拟接收器上不会有任何画面。

11.3 GPS 不工作

  • 核对SERIAL3_PROTOCOL = 5(GPS,UART8);
  • 确认 GPS 模块收到 4.5V 供电(注意 USB 与电池双路供电问题);
  • TX/RX 是否接反:板 R8(PE0)接 GPS 的 TX,板 T8(PE1)接 GPS 的 RX。

11.4 ESC 遥测不工作

  • 核对SERIAL5_PROTOCOL = 16
  • 遥测线必须接 ESC 座的T脚(USART3_RX,仅接收);
  • 确认 ESC 硬件与固件本身支持遥测输出。

11.5 电机输出不工作

  • 核对MOT_PWM_TYPE与 DShot 设置;
  • BLHeli 直通场景检查SERVO_BLH_AUTO = 1
  • 电机协议要与 ESC 能力匹配;
  • 牢记分组约束:同一组(M1-M4 / M5-M8 / S1-S2)内所有输出必须同协议,否则整组定时器无法工作。

十二、参考资料

  • 板级文档主体:libraries/AP_HAL_ChibiOS/hwdef/AeroCogito-H7Digital/README.md
  • 主固件硬件定义:libraries/AP_HAL_ChibiOS/hwdef/AeroCogito-H7Digital/hwdef.dat
  • Bootloader 硬件定义:libraries/AP_HAL_ChibiOS/hwdef/AeroCogito-H7Digital/hwdef-bl.dat
  • 板型 ID 注册表:Tools/AP_Bootloader/board_types.txt
  • 引脚图:libraries/AP_HAL_ChibiOS/hwdef/AeroCogito-H7Digital/H7-Digital_pinout.jpg

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

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

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

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

立即咨询