ArduPilot 飞控硬件适配指南:MicoAir743-Lite 的 hwdef 配置、接口映射与固件刷写详解
【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot
MicoAir743-Lite 是 MicoAir Tech 生产的一款基于 STM32H743 的 ArduPilot 兼容飞控板,本指南以其在 ArduPilot 仓库中的官方硬件定义文档(libraries/AP_HAL_ChibiOS/hwdef/MicoAir743-Lite/README.md)为骨架,结合同目录下的 hwdef.dat 与 hwdef-bl.dat 源码,完整讲解其硬件特性、UART/RC/PWM 接口映射、电源参数、刷写与升级流程。读完本文,你将能准确接线、配置参数并安全地为该板卡刷写和升级 ArduPilot 固件。
板卡概览与硬件特性
MicoAir743-Lite 是 MicoAir Tech 设计生产的飞行控制器,属于 ArduPilot 官方支持板卡之一,其硬件定义位于 libraries/AP_HAL_ChibiOS/hwdef/MicoAir743-Lite/。核心特性如下:
| 类别 | 规格 |
|---|---|
| 主控 | STM32H743 微控制器(480MHz,2MB Flash / 1MB RAM,见端口连接图标注) |
| IMU | ICM45686(HiRes 20bit,SPI 接口) |
| 气压计 | SPA06(文档标注)/ SPL06(hwdef 实际声明) |
| 遥测 | 集成蓝牙模块 |
| 电源 | 9V 2A BEC;5V 2A BEC;支持 2-6S(6-27V)电池输入 |
| 存储 | MicroSD 卡槽 |
| 外设 | 8 路 UART、15 路 PWM 输出、DJI O3/O4 VTX 连接器、1 路 I2C、1 路 SWD |
| 机械 | 安装孔 30.5 x 30.5mm(Φ4mm);尺寸 36 x 36 x 8 mm;重量 10g |
从 hwdef.dat 可以印证板级定义:MCU 为STM32H7xx STM32H743xx,晶振 8MHz(OSCILLATOR_HZ 8000000),Flash 2MB 且预留起始 128KB 给 bootloader(FLASH_RESERVE_START_KB 128),并声明了 32KB 存储区(HAL_STORAGE_SIZE 32768)。传感器层面,IMU 通过 SPI3 挂载icm45686,旋转方向为ROTATION_ROLL_180_YAW_90;AP_InertialSensor_Invensensev3.h 中将其列为ICM45686 // HiRes 20bit型号,即高分辨率 20bit 输出模式。
图为 MicoAir743-Lite 正反面接口排布:正面含 STM32H743VIT6 主控、ICM45686 IMU、SPA06 气压计、TF 卡槽、BOOT 按键及各 UART 排针;背面含 9V/5V BEC、I2C1 与 USB Type-C 等接口。
UART 映射与串口默认协议
该板共提供 8 个串口(SERIAL0–SERIAL8),对应关系见下表(取自原文档 UART Mapping 小节,并补充 hwdef.dat 中SERIAL_ORDER与默认协议定义):
| 串口 | 物理接口 | 默认功能 | 备注 |
|---|---|---|---|
| SERIAL0 | USB | USB | 刷机与地面站连接 |
| SERIAL1 | UART1 | MAVLink2 | DMA 使能 |
| SERIAL2 | UART2 | DisplayPort | DMA 使能,用于 VTX OSD |
| SERIAL3 | UART3 | GPS | DMA 使能 |
| SERIAL4 | UART4 | MAVLink2 | DMA 使能 |
| SERIAL5 | UART5 | User | DMA 使能 |
| SERIAL6 | UART6 | RCIN | DMA 使能,接接收机 |
| SERIAL7 | UART7 | ESC Telemetry(RX only) | DMA 使能,仅接收 |
| SERIAL8 | UART8 | MAVLink2(板载蓝牙) | 内部连接蓝牙模块 |
对应 hwdef.dat 中的串口顺序为OTG1 USART1 USART2 USART3 UART4 UART5 USART6 UART7 UART8,默认协议在文件末尾以宏定义固化:
define DEFAULT_SERIAL2_PROTOCOL SerialProtocol_MSP_DisplayPort define DEFAULT_SERIAL4_PROTOCOL SerialProtocol_MAVLink2 define DEFAULT_SERIAL6_PROTOCOL SerialProtocol_RCIN define DEFAULT_SERIAL7_PROTOCOL SerialProtocol_ESCTelemetry define DEFAULT_SERIAL8_PROTOCOL SerialProtocol_MAVLink2 define DEFAULT_SERIAL8_BAUD 115即 UART2 出厂即配置为 MSP DisplayPort(配合 VTX OSD),UART6 为 RC 输入,UART7 为电调遥测,UART8 为蓝牙 MAVLink2 且波特率 115200。
RC 输入接线与协议支持
UART6 兼容 ArduPilot 支持的所有接收机协议,但PPM 不被支持。具体接线规则:
- SBUS / DSM / SRXL:连接到 RX6 引脚。
- FPort:需要连接 TX6(参见 FPort 接收机说明)。
- CRSF:除 RX6 外还需连接 TX6,并自动提供遥测回传。
- SRXL2:需连接 TX6,自动提供遥测,并须将
SERIAL6_OPTIONS设置为4。
ArduPilot 中任何 UART 都可以用作 RC 系统连接,除 PPM 外兼容所有协议(详见 Radio Control Systems 文档)。在 hwdef 层面,UART6 的SerialProtocol_RCIN默认协议即对应此接线设计。
OSD 与 VTX 支持
该板没有板载 OSD 芯片,但 HD VTX 连接器提供 DisplayPort OSD。SH1.0-6P 连接器支持 DJI Air Unit / HD VTX 连接,协议默认为 DisplayPort。注意:连接器第 1 脚为 9V,切勿将其接到需要 5V 的外设上。
hwdef 中的相关固化配置印证了这一点:
define OSD_ENABLED 1 define HAL_OSD_TYPE_DEFAULT 5 # DisplayPort OSD define AP_MSP_VIDEOTX_ENABLED 1PWM 输出与分组
MicoAir743-Lite 支持最多15 路 PWM/DShot 输出,其中通道 1–8 支持双向 DShot(bi-directional DShot,可用于电调遥测回传)。PWM 输出按组划分,同一组内必须使用相同的输出协议:
| 分组 | 通道 | 说明 |
|---|---|---|
| Group 1 | 1, 2, 3, 4 | |
| Group 2 | 5, 6, 7, 8 | |
| Group 3 | 9, 10 | |
| Group 4 | 11, 12, 15 | |
| Group 5 | 13, 14 |
注意:PWM15 是 "LED" 引脚。若将其配置为串行 LED(Serial LED)使用,则 PWM11 和 PWM12 也只能用作串行 LED。
在 hwdef.dat 中可看到完整引脚分配,例如通道 1(PE14 TIM1_CH4)与通道 3(PE11 TIM1_CH2)标注了BIDIR(双向 DShot 能力),而通道 13/14(TIM12)标注NODMA;PWM15 为PD14 TIM4_CH3,GPIO 编号 64,其上方注释#M15亦印证 "LED 引脚" 身份。
电池监控与电源参数
板载内部电压传感器,ESC 连接器上提供外部电流传感器输入;电压传感器可承受6S LiPo(最高约 27V)。出厂默认电池参数为:
| 参数 | 默认值 | 说明 |
|---|---|---|
| BATT_MONITOR | 4 | 电池监控方式 |
| BATT_VOLT_PIN | 10 | 电压 ADC 引脚 |
| BATT_CURR_PIN | 11 | 电流 ADC 引脚 |
| BATT_VOLT_MULT | 21.12 | 电压分压倍率 |
| BATT_AMP_PERVLT | 40.2 | 电流/电压换算系数,可能需按所用 ESC 调整 |
这些默认值同样固化于 hwdef.dat(HAL_BATT_MONITOR_DEFAULT 4、HAL_BATT_VOLT_PIN 10、HAL_BATT_CURR_PIN 11、HAL_BATT_VOLT_SCALE 21.12、HAL_BATT_CURR_SCALE 40.2),ADC 输入分别接PC0 BATT_VOLTAGE_SENS与PC1 BATT_CURRENT_SENS。若换用不同电调导致电流读数不准,应在地面站中调整BATT_AMP_PERVLT。
罗盘(Compass)
该板没有内置罗盘传感器,可通过 SDA/SCL 连接器外接 I2C 罗盘。hwdef 中开启了外接罗盘探测:
define AP_COMPASS_PROBING_ENABLED 1并定义了 I2C 顺序I2C2 I2C1,引脚为PB10/PB11(I2C2)与PB8/PB9(I2C1),详见 hwdef.dat。
板载蓝牙遥测
板载蓝牙模块连接至 UART8(SERIAL8),蓝牙 ID 格式为MicoAir743-Lite-xxxxxx,无需配对即可连接(直连)。通过地面站选择对应的蓝牙串口即可获得无线 MAVLink 遥测链路。
固件刷写与升级
- 固件获取:ArduPilot 官方固件服务器上 "MicoAir743-Lite" 文件夹内下载对应机型固件。
- 首次刷写(DFU):按住BOOT 按键的同时插入 USB,进入 DFU 模式;使用任意 DFU 工具加载
XXXX_with_bl.hex固件(含 bootloader)。 - 后续升级:首次刷写完成后,可通过任意 ArduPilot 地面站软件直接更新,使用
*.apj固件文件即可。
bootloader 侧的 hwdef-bl.dat 印证了加载机制:FLASH_RESERVE_START_KB 0(bootloader 从零地址安装)与FLASH_BOOTLOADER_LOAD_KB 128(固件从 128KB 处加载),与主固件 hwdef.dat 的 128KB 预留完全对应。
小结
MicoAir743-Lite 以 STM32H743 + ICM45686 高分辨率 IMU 为核心,配合 15 路 PWM(含双向 DShot)、8 路 UART、DisplayPort OSD 与板载蓝牙遥测,是一款面向穿越机/小型载机的紧凑型飞控。刷写固件时牢记三点:首次刷写用 DFU +_with_bl.hex、后续升级用地面站 +*.apj、VTX 连接器第 1 脚为 9V 切勿接 5V 外设;配置时注意 PWM 分组协议一致性、SRXL2 需设SERIAL6_OPTIONS=4,即可快速完成部署。
【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考