恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
ArduPilot HEEWING F405 硬件定义详解:UART 映射、DShot 分组、电池监控与 DFU 烧录实战
首页
资讯中心
/
ArduPilot HEEWING F405 硬件定义详解:UART 映射、DShot 分组、电池监控与 DFU 烧录实战
ArduPilot HEEWING F405 硬件定义详解:UART 映射、DShot 分组、电池监控与 DFU 烧录实战
发布时间:2026/9/14 8:48:27
ArduPilot HEEWING F405 硬件定义详解UART 映射、DShot 分组、电池监控与 DFU 烧录实战【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot本文以 ArduPilot 仓库中 HEEWING-F405 板级硬件定义目录 中的 README 为主体结合 hwdef.dat 硬件描述文件与 defaults.parm 默认参数系统讲解 HEEWING F405 飞行控制器的 UART 映射、RC 输入双向切换、DShot PWM 分组规则、电池监控参数与固件烧录流程。读完本文你可以在 ArduPilot 下正确配置该板的串口、飞控遥控链路、OSD 与电池参数并顺利完成从 DFU 首次烧录到空中升级的整个流程。1. 硬件构成与板级基本信息HEEWING F405 是 HEEWING 生产的一款飞行控制器随其 Ranger-T1 VTOL RTF 整机出货。其硬件特征在 README 中完整列出STM32F405 微控制器ICM42688 惯性测量单元IMUSLP06 气压计无板载数据记录dataflash存储MAX7456 OSD 芯片4 路 UART9 路 PWM 输出hwdef.dat 补充了几个 README 未展开的关键信息它们决定了编译产物与烧录行为MCU STM32F4xx STM32F405xx芯片型号声明FLASH_SIZE_KB 1024与FLASH_RESERVE_START_KB 64整片 1MB Flash前 64KB 预留给 bootloader固件从 64KB 处启动——这正是必须烧录 with_bl.hex的原因见第 8 节STORAGE_FLASH_PAGE 1/define HAL_STORAGE_SIZE 15360参数存储位于 Flash 第 1 页容量 15360 字节APJ_BOARD_ID AP_HW_HEEWING_F405APJ 固件包中的板型标识。在 board_types.txt 中AP_HW_HEEWING_F405对应的数值板型 ID 为 1119SPIDEV icm42688 SPI1 DEVID1 IMU_CS MODE3 1MHZ 8MHZIMU 挂在 SPI1 上最高 8MHz 时钟并使用ROTATION_ROLL_180_YAW_90安装旋转define HAL_DEFAULT_INS_FAST_SAMPLE 1表示默认开启快速 IMU 采样BARO SPL06 I2C:0:0x77SLP06 气压计位于 I2C1 总线地址 0x77AUTOBUILD_TARGETS Plane构建系统会自动为这块板子编译 ArduPlane 目标。值得注意的是该板通过 minimize_fpv_osd.inc 做了低 Flash 优化注释说明这是为 1MB Flash 的 FPV/OSD 板裁剪驱动的典型做法——保留 NMEA GPS、四旋翼/六旋翼/八旋翼电机帧、Benewake TF 系列测距驱动与 Tramp 视频链路支持同时关闭光流、SBUS 输出、风冷发动机、高级失败保护Advanced Failsafe、精确降落、SMBUS 电池等较少用驱动以腾出 Flash 空间。HEEWING-F405v2 变体仓库中还存在 HEEWING-F405v2 目录其 hwdef 直接include基础版仅追加了三行将 PC14 声明为FLASH_CS、新增一个 32MHz 的 SPI2 数据闪存 SPIDEV并define HAL_LOGGING_DATAFLASH_ENABLED 1。也就是说v2 版本补上了基础版缺失的板载 dataflash 记录能力其余硬件定义与基础版完全一致。2. UART 映射SERIAL 端口与物理 UART 的对应关系这是配置该板时最容易出错的部分因为 ArduPilot 的 SERIALn 逻辑编号与板壳丝印的 UARTn 编号并不相同。README 给出的映射表如下Rn/Tn 引脚见上方引脚图ArduPilot 串口物理 UART板壳丝印DMA典型用途SERIAL0USB (OTG1)——GCS / 调试SERIAL1UART3UART1支持外设SERIAL2UART1UART2支持外设 / FrSky 遥测SERIAL3UART5GPSRX 无 DMAGPSSERIAL5UART6VTX无视频发射机仅 TXSERIAL6UART2RCIN支持RC 输入默认仅 RX这一映射在 hwdef.dat 中有逐脚对应声明SERIAL_ORDER OTG1 USART3 USART1 UART5 UART4 USART6 USART2一行定义了 06 号逻辑串口的排列顺序。逐条核对USART3PC10/PC11丝印 UART1→ SERIAL1支持 DMAUSART1PA9/PA10丝印 UART2→ SERIAL2支持 DMAUART5PC12/PD2GPS 座→ SERIAL3。注意 RX 引脚 PD2 被声明为NODMATX/RX 均可用于 GPS 数据UART4PA0/PA1→ SERIAL4声明为NODMA且注释为 NC未引出实际不可用USART6PC6/PC7→ SERIAL5TX/RX 均为NODMA。README 说明其定位为 VTX 口且TX-only即典型用法只用作发送USART2PA2/PA3→ SERIAL6即 RCIN详见下一节。3. RC 输入与 BRD_ALT_CONFIG 双向切换RC 输入配置在 4 针 RCIN 连接器的 UART2_RX 引脚上支持全部串口 RC 协议CRSF、ELRS、SBUS 等。默认配置下它只有接收能力hwdef 中 PA3 被声明为PA3 TIM9_CH2 TIM9 RCININT PULLDOWN即用作 RCIN 中断输入PA2USART2_TX虽然物理存在但默认不参与 RC 通道。若需要双向协议例如 CRSF 回传遥测到遥控器设置参数BRD_ALT_CONFIG1即可。其原理是 hwdef.dat 中为 PA3 提供了替代配置# alternative with PA3 as USART2_RX PA3 USART2_RX USART2 ALT(1) define DEFAULT_SERIAL6_PROTOCOL SerialProtocol_RCINALT(1)表示该引脚定义在BRD_ALT_CONFIG1时生效此时 PA3 从 RCININT 切换为 USART2_RXSERIAL6 成为完整的 RX/TX 串口。这个机制由 ChibiOS HAL 通用实现GPIO.cpp 维护由 BRD_ALT_CONFIG 选择的替代配置表并在启动时按当前参数值重新选择引脚功能UARTDriver.cpp 则允许 RX/TX/RTS/CTS 引脚经 BRD_ALT_CONFIG 重映射。DEFAULT_SERIAL6_PROTOCOL SerialProtocol_RCIN保证 SERIAL6 默认按 RC 输入协议初始化。FrSky 遥测README 说明 FrSky 遥测可使用空闲串口 SERIAL1 或 SERIAL2 的发送引脚实现即把 D 端口设备如 D16 接收机接到这两个端口之一利用其 TX 引脚回传传感器数据。4. OSD 支持HEEWING F405 通过 OSD_TYPE 参数取值 1MAX7456 驱动启用 OSD对应 hwdef 中的SPIDEV osd SPI2 DEVID2 OSD_CS MODE0 10*MHZ 10*MHZ define OSD_ENABLED 1 define HAL_OSD_TYPE_DEFAULT 1 ROMFS_WILDCARD libraries/AP_OSD/fonts/font0.bin即 MAX7456 挂在 SPI2 上片选 PC4默认 OSD 类型被直接写死为 1且板级定义强制把 font0 字体打进 ROMFS。结合 minimize_fpv_osd.inc 中在 1MB Flash 限制下强制启用 Tramp 支持与 CRSF 遥测文本支持的定义可以看出这块板子被明确定位为 FPV 用途OSD、视频链路Tramp与双向 RC 遥测都被优先保证。5. PWM 输出与 DShot 分组规则该板支持最多 9 路 PWM 输出输出能力在 hwdef.dat 中逐脚声明通道引脚定时器DShot 双向备注M1PB7TIM4_CH2BIDIR支持 DShot 双向遥测M2PB6TIM4_CH1—README 称支持dat 中未标 BIDIRM3PB1TIM3_CH4—与 I2C2_RX 共享不建议用 DShotM4PB0TIM3_CH3—与 I2C2_RX 共享不建议用 DShotM5PC9TIM8_CH4BIDIR支持 DShot 双向遥测M6PC8TIM8_CH3—M7PB15TIM1_CH3N—M8PB14TIM1_CH2N—M9PA8TIM1_CH1BIDIR支持 DShot 双向遥测M10PA15TIM2_CH1NODMA注释 no output无实际输出README 的核心规则有三条均可与 hwdef 交叉印证PWM 分为 4 组M1/M2 在第 1 组、M3/M4 在第 2 组、M5/M6 在第 3 组、M7-M9 在第 4 组。从定时器声明可以推断出分组的硬件根源同组通道共用同一个定时器TIM4、TIM3、TIM8、TIM1 各带一路或两路输出因此同一组必须共用同一个输出时钟/速率同组速率一致DShot 会传染整组如果组内任一通道使用 DShot则整组都必须使用 DShot——这正是同组同定时器这一硬件约束的直接推论M3/M4 不推荐 DShothwdef 注释明确写出 shared with I2C2_RX, dshot not advised因为 PB0/PB1 与 I2C2 总线连接外部罗盘/传感器的总线复用引脚DShot 的高速边沿切换会与 I2C 通信互相干扰。另外README 称 M1-M2、M5-M6、M9 支持双向 DShotbidirectional DShot即 DShot 遥测回传从 hwdef 源码看BIDIR标记实际出现在 M1、M5、M9 三个引脚上配置双向遥测时以 dat 文件的BIDIR声明为准。6. 电池监控板上内置电压与电流传感器电流传感器量程最大 130A电压传感器可支持最高 6S 锂聚合物电池。正确的电池参数组合README 原文给出为BATT_MONITOR 4ANALOG 类型BATT_VOLT_PIN 10BATT_CURR_PIN 11BATT_VOLT_MULT 7.71BATT_AMP_PERVLT 26.67这些值在 hwdef.dat 中都有板级默认值的呼应PC0 BATT_VOLTAGE_SENS ADC1 SCALE(1) PC1 BATT_CURRENT_SENS ADC1 SCALE(1) define HAL_BATT_MONITOR_DEFAULT 4 define HAL_BATT_VOLT_PIN 10 define HAL_BATT_VOLT_SCALE 7.71 define HAL_BATT_CURR_PIN 11 define HAL_BATT_CURR_SCALE 26.7即电压接 ADC1 的 PC0、电流接 ADC1 的 PC1监控类型、引脚号、电压倍数7.71分压比决定与安培/伏特系数README 记 26.67dat 取 26.7在出厂定义中已预设升级参数后无需再手动修改。7. 罗盘、气压计与 GPS 端口HEEWING F405没有内置罗盘但可以经 GPS 端口外接罗盘——RTF 套件随附的 GPS 模块已集成罗盘。hwdef 对此做了配套声明define AP_COMPASS_PROBING_ENABLED 1表示启动时扫描 I2C 总线探测所有支持的外部罗盘型号HAL_COMPASS_AUTO_ROT_DEFAULT 2给出默认安装旋转。GPS 端口SERIAL3 / UART5使用注意事项RX 引脚 PD2 被声明为NODMA。配套的 defaults.parm 中有这样一组默认参数RTL_ALTITUDE,50.00 ARMING_RUDDER,2 # GPS RX DMA conflicts with CRSF and I2C1 GPS_DRV_OPTIONS,4其中注释直接说明了原因GPS RX 若启用 DMA 会与 CRSF 协议和 I2C1 总线产生资源冲突因此通过GPS_DRV_OPTIONS,4关闭 GPS 端口的 DMA 使用。RTL_ALTITUDE 50与ARMING_RUDDER 2则是针对 VTOL 构型预设的返航高度与解锁舵面检查模式。气压计为板上 SLP06位于 I2C1 总线地址 0x77无需额外配置。8. 固件烧录README 给出完整的烧录流程结合 hwdef 可以看得更清楚首次烧录用 DFU按住 bootloader 按键并插入 USB使板子进入 DFU 模式然后用任意 DFU 工具烧录with_bl.hex固件。之所以必须是 with_bl 版本是因为 hwdef.dat 声明FLASH_RESERVE_START_KB 64——前 64KB 固定预留给 bootloader普通 hex 不含 bootloader烧入后无法再走后续升级流程。首次烧录前务必断开 GPSREADME 特别警告该硬件在 GPS 连接且上电时无法正常进入 DFU 模式。之后通过地面站升级初始固件就绪后使用任意支持 ArduPilot 的地面站软件如 Mission Planner下载*.apj固件包即可。APJ 文件内部携带板型标识AP_HW_HEEWING_F405数值 ID 1119见 board_types.txt可确保烧录正确的目标文件。9. 关键文件索引文件作用README.md板级使用说明特征、UART 映射、RC、OSD、PWM、电池、烧录hwdef.dat硬件定义引脚、定时器、SPI/I2C/UART、传感器与默认值defaults.parm出厂默认参数GPS DMA 冲突规避等hwdef-bl.datbootloader 目标使用的简化硬件定义HEEWING-F405v2/hwdef.datv2 变体在基础版上启用板载 dataflashheewingf405.jpg板卡引脚图Rn/Tn、M1-M9 标识依据board_types.txtAPJ 板型 ID 表AP_HW_HEEWING_F405 1119掌握以上内容后你可以依据引脚图核对接线、按第 2 节映射表分配串口、按第 5 节分组规则配置 DShot、按第 6 节参数组配置电池并沿第 8 节流程完成从 DFU 首烧到空中升级的完整部署。【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考