资讯动态

ArduPilot 移植指南:SkystarsF405v2 飞控板硬件定义与固件配置详解

发布时间:2026/9/15 18:26:39 来源:尧图企业网站定制
ArduPilot 移植指南SkystarsF405v2 飞控板硬件定义与固件配置详解【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot导读本文以 ArduPilot 仓库中 libraries/AP_HAL_ChibiOS/hwdef/SkystarsF405v2/ 的官方文档为主体结合同目录下的hwdef.dat、hwdef-bl.dat、defaults.parm以及hwdef/include/minimize_fpv_osd.inc等源码级配置系统讲解 SkystarsF405v2 飞控的硬件特性、串口与 RC 输入映射、OSD/VTX 支持、PWM 输出分组、电池监控、摄像头切换以及固件烧录流程。读完本文你将能够基于该板完成固件选择、外设接线、参数配置与问题排查并理解 ArduPilot 基于 hwdef 文件描述一块全新硬件的底层机制。一、板卡概览与硬件规格SkystarsF405v2 是由 Skystars 设计并生产的 FPV 飞控板硬件定义文件位于 libraries/AP_HAL_ChibiOS/hwdef/SkystarsF405v2/。其官方文档列出的核心规格如下项目规格MCUSTM32F405xx 32 位处理器主频 168 MHzIMUInvensense ICM42688IMU1气压计SPL06OSDAT7456E串口6 路 UARTPWM 输出7 路4 电机 2 舵机 1 LED从 hwdef.dat 可以看到对应的底层声明MCU STM32F4xx STM32F405xx OSCILLATOR_HZ 8000000 FLASH_SIZE_KB 1024 FLASH_RESERVE_START_KB 48 APJ_BOARD_ID AP_HW_SKYSTARSF405V2其中OSCILLATOR_HZ 8000000表示使用 8 MHz 外部晶振FLASH_SIZE_KB 1024指明 1 MB 片内 FlashFLASH_RESERVE_START_KB 48为 Bootloader 保留首个 48 KB 扇区APJ_BOARD_ID AP_HW_SKYSTARSF405V2则是固件加载时使用的板级标识也是固件目录命名的依据详见下文固件烧录一节。该板的 IMU 通过 SPI1 挂载hwdef.dat中声明为SPIDEV imu1 SPI1 DEVID1 GYRO1_CS MODE3 1*MHZ 8*MHZ IMU Invensensev3 SPI:imu1 ROTATION_YAW_180即 ICM42688 使用 Invensensev3 驱动安装旋转为ROTATION_YAW_180。气压计 SPL06 则挂在 I2C1 上BARO SPL06 I2C:1:0x76 define AP_BARO_SPL06_ENABLED 1板载数据存储Dataflash通过 SPI3 访问OSD 芯片 AT7456E 通过 SPI2 访问详见OSD 支持一节。二、引脚布局Pinout板上各引脚的含义见官方文档附图 SkystarsF405v2Top.pngSkystarsF405v2 顶部引脚图标注了电机输出、UART 串口、SBUS、I2C、VTX 连接器与 BOOT 按钮等关键接口结合图与 hwdef.dat可以确认板上的关键资源分布电机/舵机输出M1~M4 电机输出含独立焊盘Ser1/Ser2 两个扩展 PWM 输出以及 LED 输出RC 输入USART2 上的 SBUS 焊盘以及 DJI HD 连接器内引出的 SBUS 信号串口与电源UART5GPS、UART6VTX/HD 连接器等I2CSDA/SCL 焊盘用于外接罗盘等 I2C 设备USB-C用于固件烧录、MAVLink 调试BOOT 按钮按住进入 DFU Bootloader 模式配合hwdef-bl.dat定义的APJ_BOARD_ID AP_HW_SKYSTARSF405V2完成首次刷写摄像头切换标有 CAM1 与 CAM2 的连接器由 GPIO 81 控制。三、串口映射与 UART 布局官方文档给出 6 路 UART 的默认功能映射其中 Rn 为 UARTn 的接收引脚Tn 为发送引脚串口号硬件外设默认用途SERIAL0USBMAVLink2SERIAL1USART1空闲DMA 可用SERIAL2USART2RCINDMA 可用SERIAL3USART3ESC 遥测ESCTelemetrySERIAL4UART4空闲SERIAL5UART5GPSSERIAL6USART6MSP DisplayPort对应地hwdef.dat 中通过SERIAL_ORDER定义了串口枚举顺序并为每个串口设置了默认协议SERIAL_ORDER OTG1 USART1 USART2 USART3 UART4 UART5 USART6 define DEFAULT_SERIAL1_PROTOCOL SerialProtocol_None define DEFAULT_SERIAL2_PROTOCOL SerialProtocol_RCIN define DEFAULT_SERIAL3_PROTOCOL SerialProtocol_ESCTelemetry define DEFAULT_SERIAL4_PROTOCOL SerialProtocol_None define DEFAULT_SERIAL5_PROTOCOL SerialProtocol_GPS define DEFAULT_SERIAL6_PROTOCOL SerialProtocol_MSP_DisplayPort这些枚举值定义在 libraries/AP_SerialManager/AP_SerialManager.h 中例如SerialProtocol_GPS 5、SerialProtocol_ESCTelemetry 16、SerialProtocol_RCIN 23、SerialProtocol_MSP_DisplayPort 42。这意味着飞行中可通过地面站修改对应SERIALn_PROTOCOL参数重新分配串口用途。从引脚声明看USART1PA9/PA10与 USART2PA2/PA3标记为 DMA 可用而 USART3、UART4、UART5、USART6 均带有NODMA标记即这些串口未启用 DMA 传输。这一区别在需要高吞吐例如 USART6 跑 MSP DisplayPort 视频叠加数据时值得注意——NODMA串口在满负载下可能占用更多 CPU。四、RC 输入配置官方文档说明默认 RC 输入配置在 USART2 上。接收机协议通过SERIAL2_PROTOCOL参数默认值为 23即 RCIN选择。若要将 RC 输入迁移到其他串口只需把该串口的SERIALn_PROTOCOL设为 23并把SERIAL2_PROTOCOL改成其他协议即可。对于单向 RC 协议如 SBUS 输入只需 USART2 的 RX 引脚PA3对于需要回传的双向协议则还需要用到 USART2 的 TX 引脚PA2。官方文档给出的典型参数组合如下SERIAL2_PROTOCOL应设为 23RCINFPort要求SERIAL2_OPTIONS设为 15CRSF要求SERIAL2_OPTIONS设为 0SRXL2要求SERIAL2_OPTIONS设为 4且只连接 TX 引脚。SERIAL2_OPTIONS的位掩码含义可以在 libraries/RC_Channel/RC_Channels_VarInfo.h 的参数元数据中查到其中 bit 3 即 FPort Pad对应值 8与 SBUS 反相等位组合后得到 15bit 4 为 Log RC input bytes对应值 16。这些选项用于适配不同接收机的电平与帧格式。此外SBUS 通过硬件反相直接连接到USART_RX2PA3同时引出到独立焊盘和 DJI HD 连接器内即插即用无需额外反相器。五、OSD 与 VTX 支持SkystarsF405v2 同时支持两种视频叠加方案传统 OSD基于板上 AT7456E 芯片OSD_TYPE设为 1MAX7456 驱动。在 hwdef.dat 中对应SPIDEV osd SPI2 DEVID1 OSD1_CS MODE0 10*MHZ 10*MHZ define OSD_ENABLED 1 define HAL_OSD_TYPE_DEFAULT 1 ROMFS_WILDCARD libraries/AP_OSD/fonts/font*.binOSD_TYPE的取值定义在 libraries/AP_OSD/AP_OSD.cpp0:None, 1:MAX7456, 2:SITL, 3:MSP, 4:TXONLY, 5:MSP_DISPLAYPORT。HAL_OSD_TYPE_DEFAULT 1即在编译期把默认值锁定为 MAX7456。ROMFS_WILDCARD负责把字体文件打包进固件。MSP DisplayPort通过 USART6HD VTX 连接器将 OSD 数据以 MSP 协议发送给 DJI 高清图传。defaults.parm中还有OSD_TYPE2 5即第二路 OSD 使用 MSP_DISPLAYPORT。板上 SH1.0-6P 连接器支持 DJI Air Unit / HD VTX 连接协议默认 DisplayPort。注意该连接器的 1 号引脚输出 10V 电压切勿将其接到不能承受该电压的外设上以免烧毁设备。六、PWM 输出与 DShotSkystarsF405v2 支持最多 7 路 PWM 或 DShot 输出M1~M4 电机输出电机连接器与独立焊盘均有引出Ser1、Ser2 两个扩展 PWM 焊盘以及一路 LED 输出。PWM 通道划分为 4 个组组通道对应定时器资源来自 hwdef.datgroup1PWM 1-2TIM1PB0/PB1M1/M2group2PWM 3-4TIM2PB10/PB11M3/M4group3PWM 5-6TIM4PB6/PB7Ser1/Ser2group4PWM 7TIM8PC8LED同一组内的通道必须使用相同的输出速率只要组内任一通道使用 DShot则该组所有通道都必须使用 DShot。这是由 STM32 定时器硬件共享时基决定的配置SERVOn_RATE、SERVOn_FUNCTION与MOT_PWM_TYPE时需要遵循这一约束。七、电池监控板载电压传感器接在 ESC 连接器上同时提供外部电流传感器输入。电压传感器最高支持 6S LiPo。官方文档给出的默认电池参数如下参数默认值说明BATT_MONITOR4使用板载模拟电压/电流传感器BATT_VOLT_PIN10电压采样 ADC 引脚BATT_CURR_PIN11电流采样 ADC 引脚BATT_VOLT_MULT11.0电压分压倍率BATT_AMP_PERVLT25.0电流-电压换算系数安培/伏特这些默认值同样固化在 hwdef.dat 中PC0 BATT_VOLTAGE_SENS ADC1 SCALE(1) define HAL_BATT_VOLT_PIN 10 define HAL_BATT_VOLT_SCALE 11.0 PC1 BATT_CURRENT_SENS ADC1 SCALE(1) define HAL_BATT_CURR_PIN 11 define HAL_BATT_CURR_SCALE 25.0 define HAL_BATT_MONITOR_DEFAULT 4对应物理引脚为 ADC1 上的 PC0电压与 PC1电流。若外接电流计量程与板上默认不匹配应在地面站中按实际分流器规格调整BATT_AMP_PERVLT。八、模拟 RSSI 输入模拟 RSSI 使用 ADC 引脚 12对应参数RSSI_ANA_PIN。hwdef.dat中声明为PC2 RSSI_ADC ADC1 define BOARD_RSSI_ANA_PIN 12将接收机输出的模拟 RSSI 电压接入对应焊盘并在地面站设置RSSI_TYPE为模拟输入、RSSI_ANA_PIN为 12 即可使用。九、罗盘CompassSkystarsF405v2没有板载罗盘需要通过 SDA/SCL 焊盘外接 I2C 罗盘。hwdef.dat中关闭了内部 I2C 探测掩码并开启对所有外部罗盘类型的探测define AP_COMPASS_PROBING_ENABLED 1 define HAL_I2C_INTERNAL_MASK 0 define HAL_COMPASS_AUTO_ROT_DEFAULT 2HAL_I2C_INTERNAL_MASK 0表示不屏蔽任何外挂 I2C 设备地址固件启动时会自动枚举 I2C 总线上的罗盘HAL_COMPASS_AUTO_ROT_DEFAULT 2则是罗盘安装方向相关的默认自动旋转配置。安装外置罗盘后建议在地面站执行罗盘校准并检查COMPASS_ORIENT。十、摄像头切换Camera ControlGPIO 81 控制 CAM1 与 CAM2 两个摄像头连接器之间的切换将该 GPIO 拉低会从 CAM1 切换到 CAM2。默认情况下RELAY2 被配置为控制该引脚并将 GPIO 置高保持 CAM1 输出。hwdef.dat中的声明为PC3 CAM_SW OUTPUT GPIO(82) LOW define RELAY2_PIN_DEFAULT 81RELAY2_PIN_DEFAULT 81是RELAY2_PIN参数的编译期默认值相关机制实现在 libraries/AP_Relay/AP_Relay.cpp未定义时默认取 -1表示未配置。实际控制时通过地面站切换RELAY2的状态即可在 CAM1/CAM2 之间选择视频源。十一、固件烧录与更新官方文档给出的固件烧录流程分两个阶段首次烧录Bootloader 与固件按住板上 BOOT 按钮的同时插入 USB使板卡进入 DFU 模式使用任意 DFU 烧录工具加载with_bl.hex固件该文件包含 Bootloader 与应用程序。ArduPilot 固件发布站点在子目录SkystarsF405v2下提供对应文件该目录名即对应 hwdef-bl.dat 中的APJ_BOARD_ID AP_HW_SKYSTARSF405V2。后续更新OTA/地面站更新Bootloader 就位后可使用任意 ArduPilot 地面站软件如 Mission Planner直接刷写*.apj固件文件完成升级无需再进入 DFU。hwdef-bl.dat与主固件hwdef.dat的区别在于 Flash 布局Bootloader 从 0 偏移开始FLASH_RESERVE_START_KB 0并把应用程序放在 48 KB 之后FLASH_BOOTLOADER_LOAD_KB 48同时 Bootloader 固件将所有引脚默认拉低DEFAULTGPIO OUTPUT LOW PULLDOWN以避免上电瞬间的 ESD 问题。十二、固件体积优化FPV 板专用裁剪配置SkystarsF405v2 只有 1 MB Flash而 ArduPilot 现代固件体积较大。为此hwdef.dat 通过include ../include/minimize_fpv_osd.inc引入专为 FPV/OSD 用途设计的裁剪配置该文件位于 libraries/AP_HAL_ChibiOS/hwdef/include/minimize_fpv_osd.inc。该 include 文件的主要策略包括移除光流AP_OPTICALFLOW_ENABLED 0、智能电池 SMBUS 驱动、内燃机AP_ICENGINE_ENABLED 0、高级失效保护AP_ADVANCEDFAILSAFE_ENABLED 0、精密降落AC_PRECLAND_ENABLED 0等 FPV 场景用不到的模块电机框架类型默认只保留四旋翼/六旋翼/八旋翼AP_MOTORS_FRAME_QUAD_ENABLED 1等其余框架关闭测距仪仅保留 Benewake TF02/TF03/TFmini/TFminiPlus 系列驱动强制保留 Tramp 图传协议与 CRSF 遥测文本支持因为它们在 FPV 应用中至关重要。这些裁剪由构建脚本依据 hwdef 自动生成编译宏属于编译期特性开关用户无法在参数中直接修改只能通过重新编译固件调整。另外defaults.parm 为板卡提供了出厂级默认参数包括# setup for Neopixel SERVO7_FUNCTION 120 OSD_TYPE2 5其中SERVO7_FUNCTION 120将第 7 路 PWM 输出PC8/TIM8即 LED 通道配置为 Neopixel LED 功能HAL_DEFAULT_INS_FAST_SAMPLE 1等宏则在内核层面对齐采样。这些默认参数会在首次擦除参数表后自动写入是理解板上 LED 与第二路 OSD 初始行为的关键。十三、常见问题排查建议接收机无信号确认SERIAL2_PROTOCOL 23并按接收机协议核对SERIAL2_OPTIONSFPort15、CRSF0、SRXL24SRXL2 需确认 TX 引脚已连接。OSD 不显示确认OSD_TYPE 1MAX7456若使用 DJI 高清系统确认SERIAL6_PROTOCOL 42MSP DisplayPort且 HD VTX 连接器接线正确同时注意 1 号引脚 10V 电压约束。电调/电机不转或抖动检查同一 PWM 组内输出速率是否一致是否混用了 DShot 与普通 PWM见PWM 输出一节的组约束。电池电压/电流读数异常核对BATT_VOLT_MULT与BATT_AMP_PERVLT是否匹配实际分压电阻与分流器。外置罗盘识别不到确认接线到 SDA/SCL检查 I2C 地址是否与其他设备冲突本板无板载罗盘需在参数中完成罗盘方向与校准设置。无法进入 DFU先按住 BOOT 按钮再插入 USB若仍无法识别检查 USB 线是否为数据线。结语SkystarsF405v2 的官方文档虽然精炼但其背后是一整套以hwdef.dat为中心的硬件抽象机制从串口协议枚举libraries/AP_SerialManager/AP_SerialManager.h、OSD 后端枚举libraries/AP_OSD/AP_OSD.cpp到继电器默认引脚libraries/AP_Relay/AP_Relay.cpp与 RC 协议选项位掩码libraries/RC_Channel/RC_Channels_VarInfo.h均可在源码中逐一印证。理解这份 hwdef 目录不仅能让你熟练配置 SkystarsF405v2也为阅读乃至移植 ArduPilot 到其他飞控硬件提供了可复用的方法论。【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价