- 嵌入式
- 物联网
- 机器人
- 自动驾驶
- 智能硬件
【免费下载链接】PX4-Autopilot
PX4 Autopilot Software
CUAV X25-MEGA 是 CUAV 推出的高端自动驾驶仪,面向商业系统集成、学术研究等场景设计,并从 PX4 v1.18 起获得官方支持。本文以 PX4 Autopilot 仓库中的 cuav_x25-mega.md 为主线,结合 boards/cuav/x25-mega 下的板级源码(默认配置、传感器初始化脚本、定时器映射、PWM 电压切换模块等),完整梳理该飞控的硬件规格、电气特性、接口引脚、串口映射、PWM 输出能力、冗余供电机制以及固件构建与调试方法,帮助开发者在选购、接线、装机与二次开发时快速上手。
说明:PX4 官方不生产该(或任何)飞控硬件,硬件支持与合规性问题请直接联系制造商 CUAV类别,即固件与驱动由 PX4 社区提供,硬件问题由厂商负责。
核心特性总览
X25-MEGA 的定位是"在每个维度都提供极致性能、稳定性与可靠性"的高端飞控,其核心特性包括:
- Arm® Cortex-M7® 处理器(STM32H743XI),带浮点运算单元(FPU),主频 480MHz,内置 2MB Flash,可承载更复杂的算法与模型,提升开发效率。
- 车规级 RM3100 磁力计,稳定性和抗干扰能力更佳。
- 三冗余 IMU + 双冗余气压计,分布于独立总线上;PX4 检测到传感器故障时会无缝切换至另一颗传感器,维持飞行控制可靠性。
- 独立 LDO 电源控制为每组传感器供电;减振系统过滤高频振动、降低噪声,保证测量精度,从而提升整机飞行性能。
- 集成 Microchip Ethernet PHY,支持通过以太网与机载电脑等设备高速通信。
- 双温度补偿系统分别位于 IMU 板与 FMU 板上,通过板载加热电阻将 IMU 控制在最佳工作温度。
- PWM 舵机输出电平可在 3.3V 与 5V 之间切换。
- 模块化设计,便于 DIY 载板。
这些特性在板级配置中均有对应实现:例如以太网、温度补偿、PWM 电压切换等都在 boards/cuav/x25-mega/init/rc.board_defaults 启动脚本中显式启用(详见下文各小节),而三冗余 IMU 与双气压计的驱动则在 boards/cuav/x25-mega/init/rc.board_sensors 中完成初始化。
处理器与传感器配置
主处理器
| 项目 | 规格 |
|---|---|
| 主控芯片 | STM32H743XI |
| 内核 | 32 位 Arm® Cortex®-M7,480MHz |
| 存储 | 2MB Flash,1MB RAM |
在 boards/cuav/x25-mega/nuttx-config/include/board.h 中可以看到该芯片的时钟配置:外部 16MHz 晶振(HSE),经 PLL1(16MHz/1 × 60 = 960MHz VCO,PLL1P 分频 2)得到SYSCLK/CPUCLK = 480MHz,AHB 时钟(HCLK)240MHz,APB1/APB2 各 120MHz,Flash 等待周期配置为 2。
板载传感器
| 类型 | 型号 | 挂载总线(据 rc.board_sensors) |
|---|---|---|
| Accel/Gyro | ADIS16607 | SPI1(总线 1,片选 1) |
| Accel/Gyro | IIM42652 | SPI(总线 2,片选 2,ODR 32768Hz) |
| Accel/Gyro | IIM42653 | SPI5(总线 5,片选 12) |
| Magnetometer | RM3100 | I2C(总线 4) |
| Barometer | BMP581 | I2C(总线 4) |
| Barometer | ICP-20100 | I2C(总线 4) |
三颗 IMU 分别挂载在不同的 SPI 总线上,两颗气压计与磁力计共享 I2C 总线 4,这正是"三冗余 IMU 与双冗余气压计分布在独立总线"的源码级体现。板级传感器初始化脚本 boards/cuav/x25-mega/init/rc.board_sensors 中的实际启动命令为:
adis16607 -s -b 1 start iim42652 -s -b 2 -R 2 -C 32768 start iim42653 -s -b 5 -R 12 start rm3100 -s -b 4 start bmp581 -s -b 4 start icp201xx -I -b 4 start此外,GPS1 端口(I2C1 总线)默认还启动一颗外部磁力计ist8310 -X -b 1 -R 10 start,用于兼容 Holybro Pixhawk 4 或 CUAV V5 的 GPS/罗盘模块(带灯、安全开关与蜂鸣器)。
电气数据
| 项目 | 数值 |
|---|---|
| 输入电压 | 10~18V |
| USB 供电输入 | 4.75~5.25V |
| 舵机供电轨输入 | 0~9.9V |
| 总输出最大电流 | 10A |
TELEM1/TELEM2输出限流 | 4A |
CAN1/CAN2输出限流 | 2.4A |
| 其他端口输出限流 | 1.5A |
从 default.px4board 可以看到,电源监控驱动默认同时启用了CONFIG_DRIVERS_POWER_MONITOR_INA226、INA228、INA238三种数字电源监控芯片驱动(实际运行哪一颗由参数SENS_EN_INA226/INA228/INA238决定,板级默认值为 0,见下文"供电与电压监控")。
接口一览
X25-MEGA 提供了非常丰富的外设接口:
- 16 路 PWM 舵机输出
- 1 路专用 R/C 输入(
RC IN),支持 Spektrum / DSM 与 S.Bus - 1 路模拟/PWM RSSI 输入
- 2 路 TELEM 端口(带完整流控)
- 1 路 UART4 端口
- 2 路 GPS 端口:GPS1 为完整 GPS + 安全开关端口,GPS2 为基本 GPS 端口(带 I2C)
- 1 路 USB 端口(TYPE-C)
- 1 路以太网端口:无变压器(Transformerless)应用,100Mbps
- 3 路 I2C 总线端口
- 1 路 SPI 总线:含 1 路片选线、1 路数据就绪线、1 路 SPI 复位线
- 5 路 CAN 端口:3 路 CAN1 总线复用端口 + 2 路 CAN2 总线复用端口
- 2 路电源输入端口:DroneCAN/UAVCAN 电源输入
- 2 路 AD 端口:3.3V 模拟输入、6.6V 模拟输入(暂不支持)
- 1 路专用调试端口:FMU Debug
以太网接口在板级配置中对应CONFIG_BOARD_ETHERNET=y(default.px4board),PHY 为 TI DP83848TSQ/NOPB(RMII 模式,PHY 地址 1,见 nuttx-config/include/board.h 中GPIO_ETH_RMII_*引脚定义)。
机械尺寸
购买渠道
可通过 CUAV 官方商店 购买。
组装与接线
X25-MEGA 的整机接线请参考官方《X25 MEGA Wiring Quick Start》,其中详细说明了 GPS、电源模块等关键外设的组装步骤:quick_start_cuav_x25_evo.md。
引脚定义(Pinouts)
接线前务必以官方引脚图为准,两张高清引脚图分别覆盖板卡两侧接口:
PWM 输出
X25-MEGA 支持16 路 FMU PWM 输出(MAIN)。输出能力如下:
- 输出 1-8 支持 DShot;
- 输出 9-16 不支持 DShot;
- 输出 1-7 支持 双向 DShot(Bidirectional DShot);
- 输出 8 仅支持双向 DShot 输出(无 eRPM 回传捕获)。
16 路输出分为 5 个组:
| 输出组 | 输出通道 | 定时器 |
|---|---|---|
| group1 | 输出 1-4 | Timer5 |
| group2 | 输出 5-8 | Timer4 |
| group3 | 输出 9-11 | Timer1 |
| group4 | 输出 12-14 | Timer8 |
| group5 | 输出 15-16 | Timer12 |
同一组内的所有输出必须使用相同的输出协议与速率。
从源码 boards/cuav/x25-mega/src/timer_config.cpp 可以看到定时器与通道的完整分配:Timer5_CH4/CH3/CH2/CH1对应 FMU_CH1-CH4(PI0/PH12/PH11/PH10),Timer4_CH2/CH3/CH1/CH4对应 FMU_CH5-CH8(PD13/PD14/PD12/PD15),而Timer1、Timer8、Timer12的 8 个通道在板级定义为捕获通道(FMU_CAP1-CAP8,即 PE11/PE9/PJ9/PI6/PI7/PI5/PH6/PH9)。这解释了为什么输出 9-16 不支持 DShot:它们复用自捕获定时器通道,不具备完整 DShot 信号输出能力;而输出 8(Timer4_CH4)仅支持单向的双向 DShot 输出、无法回传 eRPM,也与之对应。
PWM 输出电压切换(3.3V / 5V)
PWM 舵机输出电平可在 3.3V 与 5V 之间切换,由参数PWM_VOLT_SEL控制(pwm_voltage/parameters.yaml):
0:3.3V(默认)1:5.0V
修改该参数后需要重启(reboot_required: true)才会生效。其底层实现见 pwm_voltage/pwm_voltage.cpp:pwm_voltage_apply模块在启动时读取PWM_VOLT_SEL,非零则调用PWM_5V_VOLT_SEL(true)切到 5V,否则切到 3.3V。板级默认启动脚本 rc.board_defaults 中已加入pwm_voltage_apply start。
串口映射
X25-MEGA 的串口映射如下表(设备路径与 PX4 参数SERIAL_*_CONFIG中的设备号对应):
| UART | 设备 | 端口 |
|---|---|---|
| USART1 | /dev/ttyS0 | GPS1 |
| USART2 | /dev/ttyS1 | GPS2 |
| USART3 | /dev/ttyS2 | Debug Console |
| UART4 | /dev/ttyS3 | UART4 |
| UART5 | /dev/ttyS4 | TELEM2 |
| USART6 | /dev/ttyS5 | RC IN |
| UART7 | /dev/ttyS6 | TELEM1 |
该映射与板级配置文件一致:default.px4board 中声明了CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS0"、GPS2="/dev/ttyS1"、TEL1="/dev/ttyS6"、TEL2="/dev/ttyS4"、EXT2="/dev/ttyS3"。对应的 USART 引脚复用(AF 映射)定义在 nuttx-config/include/board.h 中,例如 USART1(GPS1)使用 PB6/PB7,UART7(TELEM1)使用 PE8/PF6 并带 RTS/CTS 流控(PF8/PE10)。
RC 输入
RC IN引脚直接连接到 FMU 的UART6 TX,这意味着遥控接收机信号经串口透传到 FMU。板级对应CONFIG_DRIVERS_RC_INPUT=y(default.px4board),USART6 的 RX/TX 引脚复用为 PC7/PC6(见 board.h)。
供电冗余与电压监控
X25-MEGA 在提供三路电源时可以实现三重供电冗余。三路电源轨分别为POWER C1、POWER C2与USB:
POWER C1与POWER C2是 DroneCAN/UAVCAN 电池接口。
正常工作最大额定条件下,系统按以下优先级使用各路电源:
- POWER C1 / POWER C2 输入(10V ~ 18V)
- USB 输入(4.75V ~ 5.25V)
电压监控:默认启用数字式 DroneCAN/UAVCAN 电池监控。
在板级层面,rc.board_defaults 设置了UAVCAN_SUB_GPS 1与UAVCAN_SUB_BAT 1,即默认订阅 DroneCAN/UAVCAN 的 GPS 与电池数据;同时SENS_EN_INA226/INA228/INA238三个数字电源监控参数的板级默认值均为 0(关闭),需要时可在 rc.board_sensors 对应的条件分支中手动开启(ina226 -X -b 1 -t 1 -k start等命令),并按 MFT 检测结果决定是否启动第二路电源监控器(HAVE_PM2)。
温度补偿(双加热系统)
双温度补偿系统是 X25-MEGA 的重要特性之一:加热电阻分别位于 IMU 板与 FMU 板上,将 IMU 维持在最适宜的工作温度。板级默认配置(rc.board_defaults)为:
param set-default SENS_EN_THERMAL 1 param set-default HEATER1_SENS_ID 6029322 param set-default HEATER1_TEMP 45 param set-default HEATER2_SENS_ID 3014698 param set-default HEATER2_TEMP 45其中HEATER1_SENS_ID 6029322对应挂载在 SPI1 上的 ADIS16607,HEATER2_SENS_ID 3014698对应挂载在 SPI5 上的 IIM42653,目标温度均设为 45°C。这与 default.px4board 中CONFIG_DRIVERS_HEATER=y、CONFIG_MODULES_TEMPERATURE_COMPENSATION=y相互印证。
构建固件
::: tip 从 PX4 v1.18 起,绝大多数用户无需自行构建该飞控的固件:当检测到对应硬件连接时,QGroundControl会自动安装预编译固件。 :::
如需手动构建 PX4,请先参考构建 PX4 固件完成环境准备,然后执行:
make cuav_x25-mega_default构建目标与板级源码一一对应:目标目录为 boards/cuav/x25-mega,默认配置由 default.px4board 定义(STM32H7 架构、arm-none-eabi工具链,包含 Ethernet、UAVCAN、DShot、GPS、双气压计、三 IMU、INA 电源监控、加热器等驱动的完整模块集)。固件原型描述见 firmware.prototype,其board_id为7004,最大镜像尺寸 1966080 字节(约 1.875MB),QGroundControl 依据该 ID 识别硬件并匹配固件。板载 bootloader 固件存放于 boards/cuav/x25-mega/extras/cuav_x25-mega_bootloader.bin。
调试端口(FMU Debug)
PX4 系统控制台(System Console)与 SWD 调试接口(SWD Debug)均通过FMU Debug端口工作。引脚定义如下:
| 引脚 | 信号 | 电压 |
|---|---|---|
| 1(红) | 5V+ | +5V |
| 2(黑) | DEBUG TX (OUT) | +3.3V |
| 3(黑) | DEBUG RX (IN) | +3.3V |
| 4(黑) | FMU_SWDIO | +3.3V |
| 5(黑) | FMU_SWCLK | +3.3V |
| 6(黑) | GND | GND |
支持的机型与机架
X25-MEGA 适用于任何可使用普通 RC 舵机或 Futaba S-Bus 舵机控制的多旋翼、固定翼、无人车(rover)或无人船(boat)。完整的支持配置列表请查阅机架参考(Airframes Reference)。
进一步阅读
- 更多硬件文档与使用说明可参考 CUAV 官方文档。
- 本仓库内的相关板级源码:板级默认参数 init/rc.board_defaults、传感器初始化 init/rc.board_sensors、默认构建配置 default.px4board、定时器/PWM 映射 src/timer_config.cpp。
- 嵌入式
- 物联网
- 机器人
- 自动驾驶
- 智能硬件
【免费下载链接】PX4-Autopilot
PX4 Autopilot Software
相关推荐
在 Wagtail 中使用 Django Ninja 构建类型化页面 API:从零配置到 OpenAPI 文档
在 Wagtail 中使用 Django Ninja 构建类型化页面 API:从零配置到 OpenAPI 文档 导读:本文讲解如何在 Wagtail 项目中集成
嵌入式物联网机器人自动驾驶智能硬件ArduPilot CUAV-X25-MEGA-ODID 飞控:OpenDroneID 固件硬件定义、引脚映射与刷写指南
ArduPilot CUAV X25 MEGA ODID 飞控:OpenDroneID 固件硬件定义、引脚映射与刷写指南 本文基于 ArduPilot 仓库中的
嵌入式无人机自动驾驶机器人固件如何用 Hubble 流量观察排查 Cilium 策略丢包的原因
如何用 Hubble 流量观察排查 Cilium 策略丢包的原因 当一个 Pod 访问另一个 Pod 超时或返回 Access denied ,而 Cilium
嵌入式物联网机器人自动驾驶智能硬件
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考