ARTICLE DETAIL

资讯详情

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

ArduPilot ARK_FPV 飞控硬件详解:H743 硬件定义、引脚映射与固件烧录全流程

ArduPilot ARK_FPV 飞控硬件详解:H743 硬件定义、引脚映射与固件烧录全流程 ArduPilot ARK_FPV 飞控硬件详解H743 硬件定义、引脚映射与固件烧录全流程【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot本文基于 ArduPilot 仓库中的libraries/AP_HAL_ChibiOS/hwdef/ARK_FPV/硬件定义目录README、hwdef.dat、defaults.parm 等文件完整解析 ARK FPV 飞控STM32H743480MHz的传感器布局、全部接插件引脚表、串口/RC/电池/OSD/DSHOT 等关键外设的固件级实现以及从 DFU 首刷到源码编译烧录的操作流程。读完后你可以准确理解该板卡每个串口、PWM 定时器、I2C 总线的分配逻辑并能独立完成自定义固件构建与调试口改造。一、板卡概览硬件规格与接口一览ARK FPV 是 ArduPilot 4.7 系列新增支持的自主飞行控制器见 ArduCopter/ReleaseNotes.txt 中 ARK_FPV autopilot support 条目其硬件定义位于 libraries/AP_HAL_ChibiOS/hwdef/ARK_FPV/ 目录。核心硬件规格如下处理器STM32H743 32 位处理器主频 480MHz2MB Flash、1MB RAM传感器Invensense IIM-42653硬件 rev 0或 ST LSM6DSV32X硬件 rev 1IMU带加热电阻Bosch BMP390 气压计ST IIS2MDC 磁力计板载指南针电源输入范围 5.5V–54V2S–12S 锂电池12V / 2A 输出POWER AUX 接口默认开启可通过 RELAY1 开关控制5V / 2A 输出主系统约 300mA、加热约 200mA外部接口接口信号连接器Micro SD日志存储板载USB-CVBUS In、USB板载PWMVBAT In、模拟电流输入、Telem RX、4 路 PWM支持双向 DSHOTJST-GH 8 PinPWM AUX5 路 PWM支持双向 DSHOTJST-SH 6 PinRC Input5V Out、UARTJST-GH 4 PinPOWER AUX12V Out、VBAT In/OutJST-GH 3 PinTELEM5V Out、带流控的 UARTJST-GH 6 PinGPS5V Out、UART、I2CJST-GH 6 PinCAN5V Out、CANJST-GH 4 PinVTX12V Out、UART TX/RX、UART RXJST-GH 6 PinSPIOSD 或外部 IMU5V Out、SPIJST-SH 8 PinDEBUG3.3V Out、UART、SWDJST-SH 6 Pin板卡尺寸为 3.6 × 3.6 × 0.8 cm带 MicroSD 卡后重量 7.5g。二、完整引脚定义Pinout以下各表与 README.md 中的引脚文档一一对应。PWM UART4 — 8 Pin JST-GHPin信号名电压1VBAT IN5.5V-54V2CURR_IN_EXT3.3V3UART4_RX_EXT3.3V4FMU_CH1_EXT3.3V5FMU_CH2_EXT3.3V6FMU_CH3_EXT3.3V7FMU_CH4_EXT3.3V8GNDGNDRC — 4 Pin JST-GHPin信号名电压15.0V5.0V2USART6_RX_IN_EXT3.3V3USART6_TX_OUTPUT_EXT3.3V4GNDGNDPWM AUX — 6 Pin JST-SHPin信号名电压1FMU_CH5_EXT3.3V2FMU_CH6_EXT3.3V3FMU_CH7_EXT3.3V4FMU_CH8_EXT3.3V5FMU_CH9_EXT3.3V6GNDGNDPOWER AUX — 3 Pin JST-GHPin信号名电压112.0V12.0V2GNDGND3VBAT IN/OUT5.5V-54VCAN — 4 Pin JST-GHPin信号名电压15.0V5.0V2CAN1_P5.0V3CAN1_N5.0V4GNDGNDGPS — 6 Pin JST-GHPin信号名电压15.0V5.0V2USART1_TX_GPS1_EXT3.3V3USART1_RX_GPS1_EXT3.3V4I2C1_SCL_GPS1_EXT3.3V5I2C1_SDA_GPS1_EXT3.3V6GNDGNDTELEM — 6 Pin JST-GHPin信号名电压15.0V5.0V2UART7_TX_TELEM1_EXT3.3V3UART7_RX_TELEM1_EXT3.3V4UART7_CTS_TELEM1_EXT3.3V5UART7_RTS_TELEM1_EXT3.3V6GNDGNDVTX — 6 Pin JST-GH注意该连接器的引脚顺序与标准 HD VTX 线缆不完全一致。Pin信号名电压112.0V12.0V2GNDGND3UART5_TX_TELEM2_EXT3.3V4UART5_RX_TELEM2_EXT3.3V5USART2_RX_TELEM3_EXT3.3V6GNDGNDSPIOSD 或外部 IMU— 8 Pin JST-SHPin信号名电压15.0V5.0V2SPI6_SCK_EXT3.3V3SPI6_MISO_EXT3.3V4SPI6_MOSI_EXT3.3V5SPI6_nCS1_EXT3.3V6SPI6_DRDY1_EXT3.3V7SPI6_nRESET_EXT3.3V8GNDGND飞控 Debug — 6 Pin JST-SHPin信号名电压13V3_FMU3.3V2USART3_TX_DEBUG3.3V3USART3_RX_DEBUG3.3V4FMU_SWDIO3.3V5FMU_SWCLK3.3V6GNDGND三、串口映射与调试口改造SERIAL 端口分配名称功能SERIAL0USBSERIAL1UART7TelemSERIAL2UART5DisplayPort HD VTXSERIAL3USART1GPS1SERIAL4USART2用户口HD VTX 上的 SBUS 引脚仅 RXSERIAL5UART4ESC Telem仅 RXSERIAL6USART6RC 输入SERIAL7OTG2SLCAN所有 UART 均支持 DMA任意 UART 都可以通过修改其 protocol 参数重新分配用途。这一映射在 hwdef.dat 中由SERIAL_ORDER OTG1 UART7 UART5 USART1 USART2 UART4 USART6 OTG2一行定义顺序与上表一一对应。此外硬件定义还通过DEFAULT_SERIALx_PROTOCOL宏为部分端口预设了默认协议例如DEFAULT_SERIAL2_PROTOCOL SerialProtocol_MSP_DisplayPortVTX 口默认启用 MSP DisplayPort OSD 输出同时AP_MSP_VIDEOTX_ENABLED 1打开相关功能DEFAULT_SERIAL4_PROTOCOL SerialProtocol_NoneUSART2HD VTX 上的 SBUS RX默认为空闲留给用户自定义DEFAULT_SERIAL5_PROTOCOL SerialProtocol_ESCTelemetry、HAL_WITH_ESC_TELEM 1UART4 默认作为 ESC 遥测口115200 波特率只连 RXDEFAULT_SERIAL6_PROTOCOL SerialProtocol_RCINUSART6 默认作为 RC 输入口。把 Debug 口USART3用作普通串口调试连接器上的 USART3 默认被配置为调试控制台对应 hwdef.dat 中的STDOUT_SERIAL SD3/STDOUT_BAUDRATE 57600。如需将其改造成第 8 个用户串口SERIAL8需要修改hwdef.dat在SERIAL_ORDER列表末尾追加USART3SERIAL_ORDER OTG1 UART7 UART5 USART1 USART2 UART4 USART6 OTG2 USART3删除调试控制台配置行STDOUT_SERIAL SD3 STDOUT_BAUDRATE 57600注意该改动需要自行编译定制固件构建方法见第六节加载固件不能仅通过地面站参数完成。四、RC 输入配置RC 输入配置在 RX6USART6_RX引脚上支持除 PPM 以外的所有 RC 协议SERIAL6_PROTOCOL默认为 23RCINSBUS / DSM / SRXL接 RX6 引脚即可FPort需额外连接 TX6并将SERIAL6_OPTIONS设为 7CRSF除 RX6 外还需连接 TX6可自动提供飞控遥测回传SRXL2需连接 TX6可自动提供遥测将SERIAL6_OPTIONS设为 4。对应固件实现即 hwdef.dat 中PC6 USART6_TX/PC7 USART6_RX以及DEFAULT_SERIAL6_PROTOCOL SerialProtocol_RCIN三行定义。五、电池监测板卡内置电压分压传感器并在 ESC 连接器PWM UART4上引出外部电流传感器模拟输入PIN 2 CURR_IN_EXT支持最高 12S 锂电池。默认电池参数参数默认值说明BATT_MONITOR4模拟电压 电流传感器BATT_VOLT_PIN9电压 ADC 引脚BATT_CURR_PIN12电流 ADC 引脚BATT_VOLT_SCALE21电压分压比BATT_AMP_PERVLT120每伏对应安培数这些默认值在 hwdef.dat 中有直接对应PB0 BATT_VOLTAGE_SENS ADC1 SCALE(1)、PC2 BATT_CURRENT_SENS ADC1 SCALE(1)并通过HAL_BATT_VOLT_PIN 9、HAL_BATT_CURR_PIN 12、HAL_BATT_VOLT_SCALE 21、HAL_BATT_CURR_SCALE 120、HAL_BATT_MONITOR_DEFAULT 4五个宏固化进固件。此外 ADC 通道还定义了SCALED1_V3V33V3 电源监测、VDD_5V_SENS5V 电源监测与FMU_SERVORAIL_VCC_SENS12V 轨监测分压系数 7.66。六、指南针、OSD 与 PWM 输出指南针板载 IIS2MDC 指南针挂在 I2C4 上。从 hwdef.dat 可见I2C4_SCL/SCL复用 PF14/PF15传感器声明为COMPASS IIS2MDC I2C:2:0x1E false ROTATION_NONEI2C 总线序号 2 即 I2C_ORDER 中的第三路 I2C4并开启AP_COMPASS_PROBING_ENABLED 1与AP_COMPASS_IIS2MDC_ENABLED 1支持运行时探测。全板 I2C 总线顺序为I2C_ORDER I2C1 I2C2 I2C4I2C1 供 GPS 外接设备使用I2C2 挂内部 BMP390 气压计声明为BARO BMP388 I2C:1:0x76地址 0x76。OSD 支持该飞控在 6 针 DJI 兼容 JST-SH 接头上提供 MSP-DisplayPort 输出对应DEFAULT_SERIAL2_PROTOCOL SerialProtocol_MSP_DisplayPort、OSD_ENABLED 1和HAL_OSD_TYPE_DEFAULT 5MSP Displayport三项定义。PWM / DSHOT 输出分组全部 9 路输出均支持 PWM 与 DShot其中电机 1-4 支持双向 DSHOTBidirectional-DSHOT。同一电机组内的输出必须统一使用 PWM 或 DShot分组如下电机 1-4Group1TIM5 定时器电机 5-8Group2TIM8 定时器电机 9Group3TIM4 定时器hwdef.dat 中的定义印证了该分组PI0/PH12/PH11/PH10对应 TIM5_CH4~CH1 并带BIDIR标记电机 1-4PI5/PI6/PI7/PI2为 TIM8电机 5-8PD12为 TIM4_CH1电机 9。文件末尾还有一条关键约束DMA_NOSHARE SPI* TIM5* TIM8*——双向 DShot 定时器不能共享 DMA 通道这是 H7 上保证电调通信与 IMU/SPI 读取不冲突的 DMA 优先级设计另有DMA_PRIORITY SDMMC* SPI*优先保障 SD 日志与 IMU 数据流。七、12V 外设输出POWER AUX与板载继电器POWER AUX 连接器上的 12V 引脚由一个 BEC 使能脚控制该引脚预映射为 GPIO 81 并配置为 RELAY1默认通过RELAY1_DEFAULT 1保持开启将默认状态改为关闭设置RELAY1_DEFAULT 0由遥控器开关控制设置RELAY1_FUNCTION 1Relay并将RCx_OPTION 28Relay1 On/Off分配到希望用作开关的通道。同一连接器上的 VBAT 引脚是电池直通不受固件控制。固件侧对应 hwdef.dat 中PG4 VDD_12V_PERIPH_EN OUTPUT HIGH GPIO(81)和RELAY1_PIN_DEFAULT 81而RELAY1_DEFAULT 1则写在 defaults.parm 中该文件还默认启用 CANCAN_P1_DRIVER 1与 hwdef.dat 中PD0/PD1 CAN1_RX/TX的 CAN1 引脚定义配合构成板载 CAN 总线的完整支持。八、IMU 与加热控制源码级细节IMU 挂在 SPI1 上hwdef.dat 同时注册了两颗候选 IMU 以兼容不同硬件版本SPIDEV iim42653 SPI1 DEVID1 IMU1_CS MODE3 2*MHZ 16*MHZ SPIDEV lsm6dsv SPI1 DEVID2 IMU1_CS MODE3 2*MHZ 8*MHZ IMU Invensensev3 SPI:iim42653 ROTATION_YAW_270 IMU LSM6DSV SPI:lsm6dsv ROTATION_YAW_270两颗芯片共用IMU1_CSPI9片选与IMU1_DRDYPF2数据就绪中断安装姿态为ROTATION_YAW_270。硬件版本通过 ID 引脚区分PG0 HW_VER_REV_DRIVE OUTPUT LOW驱动、PH4 HW_REV_SENS ADC3读取。IMU 加热由PB10 HEATER_EN OUTPUT LOW GPIO(80)实现相关宏定义了加热控制环路参数HAL_IMU_TEMP_DEFAULT 45目标温度 45℃、HAL_IMUHEAT_P_DEFAULT 50、HAL_IMUHEAT_I_DEFAULT 0.07PID 参数与 README 中带加热电阻的描述一致。SPI6 则预留给外部设备EXT1_CSPI10与DRDY_ADIS16507PD11GPIO 93已接线文件中注释掉的adis16507SPIDEV 行表明该总线可按需扩展 ADIS 系列高精度 IMU。此外hwdef.dat 还包含几项对可靠性重要的一级设计值得注意DEFAULTGPIO OUTPUT LOW PULLDOWN所有未复用引脚默认低电平避免 ESD 问题FLASH_RESERVE_START_KB 128与HAL_STORAGE_SIZE 32768/STORAGE_FLASH_PAGE 14前 128KB 留给 Bootloader最后两页32KB用作参数/日志 Flash 存储USE_ALT_RAM_MAP 1为兼容 PX4 Bootloader 使用不同的 RAM 映射HAL_OS_FATFS_IO 1与 common.inc 中的 SDMMC2 引脚定义启用 microSD 上的 FAT 文件系统三个 RGB 状态灯GPIO 90/91/92挂接到 AP_NotifyPE6 nARMED输出用于上锁指示。九、板卡注册与固件加载板卡标识板卡在构建系统中通过 common.inc 的APJ_BOARD_ID TARGET_HW_ARK_FPV注册Flash 大小 2048KB晶振 16MHz并启用ENABLE_DFU_BOOT 1以支持 DFU 首刷 Bootloader。该板级 ID 在 Tools/AP_Bootloader/board_types.txt 中登记为数值 59TARGET_HW_ARK_FPV 59并在 Tools/autotest/validate_board_list.py 的保留 ID 校验列表中登记对应 Reserved ARK [BL] FPV保证 .apj 固件与板卡严格绑定、防止刷错。加载固件首次烧录DFU按住 BOOT 按钮插入 USB 进入 DFU 模式使用任意 DFU 工具刷入 Bootloader可从 ArduPilot 官方固件服务器的 Bootloader 目录获取。日常升级首次刷入后可用任意 ArduPilot 地面站软件升级固件务必使用*.apj固件文件APJ 格式携带 board ID可防刷错。从源码构建./waf configure --board ARK_FPV --bootloader ./waf bootloader然后使用 ST-Link 将 Bootloader 烧到0x08000000。之后构建并直接经 USB-C 上传飞控固件./waf configure --board ARK_FPV ./waf copter --upload其中--board ARK_FPV指向本文所述的libraries/AP_HAL_ChibiOS/hwdef/ARK_FPV/硬件定义目录--bootloader构建产物对应目录中 hwdef-bl.datBootloader 专用硬件定义固件加载偏移 128KB。十、小结ARK_FPV 的硬件定义是 ArduPilot ChibiOS HAL 中一块典型H7 级 FPV 竞速飞控的完整范例串口侧8 路 SERIAL 由SERIAL_ORDER统一定义Telem流控、DisplayPort VTX、GPS、RC 输入、ESC 遥测各得其所任意端口协议可通过参数重分配电机侧TIM5/TIM8/TIM4 三组定时器覆盖 9 路 PWM/DSHOT前 4 路支持双向 DSHOTDMA 隔离策略保证 IMU 与 SD 日志实时性传感侧双 IMU 候选IIM-42653 / LSM6DSV32X 加热控制、BMP390 气压计、IIS2MDC 板载指南针、12S 电池模拟监测运维侧DFU 首刷 APJ 升级 源码./waf构建三条路径Board ID 59 保证固件与硬件匹配。以上结论均可在 libraries/AP_HAL_ChibiOS/hwdef/ARK_FPV/ 目录下的 README.md、hwdef.dat、common.inc、defaults.parm 四个文件中逐条对照验证。【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表