尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

ArduPilot PixPilot-V3 飞控板硬件指南:引脚定义、PWM 输出与固件构建

ArduPilot PixPilot-V3 飞控板硬件指南:引脚定义、PWM 输出与固件构建 ArduPilot PixPilot-V3 飞控板硬件指南引脚定义、PWM 输出与固件构建【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilotPixPilot-V3 是由 MakeFlyEasy 出品、基于 STM32F427 主控 STM32F103 IO 协处理器的双芯片开源飞控板已作为一等公民接入 ArduPilot 的 ChibiOS HAL 硬件定义体系。本文以仓库内 libraries/AP_HAL_ChibiOS/hwdef/PixPilot-V3/README.md 为核心骨架结合 hwdef.dat 与 hwdef-bl.dat 源码级展开带你掌握该板的串口映射、连接器引脚定义、14 路 PWM 分组规则、电池监控参数以及完整的固件构建方法可直接用于 ArduPlane、ArduCopter、ArduRover 等机型官方 README 中以copywiki标签标注适用机型为 plane/copter/rover/blimp。一、硬件概览与核心特性PixPilot-V3 采用「主控 IO 协处理器」的双 MCU 架构与经典 Pixhawk FMUv3 架构同源但传感器选型与外围接口做了显著升级主控 MCUSTM32F427VIT6Cortex-M4F主频最高 180MHz负责飞行控制运算、传感器采集与通信IO 协处理器STM32F103C8T6独立管理前 8 路主 PWM 输出与安全逻辑保证高负载下的输出时序稳定性三冗余 IMU两颗 ICM42688-PSPI 总线与一颗 ICM40605SPI 总线IMU 温度控制内置加热器internal heater配合软橡胶减震柱Soft Rubber Damping Column对全部内部 IMU 做温控与隔离可显著改善温度漂移双气压计两颗 MS5611SPI 总线内置罗盘IST8310 磁力计内部 I2C 总线数据存储内置 RAMTRON FRAMSPI 总线 microSD 卡槽通信接口5 路 UART、USBType-C、PPM 与 S.Bus 输入、1 路 S.Bus 输出、两路 I2C 口、两路 FDCAN 口输出与电源14 路 PWM 输出、外置蜂鸣器、内置 RGB LED、双路电压电流监控、独立舵机轨 BEC 供电、外部安全开关。在 ChibiOS HAL 层面这些特性并不是文档承诺而是由硬件定义文件逐条落实的。hwdef.dat中的MCU STM32F4xx STM32F427xx声明了主控型号APJ_BOARD_ID AP_HW_PixPilot-V3注册了板卡 ID对应 Tools/AP_Bootloader/board_types.txt 中的AP_HW_PixPilot-V3 1096OSCILLATOR_HZ 24000000指定 24MHz 晶振FLASH_SIZE_KB 2048声明 2MB Flash。二、硬件定义文件hwdef.dat源码解析ArduPilot 的 ChibiOS 移植采用硬件定义文件驱动方式每个板卡对应hwdef目录下的一组.dat文件由构建脚本解析生成底层 HAL 配置。PixPilot-V3 的完整定义位于 libraries/AP_HAL_ChibiOS/hwdef/PixPilot-V3/hwdef.dat主要包括2.1 串口与总线拓扑SERIAL_ORDER OTG1 USART2 USART3 UART4 UART8 UART7 I2C_ORDER I2C3 I2C2 I2C1 IOMCU_UART USART6SERIAL_ORDER决定了hal.serial(n)对象的映射顺序SERIAL0 为 USBOTG1SERIAL1~SERIAL5 依次为 USART2/USART3/UART4/UART8/UART7I2C_ORDER定义了 I2C 总线的探测顺序I2C3 优先对应板载 IST8310 所在总线IOMCU_UART USART6指定了主控与 STM32F103 IO 协处理器之间的通信串口。2.2 传感器挂载表SPIDEV / IMU / BARO / COMPASSSPIDEV ms5611 SPI1 DEVID3 BARO_CS MODE3 20*MHZ 20*MHZ SPIDEV ms5611_ext SPI4 DEVID2 BARO_EXT_CS MODE3 20*MHZ 20*MHZ SPIDEV ICM40605_ext SPI4 DEVID4 40605_EXT_CS MODE3 2*MHZ 4*MHZ SPIDEV ICM42688_ext SPI4 DEVID5 42688_EXT_CS MODE3 2*MHZ 4*MHZ SPIDEV ICM42688 SPI1 DEVID6 42688_CS MODE3 2*MHZ 4*MHZ SPIDEV ramtron SPI2 DEVID10 FRAM_CS MODE3 8*MHZ 8*MHZ SPIDEV sdcard SPI2 DEVID1 SDCARD_CS MODE0 400*KHZ 25*MHZIMU Invensensev3 SPI:ICM42688 ROTATION_NONE IMU Invensensev3 SPI:ICM42688_ext ROTATION_NONE IMU Invensensev3 SPI:ICM40605_ext ROTATION_NONE BARO MS5611 SPI:ms5611 BARO MS5611 SPI:ms5611_ext COMPASS IST8310 I2C:0:0x0E false ROTATION_ROLL_180_YAW_270从源码结构看三颗 IMU 的 SPI 片选信号与从设备地址一一对应ICM42688 挂在 SPI1ICM42688_ext 与 ICM40605_ext 挂在 SPI4双气压计分别挂 SPI1 与 SPI4RAMTRON 与 microSD 共用 SPI2。define HAL_DEFAULT_INS_FAST_SAMPLE 7表明 IMU 默认启用 7 倍快速采样即 1kHz 以上原始采样以充分发挥三冗余 IMU 的性能。2.3 板级特性开关define HAL_HAVE_IMU_HEATER 1 define HAL_IMU_TEMP_DEFAULT 45 define HAL_IMUHEAT_P_DEFAULT 50 define HAL_IMUHEAT_I_DEFAULT 0.07 define HAL_IMU_TEMP_MARGIN_LOW_DEFAULT 5HAL_HAVE_IMU_HEATER启用了 IMU 加热功能温度目标默认 45°C并给出了温控 PID 的默认 P/I 参数与低温裕量这正是 README 中内部 IMU 加热器在固件层的体现。此外还有HAL_STORAGE_SIZE 16384参数存储区大小 16KB配合HAL_WITH_RAMTRON 1使用 FRAM 持久化参数HAL_OS_FATFS_IO 1启用 FAT 文件系统microSD 记录日志需要HAL_I2C_INTERNAL_MASK 1与AP_COMPASS_PROBING_ENABLED 1内部 I2C 总线掩码与罗盘探测开关define AP_NOTIFY_GPIO_LED_RGB_*_PIN 11/12/13与AP_NOTIFY_GPIO_LED_RGB_ENABLED 1RGB LED 三色 GPIO 映射ROMFS io_firmware.bin Tools/IO_Firmware/iofirmware_lowpolh.bin将 IO 协处理器固件嵌入主固件 ROMFS。三、串口UART映射PixPilot-V3 共提供 6 个逻辑串口从 SERIAL0 到 SERIAL5映射关系如下逻辑串口物理外设用途备注SERIAL0USBOTG1console / 主 MavLink通常为 USBSERIAL1USART2TELEM1DMA 使能SERIAL2USART3TELEM2DMA 使能SERIAL3UART4GPS1无 DMASERIAL4UART8GPS2DMA 使能SERIAL5UART7USER用户自定义无 DMA该映射同时对应 README 的 UART Mapping 一节与hwdef.dat的引脚声明例如 GPS1 即PA0 UART4_TX/PA1 UART4_RX标注NODMAGPS2 为PE0 UART8_RX/PE1 UART8_TX。需要特别注意PA10 UART8_TXINV OUTPUT HIGH GPIO(78) POL(0)—— 该引脚允许在用户控制下反转 UART8 的发送极性常用于兼容 FrSky 等遥测协议的电平要求hwdef.dat注释中即标注 UART8 FrSky。每个串口的协议与波特率如SERIAL1_PROTOCOL、SERIAL1_BAUD均可通过 ArduPilot 参数如SERIAL1_*在运行时配置。四、连接器引脚分配官方 README 给出了各排针连接器的完整引脚定义这里完整保留并统一电压标注TELEM1 / TELEM2 端口PinSignalVolt1VCC5V2TX (OUT)3.3V3RX (IN)3.3V4GNDGNDI2C1 / I2C2 端口PINSIGNALVOLT1VCC5V2SCL3.3V3SDA3.3V4GNDGNDCAN1 / CAN2 端口PINSIGNALVOLT1VCC5V2CAN_H12V3CAN_L12V4GNDGNDSafety 与蜂鸣器端口PINSIGNALVOLT1VCC5V2LED5V3SAFKEY5V4BUZZER5V53V3.3V6GNDGNDGPS1/I2C1、GPS2/I2C2 复合端口PINSIGNALVOLT1VCC5V2TX3.3V3RX3.3V4SCL3.3V5SDA3.3V6GNDGNDGPS 与 I2C 复合在同一端口GPS 的 TX/RX 走 UARTSCL/SDA 走 I2C 总线接线时注意信号电平均为 3.3V。Serial5 端口PinSignalVolt1VCC5V2TX (OUT)3.3V3RX (IN)3.3V4GNDGNDPower1 / Power2 端口PINSIGNALVOLT1VCC5V2VCC5V3CURRENT3.3V4VOLTAGE3.3V5GNDGND6GNDGND对应hwdef.dat中PA2 BATT_VOLTAGE_SENS ADC1与PA3 BATT_CURRENT_SENS ADC1的 ADC 通道以及PB5 VDD_BRICK_nVALID/PG5 VDD_BRICK2_nVALID两个电源失效检测引脚用于感知电源是否接入。五、RC 输入所有兼容的 RC 协议均可通过将接收机输出连接到 Servo/Output VCC 输入连接器旁的SBUS 输入引脚进行解码。需要注意部分协议如 CRSF、FPort 等带遥测回传的协议不能走该引脚而必须连接到某一 UART 并完成对应参数设置例如SERIALn_PROTOCOL23对应 RCIN、CRSF 协议需指定专用串口等以便同时承载遥测上行链路。六、PWM 输出分组、速率与协议约束PixPilot-V3 支持最多14 路 PWM 输出全部排针均为顶排 GND、中排 5V、底排信号的排布。前 8 路主输出标号 S1~S8由独立的 STM32F103 IO 控制器驱动支持所有 PWM 输出格式但不支持 DShot。**后 6 路辅助输出标号 AUX1~AUX6**直接挂在 STM32F427 上支持全部 PWM 协议以及DShot。官方 README 明确了分组规则8 路主输出分为 3 组组 1PWM 1、2组 2PWM 3、4组 3PWM 5、6、7、86 路辅助输出分为 2 组组 1PWM 1、2、3、4组 2PWM 5、6同一组内的通道必须使用相同的输出速率如果组内任一通道使用 DShot则整组通道都必须使用 DShot。从hwdef.dat可以看到主输出 PWM(5)/PWM(6) 与辅输出 PWM(1)~PWM(4) 分别由 TIM4PD13 TIM4_CH2、PD14 TIM4_CH3与 TIM1PE14~PE11的 CH4~CH1驱动这正是同组共享定时器、因此必须同速率的硬件根源。DShot 支持情况最终由固件启动时根据协议选择决定若某通道被配置为 DShot 而所在组不支持将无法正常工作配置时务必遵循上述分组约束。七、电池监控Battery Monitoring电池监控参数通常已按默认值预置但如果参数丢失或被修改可按以下步骤恢复。首先启用电池监控器BATT_MONITOR4设置后需重启飞控再写入以下参数BATT_VOLT_PIN 2BATT_CURR_PIN 3BATT_VOLT_MULT 18.0BATT_AMP_PERVLT 24.0BATT2_VOLT_PIN 14BATT2_CURR_PIN 13BATT2_VOLT_MULT 18.0BATT2_AMP_PERVLT 24.0其中第一组BATT1对应 Power1 端口、第二组BATT2对应 Power2 端口。这些默认值并非随意指定而是与hwdef.dat中的硬件定义一一对应define HAL_BATT_VOLT_PIN 2 define HAL_BATT_CURR_PIN 3 define HAL_BATT_VOLT_SCALE 18 define HAL_BATT_CURR_SCALE 24在 AP_BattMonitor_Analog.cpp 中HAL_BATT_VOLT_PIN/HAL_BATT_CURR_PIN分别作为BATT_VOLT_PIN与BATT_CURR_PIN参数的编译期默认值同时会强制校验必须同时定义HAL_BATT_VOLT_SCALE/HAL_BATT_CURR_SCALEHAL_BATT_VOLT_SCALE 18对应BATT_VOLT_MULT18.018:1 分压比HAL_BATT_CURR_SCALE 24对应BATT_AMP_PERVLT24.024A/V 电流传感比例。hwdef.dat中PA2 BATT_VOLTAGE_SENS与PA3 BATT_CURRENT_SENS即两个主 ADC 采样引脚。若这些参数被误改按上文恢复即可回到出厂默认的测量精度。八、DroneCAN 能力PixPilot-V3 提供 2 个 CAN 端口CAN1/CAN2可连接两条相互独立的 CAN 总线每条总线上可挂载多个 CAN 外设如 DroneCAN ESC、GPS、空速计、光电吊舱等。两路 FDCAN 在hwdef.dat中的引脚分配为PD0 CAN1_RX/PD1 CAN1_TX与PB12 CAN2_RX/PB6 CAN2_TX。通过 DroneCAN 可以显著减少机架布线例如将 CAN GPS 与 CAN ESC 挂到同一总线而互不干扰。九、固件构建与烧录9.1 构建固件ArduPilot 使用 waf 构建系统构建命令须在仓库根目录执行且不要使用 sudo 运行 waf。以构建 ArduCopter 为例./waf configure --board PixPilot-V3 ./waf copter首次构建必须先执行./waf configure --board PixPilot-V3切换机型或更换板卡时需要重新 configure./waf copter编译生成的arducopter二进制位于build/PixPilot-V3/bin目录详见 BUILD.md 的 Basic usage 一节需要其他机型时将目标名替换为plane、rover、sub、blimp即可板卡名保持PixPilot-V3不变板卡列表可用./waf list_boards查看该命令会列出 ChibiOS 全部已注册板卡其中即包含PixPilot-V3。构建产物*.apj/*.bin即可通过 Mission Planner 或地面站写入飞控。9.2 引导加载程序Bootloader引导加载程序的硬件定义位于 hwdef-bl.dat其关键配置包括APJ_BOARD_ID AP_HW_PixPilot-V3与主固件一致的板卡 ID确保引导程序与固件匹配FLASH_BOOTLOADER_LOAD_KB 16应用固件从 16KB 偏移处加载前 16KB 保留给引导程序SERIAL_ORDER OTG1 USART2 USART3引导程序运行在 USB、TELEM1、TELEM2 三个通道上波特率BOOTLOADER_BAUDRATE 115200PE12 LED_BOOTLOADER与HAL_LED_ON 1引导期间点亮 LED 作为状态指示同时为所有传感器片选引脚42688_CS、BARO_CS、MAG_CS、SDCARD_CS等做了 CS 引脚声明确保引导期间这些引脚保持高电平、不干扰外设。十、购买信息PixPilot-V3 由 MakeFlyEasy 及其授权经销商销售官方购买页面见 makeflyeasy.comREADME 中 Where to Buy 一节。接线、固件烧录与调参完成后即可在 ArduPlane、ArduCopter、ArduRover、Blimp 等机型上使用本板的全部功能。小结PixPilot-V3 以 STM32F427 STM32F103 双芯片架构提供了三冗余 IMU含加热与减震、双气压计、内置罗盘、14 路 PWM其中 6 路支持 DShot与双 CAN/双电源监控等完整配置。本文基于官方 README 与 hwdef.dat / hwdef-bl.dat 源码逐项核对了串口映射、连接器引脚、PWM 分组、电池监控默认值与构建方法——当你拿到这块板卡时可直接对照本文完成接线、恢复默认电池参数并编译刷写固件。【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表