ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

PX4 平台 Holybro Kakute H743-Wing 飞控使用指南:从 Betaflight 引导刷写、固件构建到串口与调试配置

PX4 平台 Holybro Kakute H743-Wing 飞控使用指南:从 Betaflight 引导刷写、固件构建到串口与调试配置 嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载本篇指南以 PX4-Autopilot 官方文档中 kakuteh7-wing.md 为主体结合仓库内 boards/holybro/kakuteh7-wing 的板级源码默认构建配置、引脚与定时器定义、传感器初始化脚本、NuttX 内核配置完整讲解 Holybro Kakute H743-Wing 固定翼/VTOL 飞控在 PX4 平台上的移植接入过程包括出厂 Betaflight 固件下的 PX4 引导程序刷写、固件编译与安装、串口映射与默认功能以及系统控制台的启用。读者学完后可以独立完成该飞控的 PX4 固件安装与基础调试。本文所述内容针对当前仓库PX4 v1.16 及以上版本中的板级实现。PX4 项目本身不生产该飞控硬件支持与合规问题请联系制造商 Holybro。硬件概览与板级特性Holybro Kakute H743-Wing 是一款面向固定翼Fixed-wing与 VTOL 应用设计的完整功能飞控核心硬件特性如下主控STM32H743 处理器运行频率 480 MHz属于 Cortex-M7 架构见 default.px4board 中CONFIG_BOARD_ARCHITECTUREcortex-m7与CONFIG_ARCH_CHIP_STM32H7y。总线与外设支持 CAN Bus具备即插即用的 GPS、CAN、I2C 接口。视频与电源双摄像头支持与切换CAM Switch、ON/OFF 图传电源开关Pit Switch、5V、6V/8V、9V/12V BEC 输出。PWM 输出M1 ~ M14 共 14 路电机/舵机信号输出。板级标识firmware.prototype 中定义board_id 1105镜像最大尺寸为 1,703,936 字节约 1.63 MB描述为 Firmware for the Holybro KakuteH7-Wing board。从板级源码看该板已被完整纳入 PX4 的构建体系default.px4board 启用了一系列固定翼/VTOL 相关的模块例如CONFIG_MODULES_FW_ATT_CONTROL、CONFIG_MODULES_FW_LATERAL_LONGITUDINAL_CONTROL、CONFIG_MODULES_FW_MODE_MANAGER、CONFIG_MODULES_VTOL_ATT_CONTROL、CONFIG_MODULES_AIRSPEED_SELECTOR、CONFIG_DRIVERS_DSHOT、CONFIG_DRIVERS_UAVCAN、CONFIG_DRIVERS_OSD_ATXXXX等同时保留多旋翼控制模块CONFIG_MODULES_MC_*以满足 VTOL 复合模式的姿态控制需求。传感器驱动方面启用了CONFIG_DRIVERS_IMU_INVENSENSE_ICM42688P、CONFIG_DRIVERS_IMU_ST_LSM6DSV、CONFIG_DRIVERS_BAROMETER_BMP280、CONFIG_DRIVERS_BAROMETER_GOERTEK_SPA06与 rc.board_sensors 中的探测逻辑一一对应。该飞控为制造商支持Manufacturer Supported的 PX4 兼容板详见 autopilot_manufacturer_supported.md。购买渠道该飞控可从 Holybro 官方商店购买https://holybro.com/products/kakute-h743-wing原始文档中给出的示例渠道此处仅作信息参考。连接器与引脚定义下表汇总了文档给出的板载连接器与 PX4 默认功能映射引脚功能PX4 默认GPS 1USART1 与 I2C1GPS1R2, T2USART2 RX 与 TXGPS2R3, T3USART3 RX 与 TXTELEM1R5, T5USART5 RX 与 TXTELEM2R6, T6USART6 RX 与 TXRCPPM、SBUS 等输入R7, T7, RTS, CTSUART7 RX/TX带流控TELEM3R8, T8UART8 RX 与 TXConsole系统控制台Buz-, Buz压电蜂鸣器Piezo buzzerM1 至 M14电机信号输出对应地default.px4board 中通过CONFIG_BOARD_SERIAL_*将各串口设备绑定到默认功能CONFIG_BOARD_SERIAL_GPS1/dev/ttyS0 CONFIG_BOARD_SERIAL_GPS2/dev/ttyS1 CONFIG_BOARD_SERIAL_TEL1/dev/ttyS2 CONFIG_BOARD_SERIAL_TEL2/dev/ttyS3 CONFIG_BOARD_SERIAL_TEL3/dev/ttyS5 CONFIG_BOARD_SERIAL_RC/dev/ttyS4在板级头文件 src/board_config.h 中还可以看到更多硬件细节RC 输入RC_SERIAL_PORT /dev/ttyS4USART6支持 PPMGPIO_PPM_INTIM8 CH2 / PC7与串口遥控信号复用。摄像头切换GPIO_CAM_SWITCHPC13CAM_SWITCH_CAM1输出低电平、CAM_SWITCH_CAM2输出高电平由固件通过px4_arch_gpiowrite控制可据此在双摄像头之间切换。图传供电GPIO_VTX_9V_ENPE3用于控制 9V 图传电源的开关即文档所述 ON/OFF Pit Switch。蜂鸣器TONE_ALARM_TIMER 17TIM17驱动压电蜂鸣器。ADC支持双电池电压/电流采样ADC_BATTERY1/2_VOLTAGE_CHANNEL、ADC_BATTERY1/2_CURRENT_CHANNEL、5V 监控ADC_SCALED_V5_CHANNEL以及 RSSI 输入ADC_RSSI_IN_CHANNEL对应BOARD_NUMBER_BRICKS 2。PX4 Bootloader 更新出厂 Betaflight 固件背景说明该飞控出厂预装Betaflight固件。由于 Betaflight 使用自己的引导程序在安装 PX4 固件之前必须先刷写 PX4 引导程序PX4 bootloader。刷写所需的引导程序二进制文件即 extras/holybro_kakuteh7-wing_bootloader.bin仓库板级目录中已附带预编译的 .bin原始文档提供的 .hex 版本亦可在对应资源位置下载。完整的刷写步骤请参阅 bootloader_update_from_betaflight.md。三种刷写工具根据 bootloader_update_from_betaflight.md可选择以下任一工具Betaflight Configurator图形界面最简单连接飞控 → 打开 Configurator → 点击Load Firmware [Local]→ 选择引导程序二进制文件 → 刷写。注意较新版本的 Configurator 可能不再支持非 Betaflight 引导程序更新失败时可改用其他工具。dfu-util命令行先让飞控进入 DFU 模式按住 BOOT 按钮的同时插入 USB 线上电后松开按钮然后执行dfu-util -a 0 --dfuse-address 0x08000000 -D build/target/target.bin刷写完成后重新上电不要按住 BOOT 按钮即可。dfuseWindows 图形工具使用该工具刷写target.bin文件。安全提示与参数擦除上述 DFU 刷写方式是安全的STM32 的 DFU 引导程序不会被覆盖即使刷写失败也能再次进入 DFU 模式重新安装固件。对于部分 Kakute 系列板如 Kakute H7 v2、H7、H7 mini首次刷写时可能需要先执行一次强制擦除命令以修复参数保存问题dfu-util -a 0 --dfuse-address 0x08000000:force:mass-erase:leave -D build/target/target.bin该命令可能报错可忽略执行完毕后再次进入 DFU 模式完成常规刷写。Kakute H743-Wing 的引导程序源码头文件 src/hw_config.h 中定义了BOARD_TYPE 1105与 firmware.prototype 一致、APP_LOAD_ADDRESS 0x08020000、BOARD_FLASH_SECTORS 13、BOARD_FLASH_SIZE (16 * 128 * 1024)等引导参数供引导程序在 DFU 模式下识别目标板与内存布局。自行编译引导程序大多数 PX4 板级目标都提供了_bootloader构建目标。可通过make list_config_targets查看全部目标输出中会包含holybro_kakuteh7_bootloader、holybro_kakuteh7v2_bootloader、holybro_kakuteh7mini_bootloader等同系列条目。构建命令为git clone --recursive https://github.com/PX4/PX4-Autopilot.git cd PX4-Autopilot make target # 例如: holybro_kakuteh7mini_bootloader重新安装 Betaflight如需从 PX4 切换回 Betaflight先将 PX4 参数备份导出到 SD 卡参见 parameters_and_configurations.md 中关于导出与加载参数的说明按住bootloader按钮的同时连接 USB 线使用 Betaflight Configurator 按常规方式刷写 Betaflight 固件。构建 PX4 固件在已克隆的 PX4-Autopilot 仓库中为该板构建固件的命令为make holybro_kakuteh7-wing_default该目标对应板级配置 boards/holybro/kakuteh7-wing/default.px4board工具链为arm-none-eabi架构为cortex-m7。构建环境的准备可参考 building_px4.md。构建配置要点从 default.px4board 中可以归纳出该板固件的关键特性外设驱动板载 ADC、BMP280/SPA06 气压计、SMBUS 电池、CDCACMUSB 虚拟串口、DShot、GPS、ICM42688P/LSM6DSV IMU、ATXXXXMAX7456OSD、PWM 输出、RC 输入、蜂鸣器、UAVCAN 均已启用。功能模块EKF2 估计器、控制分配器Control Allocator、飞行模式管理、固定翼/多旋翼/VTOL 姿态与速率控制、空速选择、电池状态、MAVLink、导航器、日志记录Logger等。系统命令包含bl_update引导程序更新、dmesg、hardfault_log、mft内存文件传输、nshterm、param、reboot、sd_bench、top、topic_listener、usb_connected、ver、work_queue等调试与维护命令。任务容量支持 1000 个任务点CONFIG_NUM_MISSION_ITEMS_SUPPORTED1000。PWM 输出与定时器映射src/timer_config.cpp 定义了 14 路 PWM 输出的底层定时器通道映射共使用 6 个 IO 定时器TIM1、TIM4、TIM5、TIM15、TIM3、TIM2M1~M4 映射到 TIM1 的 CH1~CH4M5、M6 映射到 TIM4 的 CH3、CH4注意注释说明 TIM4 CH4 在 STM32H7 上无 DMAMUX 映射无法做 BDShot 遥测回读但 DShot 输出不受影响M7、M8 映射到 TIM5 的 CH1、CH2M9、M10 映射到 TIM15 的 CH1、CH2TIM15 无 TIM_UP DMA不能用于 DShotM11、M12、M13 映射到 TIM3 的 CH2、CH3、CH4M14 映射到 TIM2 的 CH1。这与 src/board_config.h 中DIRECT_PWM_OUTPUT_CHANNELS 14、BOARD_NUM_IO_TIMERS 6的定义相互印证。安装 PX4 固件版本要求Kakute H743-Wing 自PX4 v1.16起获得官方支持在更早的版本上需要手动构建并安装固件。固件可通过以下任一常规方式安装源码构建并直接上传make holybro_kakuteh7-wing_default upload使用 QGroundControl 加载固件参考 firmware.md可以选择预编译固件或自己构建的固件。刷写完成后即可进入地面站的传感器校准与机架选择流程。串口映射不同串口在 NuttX 下的设备节点、物理端口与默认功能如下UART设备端口默认功能USART1/dev/ttyS0GPS 1GPS1USART2/dev/ttyS1R2, T2GPS2USART3/dev/ttyS2R3, T3TELEM1UART5/dev/ttyS3R5, T5TELEM2USART6/dev/ttyS4R6, (T6)RC 输入UART7/dev/ttyS5R7, T7, RTS, CTSTELEM3UART8/dev/ttyS6R8, T8Console这些映射与 default.px4board 中的CONFIG_BOARD_SERIAL_*完全一致。从 nuttx-config/nsh/defconfig 可以看到底层串口的 NuttX 配置细节UART7 启用了硬件流控CONFIG_UART7_IFLOWCONTROLy、CONFIG_UART7_OFLOWCONTROLy以及 RX/TX DMA默认波特率 57600与 TELEM3 的流控需求对应USART3 启用了 RX/TX DMATELEM1所有串口默认波特率均为 57600。此外NuttX 配置中启用了CONFIG_STM32H7_SDMMC2ySD 卡、CONFIG_STM32H7_I2C1/I2C2/I2C4GPS 罗盘等 I2C 外设、CONFIG_STM32H7_SPI1/SPI2/SPI3以及 USB CDC ACMCONFIG_CDCACM_PRODUCTSTRPX4 KakuteH7-Wing、CONFIG_CDCACM_VENDORSTRHolybroVendor ID 0x3162方便 PC 端识别设备。传感器与板载外设的初始化init/rc.board_sensors 展示了该板传感器初始化的“备选降级”策略与 src/spi.cpp 中的 SPI 总线定义一一对应board_adc start # 板载 SPI IMU同一 CS 片选SPI3优先 ICM42688P失败则回退 LSM6DSV if ! icm42688p -R 2 -s -q start then lsm6dsv -R 2 -s start fi # 板载气压计优先 BMP280失败则回退 SPA06 if ! bmp280 -I -b 4 -q start then spa06 -I -b 4 start fi # MAX7456 OSD若 OSD_ATXXXX_CFG 参数非 0 则启动 if ! param compare OSD_ATXXXX_CFG 0 then atxxxx start -s fisrc/spi.cpp 定义了三条 SPI 总线SPI1预留 BMI088 加速度计/陀螺仪片选该板实际未焊接片选引脚已在设备表中声明SPI2ATXXXXMAX7456OSD 芯片片选为 PB12SPI3板载 IMUICM42688P 与 LSM6DSV 共用片选 PE12LSM6DSV 额外使用 PE15 作为数据就绪DRDY引脚。板级默认参数在 init/rc.board_defaults 中设置param set-default BAT1_V_DIV 18.1 param set-default BAT2_V_DIV 18.1 param set-default BAT1_A_PER_V 36.367515152 param set-default BAT2_A_PER_V 36.367515152 param set-default OSD_ATXXXX_CFG 1即双电池电压分压比BATx_V_DIV默认为 18.1、电流每伏安培数BATx_A_PER_V默认 36.367515152OSD 默认启用OSD_ATXXXX_CFG 1。若实际使用的电流计/分压电阻不同可在 QGroundControl 中按硬件手册重新校准这些参数。调试端口系统控制台Kakute H743-Wing 将UART8的 RX/TX 配置为系统控制台System Console使用设备节点为/dev/ttyS6物理引脚 R8、T8。从 nuttx-config/nsh/defconfig 可以看出控制台的底层配置CONFIG_UART8_SERIAL_CONSOLEy CONFIG_UART8_BAUD57600 CONFIG_SYSTEM_NSHy即 UART8 被指定为 NuttX 串行控制台默认波特率 57600PX4 的 NSH shell 可通过该串口访问用于固件调试、参数查看与底层系统维护。此外CONFIG_STM32H7_SAVE_CRASHDUMPy与CONFIG_SYSTEMCMDS_HARDFAULT_LOGy表明发生硬错误hardfault时会保存崩溃转储便于通过控制台或日志排查问题。关于如何使用控制台连接方式、常用命令、波特率等请参考 system_console.md 的详细说明。小结Holybro Kakute H743-Wing 在 PX4 中属于制造商支持的完整移植板官方文档给出了从 Betaflight 引导程序刷写、固件构建安装到串口映射与控制台调试的完整操作路径而仓库内的板级源码则从构建配置default.px4board、引脚/定时器定义src/board_config.h、src/timer_config.cpp、SPI 传感器拓扑src/spi.cpp与 NuttX 内核配置nuttx-config/nsh/defconfig等多个层面印证并深化了这些操作。对于固定翼/VTOL 开发者这提供了从拿到一块全新 Kakute H743-Wing 到跑起 PX4 的完整参考路径。赞分享嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载相关推荐Holybro Kakute H7 V2 飞控在 PX4 中的刷写、构建与配置完整指南Holybro Kakute H7 V2 飞控在 PX4 中的刷写、构建与配置完整指南 本文以 PX4 官方板级支持文档为主体围绕 Holybro Kakut嵌入式物联网机器人自动驾驶智能硬件PX4 上的 Holybro Kakute H7 飞控硬件特性、固件烧录与串口配置完整指南PX4 上的 Holybro Kakute H7 飞控硬件特性、固件烧录与串口配置完整指南 本文以 PX4 Autopilot 官方文档为基础结合仓库中 b嵌入式物联网机器人自动驾驶智能硬件Holybro Kakute H7 mini 刷机与 PX4 适配完全指南Bootloader 更新、固件编译与串口配置Holybro Kakute H7 mini 刷机与 PX4 适配完全指南Bootloader 更新、固件编译与串口配置 本文以 PX4 Autopilot嵌入式物联网机器人自动驾驶智能硬件上一篇USBIP-Win完全攻略实现跨网络USB设备无缝共享下一篇解密Spike RISC-V模拟器从指令集探索到系统级仿真实战创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表