ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

ArduPilot 平台上的 S-Vehicle E2-Plus 飞控:硬件架构、引脚映射与固件刷写实战指南

ArduPilot 平台上的 S-Vehicle E2-Plus 飞控:硬件架构、引脚映射与固件刷写实战指南 ArduPilot 平台上的 S-Vehicle E2-Plus 飞控硬件架构、引脚映射与固件刷写实战指南【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilotS-Vehicle E2-Plus 是一款基于 STM32H743 的双处理器开源飞控其硬件定义已完整收录在 ArduPilot 的 ChibiOS 硬件定义体系中。本文以 libraries/AP_HAL_ChibiOS/hwdef/SVehicle-E2/README.md 为核心主线结合该板卡在仓库中的hwdef.dat、hwdef-bl.dat与defaults.parm等源码级配置系统讲解 E2-Plus 的硬件规格、UART/GPIO/PWM 映射、电源监控、传感器布局与固件刷写方法帮助你快速完成选型评估、装机接线与 ArduPilot 固件部署。硬件总览与处理器架构S-Vehicle E2-Plus 由 S-Vehicle 生产其官方 README 给出的核心硬件规格如下主控 MCUSTM32H753IIK6FMU运行 ArduPilot 主固件协处理器STM32F103IOMCU负责 PWM 输出与遥控输入解析3 组 IMUBosch BMI088、InvenSense ICM-20649、InvenSense ICM-42688P罗盘RM3100 磁力计气压计双 ICP-20100存储microSD 卡槽接口1 路以太网100Mbps、6 路 UART USBType-C、14 路 PWM 输出、PPM/SBus 与 DSM/SBus 输入、3 路 I2C、2 路 CAN、模拟 RSSI 输入、3 路电源监控输入从仓库的 hwdef.dat 可以看到硬件定义层的实际配置MCU STM32H7xx STM32H743xx声明主控为 H743 系列OSCILLATOR_HZ 16000000指定 16MHz 晶振FLASH_SIZE_KB 2048表明固件可用 2MB FlashAPJ_BOARD_ID AP_HW_SVehicle-E2则与 Tools/AP_Bootloader/board_types.txt 中的板卡 ID6110对应是地面站识别与固件匹配的关键标识。值得注意的是README 中标注的 MCU 型号为 STM32H753IIK6而 hwdef 中使用的是 STM32H743xx 内核定义两者同属 H7 高性能系列、Flash 容量相同属于硬件版本迭代中的正常差异实际以手上板卡丝印为准。IOMCU 双处理器架构E2-Plus 采用 ArduPilot 经典的 FMU IOMCU 双芯片设计。README 明确指出板上有一颗 STM32F103 实现 IOMCU。在 hwdef.dat 中两者的通信链路通过USART6建立# USART6 is for IOMCU PC6 USART6_TX USART6 PC7 USART6_RX USART6 IOMCU_UART USART6这种架构下主控 FMU 专注于飞行控制与传感器融合而 IOMCU 独立负责前 8 路主 PWM 输出与 RC 输入解析即使 FMU 侧出现异常PWM 输出仍可保持安全状态这是 E2-Plus 可靠性设计的核心。固件层面对应关系可在同一文件底部确认ROMFS io_firmware.bin Tools/IO_Firmware/iofirmware_f103_lowpolh.bin与ROMFS io_firmware_dshot.bin Tools/IO_Firmware/iofirmware_f103_dshot_lowpolh.bin分别定义了普通与支持 DShot 的 IOMCU 固件后者配合define HAL_WITH_IO_MCU_BIDIR_DSHOT 1启用双向 DShotBiDirectional DShot遥测回传。引脚定义图以下引脚图来自板卡 README展示了顶层元件布局与四个侧面的连接器定义接线时请以实物丝印为准UART 映射与串口规划E2-Plus 提供 6 路硬件 UART 加 USB 的串口资源README 给出的默认映射如下串口硬件外设功能默认协议SERIAL0USBUSB 连接MAVLink2SERIAL1UART7TELEM1MAVLink2SERIAL2UART5TELEM2MAVLink2SERIAL3USART1GPS1/罗盘/安全开关—SERIAL4UART8GPS2/罗盘—SERIAL5USART2TELEM3RS422SERIAL6UART4用户自定义—SERIAL7USART3调试口—SERIAL8USB 虚拟串口——所有 UART 均支持完整 DMA其中 TELEM3 可配置为 RS422 接口驱动已包含在固件中。在 hwdef.dat 中串口顺序由SERIAL_ORDER OTG1 UART7 UART5 USART1 UART8 USART2 UART4 USART3 OTG2定义即 USB(OTG1)→SERIAL0、UART7→SERIAL1……依此类推。此外hwdef.dat中 GPS1USART1与 GPS2UART8均标注了NODMA说明这两个串口在硬件定义上刻意不使用 DMA规划外接高速 GPS 时应留意这一限制。RC 输入RC 输入默认接在舵机排一端的 RCIN 引脚图中标注为 PPM。该引脚可接收 ArduPilot 支持的全部单向 RC 协议含 PPM若使用 CRSF/ELRS 这类双向或半双工协议则需要占用一路完整 UART。在 hwdef.dat 中RC 输入的底层定义为PI5 TIM8_CH1 TIM8 RCININT PULLDOWN LOW即 TIM8_CH1 的输入捕获引脚对应 RC 接收机的中断解析。PWM 输出与 DShot 分组E2-Plus 支持最多 14 路 PWM 输出划分为两个区域M1–M8主输出由 STM32F103 IOMCU 控制支持 DShot分为 3 组M1、M2 为第 1 组M3、M4 为第 2 组M5、M6、M7、M8 为第 3 组A1–A6辅助输出直接连接 STM32H743 FMU分为 2 组A1–A4 为一组A5、A6 为第二组同一组内的通道必须使用相同的输出频率若组内任一通道启用 DShot则整组都必须使用 DShot。这一点在 hwdef.dat 的定时器分配中体现得很清楚A1–A4 分布在 TIM5通道 1–4A5、A6 分布在 TIM4通道 2–3A7、A8 由 TIM12 提供且因 TIM12 无 TIMn_UP DMA 选项而标注NODMA。GPIO 映射与继电器/按键复用A5、A6 两路 FMU PWM 输出可以复用为 GPIO接继电器、按键、转速计等。使用时需将BRD_PWM_COUNT设置为小于 6 的值例如设为 4 时PWM A5 与 PWM A6 即释放为 GPIO。GPIO 编号遵循 ArduPilot 的 PIN 变量约定AUX5 → GPIO 54AUX6 → GPIO 55完整 GPIO 列表如下摘自 README 并与 hwdef.dat 中的 GPIO(n) 标注一一对应标签GPIO 编号PWM(1)50PWM(2)51PWM(3)52PWM(4)53PWM(5)54PWM(6)55PWM(7)56PWM(8)57FMU_CAP158NFC_GPIO60HEATER_EN80SPEKTRUM_PWR73LED_RED90LED_GREEN91LED_BLUE92SP3_DRDY293ALARM77PWM_VOLT_SEL81MAIN(1)101MAIN(2)102MAIN(3)103MAIN(4)104MAIN(5)105MAIN(6)106MAIN(7)107MAIN(8)108例如要在 Mission Planner 中将某个继电器接到 A5可在RELAY相关参数中填写54即 AUX5。同时在 hwdef.dat 可以看到FMU_CAP1与NFC_GPIO等专用引脚的 GPIO 定义。电源监控与默认电池参数E2-Plus 提供 3 路电源监控输入。默认配置下官方 PDB 为 DroneCAN 电源模块必须连接到 Power 2若使用模拟电源模块则接 Power 1电压在引脚 6电流在引脚 9。defaults.parm 定义了出厂默认参数BATT_MONITOR8 CAN_P1_DRIVER1 CAN_P2_DRIVER1BATT_MONITOR8对应 INA2XX 系列电源监控且两条 CAN 总线默认启用 DroneCAN 驱动。在 hwdef.dat 中INA226 的底层定义为define HAL_BATTMON_INA2XX_BUS 1 define HAL_BATTMON_INA2XX_ADDR 0同时模拟电源通道的默认缩放系数也在 hwdef 中给出HAL_BATT_VOLT_SCALE 21.0、HAL_BATT_CURR_SCALE 24.0电压引脚为 6、电流引脚为 9与 README 描述一致。罗盘与传感器布局E2-Plus 板载 RM3100 磁力计但受干扰影响官方建议通常搭配外部 I2C/CAN 罗盘如 GPS/罗盘一体模块使用。在 hwdef.dat 中可以看到内部罗盘的挂载声明COMPASS RM3100 I2C:0:0x20 false ROTATION_PITCH_180ROTATION_PITCH_180表示板载罗盘需要绕俯仰轴旋转 180° 安装补偿。3 组 IMU 在 hwdef 中均有明确的 SPI 总线和旋转定义IMU Invensensev3 SPI:icm42688 ROTATION_ROLL_180_YAW_270 IMU BMI088 SPI:bmi088_a SPI:bmi088_g ROTATION_PITCH_180 IMU Invensensev2 SPI:icm20649 ROTATION_ROLL_180双气压计 ICP201XX 分别挂在 I2C:0 与 I2C:2 上BARO ICP201XX I2C:0:0x64与BARO ICP201XX I2C:2:0x63。此外 hwdef 还启用了 IMU 加热器HAL_HAVE_IMU_HEATER 1默认目标温度 45°CP 项 50、I 项 0.07以及 RAMTRONFRAM非易失存储HAL_STORAGE_SIZE 32768、HAL_WITH_RAMTRON 1用于存放参数与日志缓冲。模拟输入通道README 列出 6 路模拟输入hwdef.dat 中均有对应 ADC 引脚声明ADC 引脚功能ADC Pin9电池电压ADC Pin8电池电流ADC Pin5VDD 5V 电源感知ADC Pin13ADC 3.3V 感知ADC Pin12ADC 6.6V 感知ADC Pin10RSSI 电压监测底层对应关系见 hwdef.datPF12 BATT_VOLTAGE_SENS、PB0 BATT_CURRENT_SENS、PB1 VDD_5V_SENS、PC2 ADC1_6V6、PC3 ADC1_3V3以及BATT_MONITOR默认值HAL_BATT_MONITOR_DEFAULT 4模拟电源监控。加载固件固件可在 ArduPilot 固件服务器的 SVehicle-E2 子目录获取。板卡出厂已预装兼容 ArduPilot 的引导程序bootloader因此可以使用任意支持 ArduPilot 的地面站如 Mission Planner直接加载*.apj固件文件。从 hwdef-bl.dat 可以看出引导程序的实现细节bootloader 位于 Flash 起始偏移FLASH_RESERVE_START_KB 0固件加载地址偏移为FLASH_BOOTLOADER_LOAD_KB 128启用 DFU 刷写ENABLE_DFU_BOOT 1与 SD 卡刷写AP_BOOTLOADER_FLASH_FROM_SD_ENABLED 1——这意味着除了通过地面站刷.apj还可以在 DFU 模式下烧录 bootloader或将固件放入 microSD 卡从卡启动刷写。主固件侧同样保留ENABLE_DFU_BOOT 1以便后续更新 bootloader。装机建议小结电源接线使用官方 DroneCAN PDB 时接 Power 2使用模拟电源模块时接 Power 1电压引脚 6、电流引脚 9。串口规划默认 TELEM1/TELEM2 已占用GPS 走 SERIAL3/SERIAL4扩展设备优先考虑 SERIAL5RS422与 SERIAL6。RC 协议PPM/SBus 直连 RCINCRSF/ELRS 需要占用完整 UART。PWM 分组M1–M8 主输出、A1–A6 辅助输出同组通道频率与 DShot 配置必须保持一致。罗盘优先外接 GPS/罗盘一体模块板载 RM3100 可作为冗余。GPIO 复用需要额外继电器/按键时将BRD_PWM_COUNT调低以释放 A5/A6。如需进一步核对硬件定义细节可直接阅读仓库中的 hwdef.dat、hwdef-bl.dat 与 defaults.parm三者共同构成了 E2-Plus 在 ArduPilot 中的完整硬件描述与默认行为。【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表