
ArduPilot ChibiOS 平台 GEPRC TAKER H743 BT 飞控硬件定义与串口配置详解【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot导读本文基于 ArduPilot 仓库中libraries/AP_HAL_ChibiOS/hwdef/GEPRC_TAKER_H743/目录的硬件定义hwdef文档与配套文件系统讲解 GEPRC TAKER H743 BT 飞控在 ArduPilot 中的默认硬件映射——包括 7 路 UART 与 USB 的串口分配、双向 DShot 的 PWM 分组约束、电池监测默认参数、双 IMU/气压计/OSD 的 SPI 与 I2C 分配以及 DFU 初始刷机的完整流程。读完后你可以直接把这块板子接入 ArduCopter 并正确配置 RC 输入、FrSky 遥测与外置罗盘。1. 板卡概况与默认硬件特性TAKER H743 BT 是 GEPRC 出品的竞速/穿越风格飞控其硬件定义由 hwdef.dat 描述pin 信息致谢来自 Betaflight 社区资料。README 列出的核心特性与源码中的对应关系如下README 特性hwdef.dat 中的实现证据STM32H743 主控MCU STM32H7xx STM32H743xxMCU_CLOCKRATE_MHZ 4808 MHz 外部晶振MPU6000 ICM42688 双 IMUSPI1 挂 MPU6000SPI2 挂 ICM42688IMU段声明两者及各自旋转补偿SPL06-001 气压计BARO SPL06 I2C:0:0x76挂在 I2C1PB8/PB9microSD 512MB 闪存日志SPI3 挂 SDCARDHAL_OS_FATFS_IO 1走 FatFSHAL_LOGGER_MIN_MB_FREE 25要求 SD 卡至少 25 MB 剩余空间AT7456E OSDSPI4 挂SPIDEV osdOSD_ENABLED 1且HAL_OSD_TYPE_DEFAULT 1对应 AT7456 系列7 路 UARTSERIAL_ORDER OTG1 USART1 USART2 USART3 UART4 EMPTY USART6 UART7 UART88 路 PWM 输出PB0/PB1/PB5/PB4/PD12/PD13/PC8/PC9分属 TIM3/TIM4/TIM8 三个定时器从源码结构看SERIAL_ORDER中的EMPTY占位符解释了为什么板子上没有 SERIAL5——ChibiOS HAL 要求序号与物理 UART 一一对应此处跳过了 USART5。2. UART 映射每路串口默认干什么板卡丝印上以 Rn/Tn 标注各 UARTRn 为 UARTn 的接收脚Tn 为发送脚。README 给出的映射与 hwdef.dat 中define DEFAULT_SERIALn_PROTOCOL完全一致SERIAL0 - USBOTG1同时是 IO debug consolePA10 复用。SERIAL1 - USART1DisplayPortDMA 可用默认SerialProtocol_MSP_DisplayPort即出厂即支持 HD 眼镜 DisplayPort OSD并启用了AP_MSP_VIDEOTX_ENABLED 1。SERIAL2 - USART2RCINDMA 可用默认 RC 输入通道。SERIAL3 - USART3连接板载蓝牙模块DEFAULT_SERIAL3_PROTOCOL SerialProtocol_None当前 ArduPilot 无法使用DMA 被NODMA关闭。SERIAL4 - UART4GPS。SERIAL6 - USART6用户串口默认无协议。SERIAL7 - UART7用户串口默认无协议NODMA。SERIAL8 - UART8ESC 遥测默认SerialProtocol_ESCTelemetryNODMA。这里值得注意一个设计细节hwdef 中对 USART3、UART7、UART8 都标注了NODMA注释说明这是为了配合双向 DShot 而牺牲部分设备的 DMA 能力In order to accommodate bi-directional dshot certain devices cannot be DMA enabled。DMA_PRIORITY TIM3* TIM4* USART2*与DMA_NOSHARE SPI1* SPI2*则进一步约束了 DMA 通道的优先级与独占关系保证电机定时器与 RC 输入优先获得 DMA 资源。3. RC 输入单向协议直连FPort/CRSF 需半双工配置默认 RC 输入走 USART2 的 RXPA3支持所有单向RC 协议SBUS、IBUS 等但不支持 PPM。若接收机是FPort 或全双工协议如 CRSF/ELRS由于共用一根线README 要求接收机同时接到 USART2 的 TX 与 RX即 TX2 也要用设置SERIAL2_OPTIONS 7invert TX/RX, half duplexTX/RX 翻转半双工设置RSSI_TYPE 3从 CRSF 帧中解析 RSSI。这与 hwdef 中 USART2 保留 DMA 且未加NODMA的安排相呼应——半双工 CRSF 需要较可靠的 DMA 收发。4. FrSky 遥测配置FrSky 遥测可以使用除 SERIAL3蓝牙占用外任意 UART 的 TX 脚输出。以 SERIAL6 为例启用 FrSky S.PORT 需设置SERIAL6_PROTOCOL 10 # 10 FrSky S.PORT SERIAL6_OPTIONS 7 # 半双工/翻转单向用 TX 发送5. OSD 与 VTX双 OSD 并行板载 AT7456ESPI4走模拟 OSD同时 HD VTX 连接器上的 HD 眼镜可走 DisplayPort OSD二者可同时工作。defaults.parm 中还预设了OSD_TYPE2 5配合第二路 OSD 显示类型。VTX 连接器注意SH1.0-6P 连接器支持标准 DJI HD VTX 连接引脚 1 为 12V可通过焊盘选择切到 VBAT切勿接入期望 5V 供电的设备。6. PWM / DShot 输出4 个分组组内必须统一协议TAKER H743 BT 最多支持 9 路 PWM/DShotM1–M4 在 ESC 接插件上PB0/PB1/PB5/PB4TIM3 的 CH3/CH4/CH2/CH1M5–M8 为焊盘PD12/PD13 走 TIM4PC8/PC9 走 TIM8M9PA8TIM1_CH1默认分配给串口 LED 灯带也可改作普通 PWM 输出。defaults.parm 中SERVO9_FUNCTION 120LED正是这一默认分配的参数化体现。PWM 按定时器分为 4 组组通道定时器group1PWM 1-4TIM3group2PWM 5-6TIM4group3PWM 7-8TIM8group4PWM 9TIM1约束与能力同一组内必须使用相同输出速率组内任一通道使用 DShot则全组必须用 DShot通道 1-8 支持双向 DShot——hwdef 中 M1、M4、M5、M7 等关键脚标注了BIDIR标志如PB0 TIM3_CH3 TIM3 PWM(1) GPIO(50) BIDIR这正是第 2 节中部分串口放弃 DMA 的原因双向 DShot 通道可回读 ESC 状态配合 SERIAL8 的 ESC Telemetry 协议使用。7. 电池监测内置压降检测 外部电流口板载电压传感器经 ADC1 读取PC3 BATT_VOLTAGE_SENS、PC2 BATT_CURRENT_SENSESC 接插件上有外置电流传感器输入。电压传感器支持最高 6S LiPo。hwdef.dat 通过define HAL_BATT_*_DEFAULT写入了默认电池参数BATT_MONITOR 4 # 使用 ADC 引脚直接监测 BATT_VOLT_PIN 13 # 对应 PC3 的 ADC 引脚号 BATT_VOLT_SCALE 11.13 # 电压分压比README 写作 11.1hwdef 精确值为 11.13 BATT_CURR_PIN 12 # 对应 PC2 的 ADC 引脚号 BATT_AMP_PERVLT 28.5 # 每伏特对应 28.5 安培由于这些默认值由硬件定义文件直接注入刷机后无需手动配置即可出数。8. 罗盘无内置走 I2C 探测板子没有内置磁计但可以在 SDA/SCL 焊盘I2C1PB9/PB8外接罗盘。hwdef 中AP_COMPASS_PROBING_ENABLED 1启动时对 I2C 总线进行全类型罗盘探测HAL_COMPASS_AUTO_ROT_DEFAULT 2外置罗盘的默认自动旋转补偿。双 IMU 的旋转补偿也在此文件中定义ROTATION_ROLL_180给 ICM42688、ROTATION_YAW_90给 MPU6000安装方向已由硬件定义固化。9. 固件加载DFU 首刷 GCS 日常更新首次刷写按住 bootloader 按钮的同时插入 USB进入 DFU 模式此时应烧录with_bl.hex带 bootloader 的固件镜像任意 DFU 工具完成初始加载。日常更新首次刷入后即可用任意 ArduPilot 地面站软件更新使用.apj固件文件。这一流程在仓库中有明确支撑hwdef-bl.datbootloader 的硬件定义中FLASH_RESERVE_START_KB 0FLASH_BOOTLOADER_LOAD_KB 384表示 bootloader 从 flash 0 偏移处运行、把固件放在 384 KB 处而主固件 hwdef.dat 的FLASH_RESERVE_START_KB 384与之一一对应。板级 ID 为APJ_BOARD_ID AP_HW_GEPRC_TAKER_H743对应 board_types.txt 中的编号1502。构建该板固件时以 ArduCopter 为例./waf copter:geprc_taker_h743产物位于build/ArduCopter/下其中*with_bl.hex用于 DFU 首刷.apj用于地面站更新。10. 小结该板在 ArduPilot 中的定位从本目录的三组文件README、hwdef.dat、defaults.parm可以看出TAKER H743 BT 被定位为出厂即可用的竞速板DisplayPort OSD、ESC 遥测、电池监测、SD 卡日志、LED 灯带默认功能全部在硬件定义层预置用户真正需要手动配置的主要是三件事——FPort/CRSF 接收机时的SERIAL2_OPTIONS7RSSI_TYPE3、FrSky 遥测串口协议、以及外接罗盘后的安装校准。所有参数与引脚的事实依据均可在 GEPRC_TAKER_H743 目录 中逐行核对。【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考