ARTICLE DETAIL

资讯详情

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

ArduPilot 支持的 MFT-SEMA100 飞控板:硬件规格、引脚映射与配置指南

ArduPilot 支持的 MFT-SEMA100 飞控板:硬件规格、引脚映射与配置指南 ArduPilot 支持的 MFT-SEMA100 飞控板硬件规格、引脚映射与配置指南【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilotMFT-SEMA100 是由 MFT Savunma ve Havacılık LTD. ŞTİ. 设计生产的一款高性能开源飞控板其完整的 ArduPilot 板级支持BSP位于 libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100 目录下。本文以该目录下的 README.md 为骨架结合 hwdef.dat、hwdef-bl.dat 与 defaults.parm 等板级定义文件系统讲解该板的硬件资源、串口/PWM/CAN/I2C 映射、电池监测、IMU 加热器调参以及固件加载方式。读完本文你将掌握如何为 MFT-SEMA100 配置各外设参数、规避 DMA 与输出分组的限制并理解 ArduPilot 如何通过 hwdef 描述文件驱动这块 STM32H743 飞控。一、板卡定位与特性总览MFT-SEMA100 是一块面向多旋翼、固定翼等无人机场景的紧凑型飞控板README 中列出的核心特性如下STM32H743 微控制器Arm Cortex-M7 内核主频可达 480 MHz具备 2 MB 板载 Flash见 hwdef.dat 中FLASH_SIZE_KB 2048BMI088 IMU博世工业级六轴惯性测量单元加速度计 陀螺仪通过 SPI 接入BMP390 气压计板载高精度气压传感器hwdef 中登记为同系列的 BMP388 驱动详见下文LIB3MDL 磁力计板载三轴磁罗盘MicroSD 卡槽支持 FAT 文件系统日志记录5 个 UART外加 USB 与一路仅接收串口共 7 个可用的串行接口12 路 PWM 输出分为 5 个输出组2 路 CAN 总线可用于 DroneCAN 外设2 路 I2C 总线对外接口 2 路板载 I2C板卡 ID 在 Tools/AP_Bootloader/board_types.txt 中登记为AP_HW_MFT-SEMA100编号 2000见 board_types.txt 第 472 行。二、机械尺寸与物理规格README 的 Mechanical 一节给出了板卡的物理参数项目规格安装孔位55 × 56 mm孔径 Φ4 mm外形尺寸64 × 65 × 10 mm重量15 g所有引脚均为2.54 mm 标准排针Pin Headers便于手工焊接与杜邦线连接。板卡通过XT30-PW 5V 输入供电XT30 接口可承受较大电流适合作为整机电源入口。三、处理器与板级定义hwdef 视角板级硬件配置由 hwdef.dat 描述该文件会被chibios_hwdef.py处理生成 ChibiOS 工程。关键定义包括MCU STM32H7xx STM32H743xx OSCILLATOR_HZ 16000000 FLASH_SIZE_KB 2048 FLASH_RESERVE_START_KB 128 APJ_BOARD_ID AP_HW_MFT-SEMA100 STM32_ST_USE_TIMER 2MCU 与晶振STM32H743xx16 MHz 外部晶振OSCILLATOR_HZ 16000000Flash 前 128 KB 保留给 bootloaderFLASH_RESERVE_START_KB 128。USB 标识USB_STRING_PRODUCT MFT-SEMA100制造商字符串为 MFT连接 USB 后地面站即可识别板卡型号同时通过PH15 USB_HS_ENABLE OUTPUT HIGH将 USB 配置为 Full-Speed 模式。调试接口PA13 JTMS-SWDIO与PA14 JTCK-SWCLK提供标准 SWD 调试口可用 ST-Link v2 或 Black Magic Probe 连接。系统定时器使用 TIM2STM32_ST_USE_TIMER 2作为 ChibiOS 系统时基。值得注意的是README 标称的气压计为 BMP390而 hwdef.dat 中登记的是BARO BMP388 I2C:1:0x77I2C3 总线、地址 0x77。BMP388 与 BMP390 同属博世 BMP38x 系列寄存器布局兼容可以推断该板使用的驱动可同时支持两者实际识别以传感器返回的 Chip ID 为准。四、UART 串口映射详解README 给出的串口映射如下串口物理端口默认功能备注SERIAL0USB控制台 / MAVLinkOTG1SERIAL1UART1 (USART1)MAVLink2 数传DMA 使能SERIAL2UART2 (USART2)MAVLink2 数传DMA 使能SERIAL3UART3 (USART3)GPSREADME 标注 DMAhwdef 实为 NODMASERIAL4UART5GPS2第二 GPSREADME 标注 DMAhwdef 实为 NODMASERIAL5UART7通用默认 NoneDMA 使能含 CTS/RTSSERIAL6UART8RC 接收机RX only仅接收对应关系由 hwdef.dat 中的串行顺序与引脚定义决定SERIAL_ORDER OTG1 USART1 USART2 USART3 UART5 UART7 UART8 OTG2 PA10 USART1_RX USART1 PA9 USART1_TX USART1 PD6 USART2_RX USART2 PD5 USART2_TX USART2 PD9 USART3_RX USART3 NODMA PD8 USART3_TX USART3 NODMA PD2 UART5_RX UART5 NODMA PC12 UART5_TX UART5 NODMA PE7 UART7_RX UART7 PE8 UART7_TX UART7 PE10 UART7_CTS UART7 PE9 UART7_RTS UART7 PE0 UART8_RX UART8几点需要在工程实践中注意的细节串口默认协议ArduPilot 的默认串口协议定义于 libraries/AP_SerialManager/AP_SerialManager.cpp其中 SERIAL3/SERIAL4 默认均为SerialProtocol_GPS。SERIAL1/SERIAL2 默认为SerialProtocol_MAVLink2与 README 描述一致SERIAL5UART7默认协议为None需按需通过SERIAL5_PROTOCOL配置。SERIAL6 在 hwdef 中通过define DEFAULT_SERIAL6_PROTOCOL SerialProtocol_RCIN默认指定为 RC 输入协议。DMA 差异说明README 将 SERIAL3、SERIAL4 描述为 DMA-enabled但 hwdef.dat 中 USART3 与 UART5 均标注了NODMA而 USART1、USART2、UART7 未标注默认启用 DMA。以 hwdef 为准SERIAL3/SERIAL4 实际未启用 DMA在高波特率与高负载场景下可能略有额外 CPU 开销SERIAL1/SERIAL2 的 DMA 对 MAVLink2 高吞吐数传有明显帮助。GPS 接线主 GPS 接 UART3SERIAL3SERIAL3_PROTOCOL默认为 GPS第二 GPS 接 UART5SERIAL4。两个端口波特率默认 921600可通过SERIAL3_BAUD/SERIAL4_BAUD调整注意与 GPS 模块的自动波特率检测配合。UART7 硬件流控UART7_CTS/UART7_RTS位于 PE10/PE9可用于需要流控的外设如某些数传模块。UART8 仅接收PE0 只有 RX 引脚专用于 SBUS/DSM 等单线接收机协议不可用于收发双向通信。五、RC 输入MFT-SEMA100 的默认 RC 输入配置在UART8 的 RCIN 引脚PE0RX only上对应 SERIAL6。hwdef 通过define DEFAULT_SERIAL6_PROTOCOL SerialProtocol_RCIN直接将其默认协议设为 RC 输入因此插上 SBUS/DSM 接收机后无需额外配置SERIAL6_PROTOCOL即可使用。若使用 CRSF、FPort 等其他协议需在RC_PROTOCOLS中勾选对应协议并使能该串口。六、PWM 输出与协议分组MFT-SEMA100 支持最多12 路 PWM 输出输出引脚及对应的定时器通道定义在 hwdef.datPB0 TIM1_CH2N TIM1 PWM(1) GPIO(50) PB1 TIM1_CH3N TIM1 PWM(2) GPIO(51) PC7 TIM8_CH2 TIM8 PWM(3) GPIO(52) PC8 TIM8_CH3 TIM8 PWM(4) GPIO(53) PA0 TIM5_CH1 TIM5 PWM(5) GPIO(54) PA1 TIM5_CH2 TIM5 PWM(6) GPIO(55) PA2 TIM5_CH3 TIM5 PWM(7) GPIO(56) PA3 TIM5_CH4 TIM5 PWM(8) GPIO(57) PD14 TIM4_CH3 TIM4 PWM(9) GPIO(58) PD15 TIM4_CH4 TIM4 PWM(10) GPIO(59) PA6 TIM3_CH1 TIM3 PWM(11) GPIO(60) PA7 TIM3_CH2 TIM3 PWM(12) GPIO(61)输出分组规则PWM 输出按定时器划分为 5 个组同一组内的通道必须使用相同的输出协议输出组通道定时器Group 11, 2TIM1Group 23, 4TIM8Group 35, 6, 7, 8TIM5Group 49, 10TIM4Group 511, 12TIM3组内通道还必须使用相同的输出频率。例如若通道 5 需要 PWM 400 Hz则 6、7、8 通道也只能运行在 400 Hz但不同组之间可以独立设置频率与协议如一组跑 DShot、另一组跑普通 PWM。这一约束源于同一定时器的共享时钟配置是 STM32 定时器架构的固有限制。蜂鸣器输出板载蜂鸣器由 TIM12 驱动定义在 hwdef 中PB15 TIM12_CH2 TIM12 GPIO(77) ALARMALARM标记使其作为通知蜂鸣器输出配合BZ_ENABLE等参数使用不占用 PWM1-12 通道。七、GPIO 编号映射ArduPilot 的PIN系列参数如RELAY_PIN、GPIO脚本接口使用板级 GPIO 编号。MFT-SEMA100 的编号由 hwdef 中的GPIO(n)决定PWM 通道GPIO 编号PWM 通道GPIO 编号PWM150PWM756PWM251PWM857PWM352PWM958PWM453PWM1059PWM554PWM1160PWM655PWM1261此外还有几个特殊 GPIOGPIO(70) / GPIO(71)CAN1 / CAN2 静音控制GPIO_CAN1_SILENT/GPIO_CAN2_SILENT默认拉低可用于 CAN 总线静默模式切换GPIO(77)蜂鸣器ALARMGPIO(80)IMU 加热器使能HEATER_EN详见下文加热器章节GPIO(0) / GPIO(1)LED_BOOTLOADER / LED_ACTIVITY板载指示灯。八、电池监测MFT-SEMA100 板载电压传感器并在 ESC 连接器上提供外部电流传感器输入。电压采样可承受最高6S LiPo约 25.2 V。README 给出的默认电池参数参数默认值含义BATT_MONITOR4使用模拟电压 模拟电流监测方式BATT_VOLT_PIN19电压采样 ADC 引脚BATT_CURR_PIN8电流采样 ADC 引脚BATT_VOLT_MULT10电压分压倍率每伏 ADC 对应 10 V 实际电压BATT_AMP_PERVLT10电流传感器灵敏度每伏对应 10 A底层定义可在 hwdef.dat 中找到对应关系PA5 BATT_VOLTAGE_SENS ADC1 SCALE(1) PC5 BATT_CURRENT_SENS ADC1 SCALE(1) define HAL_BATT_MONITOR_DEFAULT 4 define HAL_BATT_VOLT_PIN 19 define HAL_BATT_VOLT_SCALE 10 define HAL_BATT_CURR_PIN 8 define HAL_BATT_CURR_SCALE 10即电压采样引脚为 PA5ADC1电流采样引脚为 PC5ADC1对应参数引脚号 19 与 8。如果外接的电流传感器灵敏度不同需要按传感器规格修改BATT_AMP_PERVLT若使用第二电池如固定翼双电源hwdef 中已预留了被注释掉的HAL_BATT2_VOLT_PIN定义可自行启用。九、板载 IMU、气压计与磁力计BMI088 IMUBMI088 通过 SPI4 双片选接入加速度计与陀螺仪各占一个片选PE2 SPI4_SCK SPI4 PE5 SPI4_MISO SPI4 PE6 SPI4_MOSI SPI4 PE3 BMI088_A_CS CS PE4 BMI088_G_CS CS SPIDEV bmi088_a SPI4 DEVID1 BMI088_A_CS MODE3 10*MHZ 10*MHZ SPIDEV bmi088_g SPI4 DEVID2 BMI088_G_CS MODE3 10*MHZ 10*MHZ IMU BMI088 SPI:bmi088_a SPI:bmi088_g ROTATION_PITCH_180_YAW_270其中ROTATION_PITCH_180_YAW_270表示 IMU 相对机体的安装旋转俯仰 180° 后再偏航 270°该旋转在固件内部自动补偿用户通常无需额外设置AHRS_ORIENTATION。hwdef 还通过define HAL_DEFAULT_INS_FAST_SAMPLE 7启用了 7 倍快速采样IMU 内部过采样后下变频有助于降低噪声与延迟。气压计板载气压计通过 I2C3 接入地址 0x77hwdef 中声明为BARO BMP388 I2C:1:0x77见 hwdef.dat。README 标称为 BMP390二者为同系列传感器驱动层兼容。气压计用于高度估计与 EKF 融合默认无需用户干预。磁力计罗盘板载 LIB3MDL 磁力计挂在 I2C2 上I2C_ORDER中 I2C2 排第一即内部总线优先探测COMPASS LIS3MDL I2C:ALL_INTERNAL:0x1C false ROTATION_ROLL_180 define AP_COMPASS_PROBING_ENABLED 1安装旋转为ROTATION_ROLL_180横滚 180°固件自动补偿首次使用建议在 Mission Planner / QGC 中执行罗盘校准AP_COMPASS_PROBING_ENABLED 1表示启动时会对 I2C 总线上的常见磁力计型号进行探测同时支持在 SDA/SCL 排针上外接外部罗盘I2C 接口。若外接罗盘与板载罗盘并存可分别用COMPASS_DEV_ID系列参数区分并选择主罗盘通常建议外部罗盘作主罗盘干扰更小。十、I2C 总线布局hwdef.dat 中共定义了 4 条 I2C 总线总线引脚用途I2C1PB8 (SCL) / PB7 (SDA)外部扩展I2C2PB10 (SCL) / PB11 (SDA)板载磁力计I2C3PA8 (SCL) / PC9 (SDA)板载气压计I2C4PD12 (SCL) / PD13 (SDA)外部扩展探测顺序由I2C_ORDER I2C2 I2C3 I2C4 I2C1决定内部总线I2C2/I2C3优先。define HAL_I2C_INTERNAL_MASK 1用于标记内部总线掩码确保外部设备如外接罗盘、测距仪挂在 I2C1/I2C4 时能正确枚举。板载磁力计的 DRDY 就绪引脚接在 PE11DRDY1_LIS3MDL INPUT可配合中断式读取降低 CPU 占用。十一、CAN 总线与 DroneCAN板载 2 路 CAN可用于 DroneCAN 电调、GPS、测距仪等外设PD0 CAN1_RX CAN1 PD1 CAN1_TX CAN1 PB5 CAN2_RX CAN2 PB6 CAN2_TX CAN2 PD4 GPIO_CAN1_SILENT OUTPUT PUSHPULL SPEED_LOW LOW GPIO(70) PD11 GPIO_CAN2_SILENT OUTPUT PUSHPULL SPEED_LOW LOW GPIO(71)CAN1/CAN2 均配备独立的静音控制引脚GPIO 70/71默认输出 LOW非静音。在 ArduPilot 中通过CAN_P1_DRIVER/CAN_P2_DRIVER参数启用 DroneCAN 协议后即可自动枚举挂载的 DroneCAN 外设。十二、SD 卡与参数存储MicroSD 卡SD 卡通过 SPI1 接口接入PB3 SPI1_SCK SPI1 PB4 SPI1_MISO SPI1 PD7 SPI1_MOSI SPI1 PA15 SDCARD_CS CS PC4 SDCARD_DETECT INPUT SPIDEV sdcard SPI1 DEVID1 SDCARD_CS MODE0 400*KHZ 25*MHZ配合define HAL_OS_FATFS_IO 1启用 FAT 文件系统支持日志DataFlash/Logger可直接以文件形式写入 microSD 卡。注意 SPI 模式的 SD 卡速度低于 SDMMC 模式若需高带宽日志建议降低日志采样率。参数存储参数存储在板载 Flash 的 page 14STORAGE_FLASH_PAGE 14容量 32 KBHAL_STORAGE_SIZE 32768这意味着在断电时参数、航点等持久化数据保存在片内 Flash 而非 SD 卡更换 SD 卡不会丢失参数。十三、IMU 加热器配置MFT-SEMA100 板载 IMU 加热器用于低温环境下维持 IMU 温度稳定减少温漂对惯性导航精度的影响。加热器使能引脚为 PD10GPIO 80hwdef 定义如下PD10 HEATER_EN OUTPUT LOW GPIO(80) define HAL_HEATER_GPIO_PIN 80 define HAL_HAVE_IMU_HEATER 1加热器目标温度通过BRD_HEAT_TARG参数控制单位摄氏度。板卡出厂默认参数位于 defaults.parmBRD_HEAT_TARG 45 BRD_HEAT_P 50 BRD_HEAT_I 0.07BRD_HEAT_TARG目标温度默认 45 ℃。该参数定义于 libraries/AP_BoardConfig/AP_BoardConfig.cpp第 296-302 行取值范围-1 到 80 ℃其中-1 表示关闭加热器关闭后需重启生效。设置过高会增加整机功耗环境温度正常时也可考虑降低或关闭BRD_HEAT_P/BRD_HEAT_I加热控制环的 PID 比例与积分系数默认 50 / 0.07一般保持默认即可关联的BRD_TEMP_MARGIN参数AP_BoardConfig.cpp 第 439 行设置解锁检查时的温度余量——若 IMU 温度低于BRD_HEAT_TARG减去该余量解锁检查将失败设 0 可禁用低温检查这对寒区作业用户是重要的安全提示。十四、LED 指示hwdef 定义了板载 LEDPC13 LED_BOOTLOADER OUTPUT HIGH GPIO(0) PC6 LED_ACTIVITY OUTPUT LOW GPIO(1) define HAL_GPIO_A_LED_PIN 0 define HAL_GPIO_B_LED_PIN 1 define DEFAULT_NTF_LED_TYPES 743LED_BOOTLOADERGPIO 0bootloader 状态指示LED_ACTIVITYGPIO 1运行状态指示如 GPS 锁定、解锁状态等DEFAULT_NTF_LED_TYPES 743表示默认启用内置 LED 通知类型对应 2 进制位图组合包含传统 LED 行为。十五、固件加载与构建通过地面站加载推荐MFT-SEMA100 出厂预装ArduPilot 兼容 bootloader因此无需烧写引导程序直接使用任意 ArduPilot 兼容地面站如 Mission Planner、QGroundControl、MAVProxy加载.apj 格式固件即可用 USB 连接板卡SERIAL0对应USB_STRING_PRODUCT MFT-SEMA100选择对应机型的 MFT-SEMA100 固件进入地面站的固件刷写界面选择加载固件文件*.apj刷写完成后重新上电执行加速度计、罗盘、RC 等标准校准流程。板级构建配置固件侧板级配置见 hwdef.datbootloader 侧配置见 hwdef-bl.datbootloader 构建中FLASH_RESERVE_START_KB 0、FLASH_BOOTLOADER_LOAD_KB 128表明 bootloader 位于 Flash 起始 0 偏移处并将固件引导到 128 KB 之后的地址与固件侧FLASH_RESERVE_START_KB 128的保留区完全对应bootloader 镜像还会将 BMI088 片选PE3/PE4与 SD 卡片选PA15预先置高避免上电瞬间外设误使能若使用./waf configure --board MFT-SEMA100方式从源码构建生成的 .apj 即可通过地面站加载直接从仓库 libraries/AP_HAL_ChibiOS/hwdef/MFT-SEMA100 目录可以查看该板完整的外设接线与参数默认值。十六、快速配置清单综合以上分析给出 MFT-SEMA100 上电后的标准配置路径串口确认SERIAL3_PROTOCOLGPS接主 GPS、SERIAL4_PROTOCOLGPS2可选第二 GPS、SERIAL1/2_PROTOCOLMAVLink2数传RC 输入已由默认SERIAL6_PROTOCOLRCIN 覆盖PWM按电机/舵机数量规划通道注意同组如 5-8 通道必须同协议同频率需要 DShot 时整组切换电池核对BATT_VOLT_PIN19、BATT_CURR_PIN8按实际传感器规格确认BATT_VOLT_MULT与BATT_AMP_PERVLT罗盘执行罗盘校准必要时通过COMPASS_ORIENT与COMPASS_DEV_ID区分板载/外接罗盘加热器寒区作业确认BRD_HEAT_TARG默认 45 ℃可设 -1 关闭留意BRD_TEMP_MARGIN对解锁的影响CAN使用 DroneCAN 外设时配置CAN_P1_DRIVER/CAN_P2_DRIVERSD 卡插入 microSD 卡以启用文件系统日志LOG_DISARMED等日志选项按需设置。参考资料MFT-SEMA100 官方板级 READMEMFT-SEMA100 hwdef.dat 板级定义MFT-SEMA100 hwdef-bl.dat bootloader 定义MFT-SEMA100 defaults.parm 默认参数板卡 ID 登记表BRD_HEAT_TARG 等加热器参数定义串口默认协议定义【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表