ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ArduPilot 硬件定义实战:iFlight BLITZ Wing H743 飞控的 UART、PWM、OSD 与固件烧录详解

ArduPilot 硬件定义实战:iFlight BLITZ Wing H743 飞控的 UART、PWM、OSD 与固件烧录详解 ArduPilot 硬件定义实战iFlight BLITZ Wing H743 飞控的 UART、PWM、OSD 与固件烧录详解【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot本文基于 ArduPilot 仓库中 BlitzWingH743 硬件定义目录 下的 README 及配套文件展开系统讲解这款 STM32H743 飞行控制器的硬件特性、串口与 PWM 映射、OSD 配置、电池监测参数以及固件烧录流程。读完后你将掌握该机型在 ArduPilot 中的默认配置全貌并能结合 hwdef.dat、defaults.parm 等仓库文件验证每一项默认行为。一、板卡概览功能特性与物理参数iFlight BLITZ Wing H743 是一款四轴多旋翼飞行控制器在 ArduPilot 中以AP_HW_BlitzH7Wing作为板级标识定义于 hwdef.dat 第 3 行的APJ_BOARD_ID。根据 README 列出的规格MCUSTM32H743 32 位处理器主频 480 MHz陀螺仪ICM42688注意当前仓库 hwdef.dat 中继承的 IMU 定义按 SPI1 上的 Invensensev3 传感器注册不同硬件版本可能存在差异实际以板卡实物为准存储SD 卡用于飞行日志BEC5V 3A飞控、9V 3AVTX、5–8.4V 6A舵机气压计DPS310OSDAT7456E7 路 UART、13 路 PWM 输出12 路电机 1 路 LED电池输入电压2S–8S2 路 I2C可外接指南针、空速管等1 路 CAN。物理参数安装孔距 30.5×30.5mm四孔尺寸 36.9×52mm重量 35g。从源码结构看该板卡并非独立定义全部引脚hwdef.dat 第一行直接include了姊妹板卡 BlitzH743Pro 的 hwdef.dat然后仅做少量“差异覆盖”。这解释了为什么两款板卡引脚大部分相同但串口编号、RSSI 与默认机架等配置存在区别。二、引脚图PinoutREADME 提供了三张官方引脚图分别标注板卡的顶部、中部与底部接口图中 UART 的 Rn/Tn 引脚是后文串口映射的依据三、UART 映射与默认协议README 给出的串口映射表如下Rn 为 UARTn 接收脚Tn 为发送脚| 名称 | 引脚 | 功能 | |:-|:-|:-| | SERIAL0 | COMPUTER | USB | | SERIAL1 | RX1/TX1 | UART1DJI 接口DMA 支持 | | SERIAL2 | TX2/RX2 | UART2遥控接收DMA 支持 | | SERIAL3 | TX3/RX3 | UART3DMA 支持 | | SERIAL4 | TX4/RX4 | UART4GPSDMA 支持 | | SERIAL6 | TX6/RX6 | UART6 | | SERIAL7 | TX7/RX7 | UART7 | | SERIAL8 | TX8/RX8 | UART8ESC 遥测 |仓库源码与这张表一一对应并揭示了几个 README 未展开的关键细节串口顺序由SERIAL_ORDER决定。Wing 版覆盖为OTG1 USART1 USART2 USART3 UART4 EMPTY USART6 UART7 UART8 OTG2见 hwdef.dat 第 5–6 行。其中EMPTY表示SERIAL5 在本板上不存在——这正是映射表里跳过 SERIAL5 的原因ESC 遥测端口与 Pro 版不同。父级 BlitzH743Pro 定义DEFAULT_SERIAL5_PROTOCOL SerialProtocol_ESCTelemetryUSART6而 Wing 版undef掉该默认值改为define DEFAULT_SERIAL8_PROTOCOL SerialProtocol_ESCTelemetry即 ESC 遥测落在UART8PE0/PE1上DMA 能力差异。从 BlitzH743Pro/hwdef.dat 可见 USART6、UART7、UART8 均标注NODMA因此 README 表格中只有 UART1/2/3/4 标注 DMA-enabled这一信息可直接对照源码验证各口默认协议继承自 Pro 版定义SERIAL1USART1默认MSP_DisplayPortVTX并开启AP_MSP_VIDEOTX_ENABLEDSERIAL2USART2默认RCINSERIAL4UART4默认GPSSERIAL3 默认None。四、RC 遥控输入README 明确遥控输入配置在UART2_RX/UART2_TX引脚上属于 DJI 接口的一部分支持所有串行 RC 协议。这与源码一致——USART2PD5/PD6的DEFAULT_SERIAL2_PROTOCOL被定义为SerialProtocol_RCINBlitzH743Pro/hwdef.dat 第 61–63 行。因此无论使用 CRSF、SBUS 等哪种串行接收机只要接在 DJI 接口的 UART2 上即可被识别。值得注意的一个差异Wing 版在 hwdef.dat 中undef了 PC5 引脚与BOARD_RSSI_ANA_PIN即Wing 板不提供 Pro 版那样的模拟 RSSI 输入Pro 版 PC5 定义为RSSI_ADC。五、OSD 与 DisplayPort 支持README 说明BLITZ Wing H743 支持 OSD_TYPE 1MAX7456 驱动对应板载 AT7456E 芯片同时默认启用DisplayPort HD OSD视频信号输出到 HD VTX 接口。源码层面的对应关系板级定义OSD_ENABLED 1、HAL_OSD_TYPE_DEFAULT 1OSD 挂在SPI2PB13/PB14/PB15片选 PB12OSD1_CS字体通过ROMFS_WILDCARD libraries/AP_OSD/fonts/font*.bin烧入 ROMFS见 BlitzH743Pro/hwdef.dat 第 165–170 行defaults.parm 中额外固化了OSD_TYPE2 5即第二路 OSD 使用 DisplayPort 类型与 README “HD OSD 默认开启”的说明吻合SERIAL1USART1的默认协议MSP_DisplayPort用于向支持 DisplayPort 的 HD VTX 输出 OSD 图层。六、PWM 输出13 路输出的分组与 DShot 约束README 的 PWM 说明是本文核心实操要点之一必须完整保留BLITZ Wing H743 共有 13 路 PWM 输出。前 8 路支持双向 DShotbi-directional DShot及所有 PWM 类型第 9–10 路支持 DShot 及所有 PWM 类型第 11–12 路仅支持 PWM。PWM 被划入 5 个组PWM 1–2 在 group1PWM 3–6 在 group2PWM 7–10 在 group3PWM 11–12 在 group4PWM 13 在 group5。约束同一组内的通道必须使用相同的输出速率若组内任一通道使用 DShot则该组所有通道都必须使用 DShot。这一点源于定时器硬件共享可直接在源码中验证M1–M2 使用 TIM3M3–M6 使用 TIM5M7–M10 使用 TIM4其中 M11 标注NODMA之外的 M9/M10 也在 TIM4 上M11–M12 使用 TIM15 且标注NODMA不支持 DMA与“11–12 仅 PWM、不支持 DShot”的描述一致第 13 路PA8TIM1在板级定义中通过AP_NOTIFY_GPIO_LED_2_ENABLED 1标记为 LED 输出见 BlitzH743Pro/hwdef.dat 第 140–157 行。Wing 版固件还通过 defaults.parm 预设了 LED 行为# setup for LEDs on chan9 SERVO13_FUNCTION 120 # 第 9 个通道即第 13 路 PWM用作 LED NTF_LED_TYPES 257另外Pro 版定义HAL_FRAME_TYPE_DEFAULT 12BetaflightX 电机顺序方便从 Betaflight 迁移的用户保留 M1–M4 接线而Wing 版显式undef了HAL_FRAME_TYPE_DEFAULT意味着 Wing 不继承该 BetaflightX 默认机架类型新刷机的用户应在地面站确认 FRAME_CLASS/FRAME_TYPE 与实际电机接线的匹配关系。七、视频电源控制与摄像头开关README 给出两个“继电器式”GPIO 控制点9V 视频电源由 GPIO 81 控制固件默认将其分配给RELAY2。硬件定义中对应PD10 VTX_PWR OUTPUT GPIO(81) HIGH与define RELAY2_PIN_DEFAULT 81见 BlitzH743Pro/hwdef.dat 第 118–119 行摄像头输出开关由 GPIO 82 控制默认分配给RELAY3对应PD11 CAM_SW OUTPUT GPIO(82) HIGH与RELAY3_PIN_DEFAULT 82。两者都可以从地面站GCS或遥控器辅助通道auxiliary functions控制例如把 RELAY2 分配给某通道以在飞行中切断 VTX 供电、切换摄像头电源。默认电平为 HIGH初始导通。八、电池监测与模拟空速输入README 指出板载电压/电流传感器可支持最高 8S 电池并给出正确的电池参数组合| 参数 | 值 | 说明 | |:-|:-|:-| | BATT_MONITOR | 4 | 电压电流传感器监测模式 | | BATT_VOLT_PIN | 10 | 电压 ADC 引脚编号 | | BATT_VOLT_MULT | 11 | 电压换算系数 | | BATT_CURR_PIN | 11 | 电流 ADC 引脚编号 | | BATT_CURR_MULT | 50 | 电流换算系数 |这些值“在固件中默认设置好通常无需调整”。源码依据PC0 BATT_VOLTAGE_SENSHAL_BATT_VOLT_PIN 10、HAL_BATT_VOLT_SCALE 11.0与PC1 BATT_CURRENT_SENSHAL_BATT_CURR_PIN 11、HAL_BATT_CURR_SCALE 50.0以及HAL_BATT_MONITOR_DEFAULT 4见 BlitzH743Pro/hwdef.dat 第 126–135 行。模拟空速输入README 明确模拟空速引脚编号为 “4”对应源码中PC4 PRESSURE_SENS ADC1 SCALE(2)与HAL_DEFAULT_AIRSPEED_PIN 4。使用模拟空速管时将 AIRSPEED 相关参数指向引脚 4 即可被默认识别。九、指南针无内置靠 I2C 探测README 说明BLITZ Wing H743没有内置指南磁可把外部指南针接到 I2C 引脚上。源码侧有两处配套设置AP_COMPASS_PROBING_ENABLED 1固件会在上电时主动探测 I2C 总线上所有可能的外置磁计型号HAL_I2C_INTERNAL_MASK 0与HAL_COMPASS_AUTO_ROT_DEFAULT 2表示无板载磁计需排除并给出自动安装旋转补偿的默认方向。I2C 总线为 I2C1PB6/PB7SCL/SDA带 PULLUP与 I2C2PB10/PB11与 README “2x I2C for external compass, airspeed, etc.” 一致。十、日志存储、气压计与 IMUSD 卡日志SDMMC1 数据线PC8–PC12与命令线PD2在板级定义中完整映射HAL_OS_FATFS_IO 1启用 FATFS 日志文件系统HAL_LOGGER_MIN_MB_FREE 25要求 SD 卡至少预留 25MB 空闲空间气压计探测 I2C1 地址 0x76 上的 DPS310 与 SPL06 两种型号BARO DPS310 I2C:1:0x76/BARO SPL06 I2C:1:0x76与 README “Barometer: DPS310” 对应IMUSPI1PA5/PA6/PD7片选 PC15GYRO1_CS上注册 IMU配置了ROTATION_ROLL_180板级旋转同时DMA_NOSHARE/DMA_PRIORITY将 TIM3_UP、TIM5_UP、TIM4_UP、SPI1 设为高优先级独占 DMA保证电机输出与传感器采样的实时性。十一、固件烧录DFU 首刷与 apj 更新README 的烧录流程可概括为两步首次刷入按住 bootloader 按键插入 USB 进入 DFU 模式刷入with_bl.hex带启动引导加载器的固件包可使用任意的 DFU 烧录工具后续更新首次刷入完成后即可通过任意 ArduPilot 地面站软件直接更新更新时使用*.apj固件文件。仓库中的配套文件也印证了这一流程hwdef.dat 与 hwdef-bl.dat 是同一硬件定义的两种构建变体后者用于带 bootloader 的with_bl固件两者都基于 BlitzH743Pro 的定义并将APJ_BOARD_ID覆盖为AP_HW_BlitzH7Wing以保证两种构建都能被正确识别为该板卡。十二、小结与验证路径BLITZ Wing H743 在 ArduPilot 中的全部默认行为均可由四个文件交叉验证README规格与参数说明、hwdef.dat板级引脚与默认覆盖、hwdef-bl.datbootloader 构建变体以及 defaults.parmLED 与 OSD 默认参数引脚细节则继承自 BlitzH743Pro/hwdef.dat。实际使用中的三个高频注意点ESC 遥测在 UART8 而非 UART5、SERIAL5 不存在、M11/M12 仅支持普通 PWM 且与 M7–M10 共享输出组——配置电机协议与串口时避开这些差异即可顺利完成组网。【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表