ArduPilot SpeedyBeeF405WING 飞控硬件支持与配置指南引脚映射、PWM 分组与刷写实操【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilotSpeedyBeeF405WING 是 SpeedyBee 推出的一款面向固定翼Wing机型的高集成度飞控在 ArduPilot 仓库中以完整的硬件定义hwdef方式获得一级支持。本文以 libraries/AP_HAL_ChibiOS/hwdef/SpeedyBeeF405WING/Readme.md 为骨架结合 hwdef.dat、defaults.parm 等源码级文件系统讲解该板的 UART 映射、RC 输入方案、PWM 输出分组规则、电池监控默认参数、OSD 与 VTX 电源控制以及从 DFU 刷写 Bootloader 到 Mission Planner 升级的完整流程。读完本文你将能在 ArduPlane/ArduCopter 固件中正确配置并使用这块飞控的每一个外设接口。SpeedyBeeF405WING 飞控引脚图硬件概览与核心规格SpeedyBeeF405WING 是一块面向 FPV 固定翼与垂起VTOL应用的 F405 飞控其设计重点在于一块板集成图传、舵机、动力监控与 OSD。官方 Readme 给出的核心规格如下类别规格处理器STM32F405168 MHz1 MB Flash 32 位处理器集成 AT7456E OSD传感器ICM42688P 加速度计/陀螺仪SPL06 气压计电源输入2S–6S LiPo带电压监测电流监测 90A 连续 / 215A 峰值BEC9V/12V/5V、1.8A图传供电GPIO 控制4.9V/6V/7.2V、4.5A舵机5V、2.4A板载与外设输出与接口12 路 PWM 输出全部支持 DShotPWM12 默认作串行 LED 输出1 路 RC 输入5 路 UART 1 路板载无线模块 UARTI2C 接口外接罗盘、空速计microSD 卡槽USB-C从仓库的硬件定义文件 hwdef.dat 可以进一步确认底层实现MCU 为STM32F4xx STM32F405xx外部晶振 8 MHzOSCILLATOR_HZ 8000000Flash 预留 64 KB 给 Bootloader/OSD/存储后仍有 1 MB 可用FLASH_RESERVE_START_KB 64、FLASH_SIZE_KB 1024存储区大小 15360 字节HAL_STORAGE_SIZE。板级 ID 在 Tools/AP_Bootloader/board_types.txt 中注册为AP_HW_SpeedyBeeF405WINGID 1106这是刷写正确固件与 Bootloader 的判别依据。引脚图与接线图官方 Readme 提供了两张官方图均存放在板级目录下SpeedyBeeF405WING.png引脚布局图标注了电源4V5、GND、Vx、UARTTX1–TX4 / RX1–RX4、SBUS、PWM/舵机接口S1–S11、SDA/SCLI2C、LED1–LED4、空速/气压AIR以及 NC 预留引脚。SpeedyBeeF405WING_wiring.png典型接线图展示了 GPS、数字/模拟图传Digital VTX / Analog VTX、ELRS/Crossfire 接收机、SBUS 接收机、空速计、模拟摄像头、USB 延长线与 Boot 调试口的连接方式。SpeedyBeeF405WING 典型接线图接线时注意9V 图传供电引脚默认由 GPIO 控制见下文VTX 电源控制而舵机 BEC 的 4.9V/6V/7.2V 电压等级需要按舵机需求设置避免供电电压不匹配。UART 映射与串口规划Readme 明确引脚图上的 Rn/Tn 分别表示 UARTn 的接收/发送引脚。该板的串口映射与SERIAL_ORDER OTG1 USART1 USART2 USART3 UART4 UART5 USART6一致串口对应外设说明SERIAL0USB地面站连接与日志下载SERIAL1USART1串行 RC 输入支持 DMA适合 CRSF/ELRS 等双向串行协议SERIAL2USART2RX 引脚连接了反相 SBUS RC 输入设置BRD_ALT_CONFIG1后可作普通 UARTSERIAL3UART3GPSTX 支持 DMASERIAL4UART4用户可用TX 支持 DMASERIAL5UART5用户可用位于 DJI 天空端连接器上TX 支持 DMASERIAL6USART6板载无线模块MAVLink2 数传从 hwdef.dat 可看到底层引脚分配USART1 为 PA9/PA10USART2 为 PA2/PA3其中 PA3 同时配置为TIM9_CH2 RCININT PULLDOWN LOW的反相 RC 输入引脚USART3 为 PC10/PC11UART4 为 PA0/PA1UART5 为 PC12/PD2USART6 为 PC6/PC7 且默认波特率 115200DEFAULT_SERIAL6_BAUD 115。注意 UART3/UART4/UART5 的 RX 引脚均标注NODMA而 TX 支持 DMA——这决定了高波特率外设如 GPS 大流量输出的接线建议。板载无线模块默认按 defaults.parm 配置为SERIAL6_PROTOCOL 2MAVLink2SERIAL4_PROTOCOL -1禁用SERIAL1_PROTOCOL 23RC 协议自动/ELRS 接收机。RC 输入SBUS 与串行协议CRSF/ELRS该板默认把 RC 输入接到 SBUS 引脚上反相后送入 UART2_RX因此原生支持所有非串行 RC 协议SBUS、PPM、DSM 等。关键限制与变通串行协议CRSF、ELRS 等不能接 SBUS 引脚需要接到 USART1即 SERIAL1的 TX 与 RX 引脚上这与 defaults.parm 中SERIAL1_PROTOCOL 23的默认设置吻合。Fport也可接入 USART1 的 TX 引脚但必须外接双向反相器并设置SERIAL1_OPTION 4HalfDuplex半双工。若要把 UART2 释放为普通串口需设置BRD_ALT_CONFIG 1替代硬件配置此时 USART2 的 RX/TX 均可作常规 UART 使用。该参数属于板级 GPIO/串口重映射机制实现在 libraries/AP_HAL_ChibiOS/UARTDriver.cpp支持 RX/TX/RTS/CTS 引脚经BRD_ALT_CONFIG重映射与 libraries/AP_HAL_ChibiOS/GPIO.cpp替代配置表中。PWM 输出12 通道与 5 组共享约束SpeedyBeeF405WING 提供最多 12 路 PWM 输出全部支持 DShot且 PWM12 默认配置为串行 LEDWS2812输出defaults.parm 中NTF_LED_LEN,4与SERVO12_FUNCTION,120。PWM 通道划分为 5 个定时器组组通道定时器组1PWM 1, 2TIM4PB7/PB6组2PWM 3, 4TIM3PB0/PB1组3PWM 5–7TIM8PC8/PC9/PB14组4PWM 8–10TIM2PA15/PB10/PB11组5PWM 11, 12TIM1PB15/PA8两组核心使用约束Readme 明示且与 ArduPilot 定时器组机制一致同组通道必须使用相同的输出速率同组任一通道使用 DShot则同组所有通道都必须使用 DShot因为定时器组共享时钟与协议。PWM12 默认被占用作 LED 输出如果需要使用 PWM11就必须把 PWM12 重新分配为普通 PWM 输出修改SERVO12_FUNCTION或者干脆不用 PWM12否则通道 11/12 所在的组 5 会因速率/协议不一致而无法正常工作。底层定义见 hwdef.dat 中TIM4/TIM3/TIM8/TIM2/TIM1的 PWM 引脚行其中 PWM1 与 PWM4 标注了BIDIR支持双向 DShot适合需要遥测回传的电调如 BLHeli_32 双向 DShot。电池监控默认参数已预置板载电压/电流传感器支持 2S–6S 电池电流量程 90A 连续、215A 峰值。Readme 给出的默认电池参数参数值含义BATT_MONITOR4电池监控使能电压电流传感器BATT_VOLT_PIN10电压采样引脚对应 PC0ADC1BATT_CURR_PIN11电流采样引脚对应 PC1ADC1BATT_VOLT_MULT11.5电压分压倍率BATT_AMP_PERVLT50电流/电压换算系数50A 每伏这些默认值在源码层面对应 hwdef.dat 中的HAL_BATT_MONITOR_DEFAULT 4、HAL_BATT_VOLT_PIN 10、HAL_BATT_CURR_PIN 11、HAL_BATT_VOLT_SCALE 11.05matched to PDB board与分电板匹配与HAL_BATT_CURR_SCALE 50。也就是说拿到板子接上电池后电压/电流读数即可直接用通常无需再手工校准若读数偏差明显可在此基础上微调BATT_VOLT_MULT与BATT_AMP_PERVLT。罗盘Compass与 I2C 外设该板没有板载罗盘需要外接罗盘接在 SDA/SCL 焊盘对应的 I2C1 总线上PB8/PB9。硬件定义中罗盘相关配置值得注意AP_COMPASS_PROBING_ENABLED 1启动时在 I2C 总线上探测所有可能的外部罗盘型号无需手工指定型号HAL_I2C_INTERNAL_MASK 0I2C 总线全部视为外部设备HAL_COMPASS_AUTO_ROT_DEFAULT 2罗盘自动安装方向默认 180° 翻转对应板子背面朝上安装的常见场景。同一条 I2C 总线也可挂载外置空速计等 I2C 设备Readme 中明确external compass, airspeed, etc.。OSD 支持板载 AT7456E OSDSPI2 总线见 hwdef.dat 中OSD_ENABLED 1、HAL_OSD_TYPE_DEFAULT 1。使用方法内置 OSD设置OSD_TYPE 1MAX7456 驱动即可直接在模拟图传画面中叠加 HUD。外置 OSDDJI / DisplayPort通过 UART5 或其他空闲串口走 MSP OSD 协议。值得注意的是hwdef.dat 引入了 minimize_fpv_osd.inc这是一套专门为 FPV/OSD 用途低 Flash 板卡准备的裁剪方案——关掉光学流量、大部分测距仪后端仅保留 Benewake TF 系列、大部分电池 SMBUS 后端、燃油发动机、高级失效保护、精确降落等同时强制保留 Tramp 图传协议与 CRSF 遥测文本支持从而在 1 MB Flash 内为固定翼 FPV 腾出空间。VTX 电源控制图传供电9V BEC由GPIO 81控制将该 GPIO 拉高即可切断 9V 引脚的供电输出用于待机省电或强制图传断电重启。底层对应 hwdef.dat 中的PC13 PINIO1 OUTPUT GPIO(81) LOWPINIO1且在 hwdef-bl.dat 中同样配置保证 Bootloader 阶段该引脚不悬空、图传供电状态确定。实际使用中可通过RELAY或 PINIO 相关参数将其绑定到遥控器开关或自动任务动作。固件刷写流程固件可以从 ArduPilot 官方固件服务器获取目录名为SpeedyBeeF405Wing。刷写分两步首次刷写DFU 模式按住 Boot 按钮插入 USB 进入 DFU 模式然后用任意 DFU 工具加载SpeedyBeeF405Wing_bl.hex即该板的 Bootloader 固件构建来源为 hwdef-bl.dat。后续升级Bootloader 就位后直接用Mission Planner等地面站完成固件更新即可无需再进 DFU。需要留意两点Bootloader 与固件的板级 ID 必须一致均为AP_HW_SpeedyBeeF405WING否则无法正常引导DFU 刷写时不要把 hwdef-bl.dat 与正常固件混淆——前者是引导程序加载偏移FLASH_BOOTLOADER_LOAD_KB 64后者才是用户固件。总结SpeedyBeeF405WING 在 ArduPilot 中的支持属于开箱即用级别电池监控、板载 OSD、VTX 电源开关、SBUS RC 输入等关键功能均已通过 hwdef.dat 与 defaults.parm 预置。动手配置时最容易踩坑的三个点依次是PWM 组内协议/速率一致性尤其组5的 PWM12 LED 占用、SERIAL1 才是 CRSF/ELRS 的正确接入点、以及 9V 图传供电受 GPIO 81 控制。理解了本文的 UART 映射与 PWM 分组规则再对照引脚图接线即可在 ArduPlane/ArduCopter 上快速完成一块 SpeedyBeeF405WING 的完整装机与调试。【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考