ArduPilot BETAFPV F405 AIO 飞控硬件支持详解:串口映射、PWM/ESC 配置与参数说明
ArduPilot BETAFPV F405 AIO 飞控硬件支持详解串口映射、PWM/ESC 配置与参数说明【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot本文以 ArduPilot 仓库中 BETAFPV-F405 板级硬件定义目录libraries/AP_HAL_ChibiOS/hwdef/BETAFPV-F405/为核心系统讲解 BETAFPV F405 AIO 系列飞控2-3S 20A AIO FC V1、F405 4S 20A Toothpick V5、F4 1S 12A AIO V3在 ArduPilot 中的硬件支持细节MCU/传感器配置、六个串行端口的映射与用途、PWM/DShot 分组约束、电池监测默认参数、OSD 驱动选型以及固件烧录流程。读完后你可以为这类集成 4-in-1 ESC 的 FPV 板卡完成 ArduPilot 刷写、串口协议分配与参数核对。1. 硬件概况BETAFPV F405 AIO 是 BETAFPV 生产的一系列一体化All-In-One飞控即把飞控板与 4-in-1 电调集成在一块板上常见于 FPV 穿越机场景。官方支持文档列出的主要特性为MCUSTM32F405RGT6168MHz陀螺仪ICM42688-P板载 16Mb FlashBEC 输出5V2A4V 输入气压计BMP280OSDAT7456E最多 5 个 UARTUART1、UART3、UART4、UART5、UART65 路 PWM 输出其中 4 路电机输出被板载 4-in-1 ESC 内部占用1 路集成 LED集成 4-in-1 BlueJay 电调从 hwdef.dat 的构建定义可以看到这块板在 ArduPilot 中的固件构建目标是 CopterAUTOBUILD_TARGETS Copter板卡 ID 为AP_HW_BETAFPV_F405与 Tools/AP_Bootloader/board_types.txt 中记录的AP_HW_BETAFPV_F405 1125对应。MCU 定义为STM32F4xx / STM32F405xx外接 8MHz 晶振固件可用 Flash 为 1024KBbootloader 占据前 48KBFLASH_RESERVE_START_KB 48。由于板卡只有 1MB Flashhwdef 通过include ../include/minimize_fpv_osd.inc引入 minimize_fpv_osd.inc 进行瘦身该 include 文件针对低 Flash 的 FPV/OSD 飞行板卡关闭了光学流、IC 发动机、高级失速保护AFS、精确着陆PreLand等驱动仅保留 NMEA GPS、四/六/八轴电机框架等 FPV 场景实际用到的部分并且强制在 1MB 限制下保留 Tramp视频发射与 CRSF 遥测文本支持。2. 串口UART映射板卡上的串口在丝印上标记为 Rn/TnRn 是 UARTn 的接收脚RXTn 是发送脚TX。主 UART 映射表适用于 F4 2-3S 20A AIO FC V1如下| Name | Pin | 功能 | |:-|:-|:-| | SERIAL0 | COMPUTER | USB | | SERIAL1 | RX1/TX1 | UART1GPS启用 DMA | | SERIAL3 | TX3/RX3 | UART3ELRS内部占用可通过板卡改装释放详见 BETAFPV 商店说明 | | SERIAL4 | TX4/RX4 | UART4MSP DisplayPort用于 OSD | | SERIAL5 | RX5 | UART5SBUS反相仅连接到 RX | | SERIAL6 | TX6/RX6 | UART6备用启用 DMA |2.1 F405 4S 20A Toothpick 的差异| Name | Pin | 功能 | |:-|:-|:-| | SERIAL3 | RX3 | UART3SBUS | | SERIAL5 | RX5 | UART5此版本缺失 |2.2 F4 1S 12A AIO v3 的差异| Name | Pin | 功能 | |:-|:-|:-| | SERIAL5 | RX5 | UART5此版本缺失 | | SERIAL6 | RX6 | UART6SBUS |从 hwdef.dat 的SERIAL_ORDER定义可以印证主版本的串口编号规则SERIAL_ORDER OTG1 USART1 EMPTY USART3 UART4 UART5 USART6即 SERIAL0 为 USBOTG1SERIAL2 空缺SERIAL3 映射到 USART3。各串口的默认协议也在 hwdef 中固化SERIAL1USART1PA10 RX / PA9 TXSerialProtocol_GPSSERIAL3USART3PB10 TX / PB11 RXSerialProtocol_RCIN接板载 ELRS 接收机SERIAL4UART4PA0 TX / PA1 RXNODMASerialProtocol_MSP_DisplayPortOSD 的 MSP 通道SERIAL5UART5PD2 RXNODMA仅 RX接 SBUSSERIAL6USART6PC7 RX / PC6 TX备用串口。仓库中还存在一个变体定义 BETAFPV-F405-I2C/hwdef.dat它include主 hwdef 后将 USART3 的两个引脚PB10/PB11重新复用为 I2C2PB10 SCL / PB11 SDA并把 GPS 默认移到 UART6、RC 输入默认放到 UART1同时调整了 RELAY2 引脚与 DMA 分配——这对应文档提到的通过板卡改装/版本差异释放 UART3的硬件形态。3. RC 输入RC 输入通过板载 ELRS接 UART3或外部(UART6_RX/UART6_TX)引脚配置支持所有串行 RC 协议。这与 hwdef 中DEFAULT_SERIAL3_PROTOCOL SerialProtocol_RCIN的默认值一致出厂默认把 UART3 当作 RC 输入通道。如果改用 UART6 走 SBUS/CRSF 等串行协议则可使用 SERIAL6 的 DMA 能力。4. PWM 输出与 4-in-1 ESCBETAFPV F405 AIO 有 4 路 PWM 输出经内部走线直接接到板载 4-in-1 ESC板上的对应焊盘标记为 M1M4。这 4 路输出同时支持双向 DShotbi-directional DShot、单向 DShot 以及所有 PWM 类型。出厂默认配置为双向 DShot配合板载已刷写的 BlueJay 电调固件。PWM 通道分组约束关键PWM 1-2 属于 group1PWM 3-4 属于 group2PWM 5 属于 group3同一组内的通道必须使用相同的输出速率若组内任何一路使用 DShot则整组都必须使用 DShot。这是因为同一硬件定时器上的通道共享时钟与 DShot 时序参数。从 hwdef 的电机定义可以印证这一分组M1PB0TIM3_CH3、M2PB1TIM3_CH4共享 TIM3M3PA3TIM2_CH4、M4PA2TIM2_CH3共享 TIM2M2/M3 标注了BIDIR双向 DShot 能力第 5 路 PWMPB6TIM4_CH1是 NeoPixel LED 灯带通道独立成组。另外 hwdef 中还启用了DMA_NOSHARE SPI1*与DMA_PRIORITY TIM3* TIM2* SPI1*为电机定时器与陀螺仪 SPI 的 DMA 传输做优先级协调。5. 电池监测板载电压分压传感器与电流采样输入分别接到 4-in-1 ESC 的电流传感器上电压采样电路可承受最高 6S 锂电池。文档给出的正确电池参数为BATT_MONITOR 4 BATT_VOLT_PIN 12 BATT_VOLT_MULT 10.9 BATT_CURR_PIN 13 BATT_CURR_MULT 50这些参数在固件中已默认设置通常无需手动调整。对照 hwdef.dat 的 ADC 定义PC2 是电池电压采样脚HAL_BATT_VOLT_PIN 12HAL_BATT_VOLT_SCALE 11.0PC1 是电机电流采样脚HAL_BATT_CURR_PIN 11HAL_BATT_CURR_SCALE 19.6PC0 为 RSSI 模拟输入BOARD_RSSI_ANA_PIN 10且HAL_BATT_MONITOR_DEFAULT 4与文档中的BATT_MONITOR 4即模拟电压/电流监测模式一致。6. OSD 支持该板支持 OSD驱动为OSD_TYPE 1MAX7456 系列驱动AT7456E 与 MAX7456 协议兼容。hwdef 中的对应配置define OSD_ENABLED 1、define HAL_OSD_TYPE_DEFAULT 1OSD 芯片挂在 SPI3PC10 SCK / PC11 MISO / PC12 MOSI片选 PA15MODE010MHzOSD 字体以ROMFS_WILDCARD libraries/AP_OSD/fonts/font*.bin方式打包进固件 ROMFSOSD 的串行通信走 UART4 的 MSP DisplayPort 协议见第 2 节。7. 罗盘指南针BETAFPV F405 AIO 没有内置罗盘。hwdef 中通过define AP_COMPASS_PROBING_ENABLED 1让系统对外接 I2C 罗盘做探测HAL_I2C_INTERNAL_MASK 0表示无内部 I2C 总线并设置HAL_COMPASS_AUTO_ROT_DEFAULT 2作为外接罗盘的自动旋转默认值。由于通常没有罗盘hwdef 还启用了HAL_INS_TEMPERATURE_CAL_ENABLE 1IMU 温度校准以获得更精确的 IMU 数据源。8. GPIO / Relay 复用板上有一个 IO 引脚映射到 RELAY2GPIO 81通过将BRD_ALT_CONFIG设为 1 启用。启用后UART6_TX引脚改作继电器输出可用于控制外部 LED例如 Pavo 20 Pro 机身上的灯。对应 hwdef 定义PC6 EXTERN_GPIO1 OUTPUT GPIO(81) ALT(1) define RELAY2_PIN_DEFAULT 81注意ALT(1)表示这是 BRD_ALT_CONFIG1 时的替代功能而 defaults.parm 中默认写有RELAY2_DEFAULT 1即出厂参数即启用该 IO 功能注释明确 io on alternate config is on。9. NeoPixel LED板子底部有一颗 NeoPixel LED已预配置为输出 ArduPilot 的灯效序列它就是第 5 路 PWM 输出PB6TIM4_CH1。defaults.parm 中完成了该通道的默认配置# setup for LEDs on chan5 SERVO5_FUNCTION 120 # SERVO5 功能设为 LED NTF_LED_TYPES 257 NTF_LED_LEN 2同时默认参数还固化了电调与 ESC 通信设置# Bluejay installed by default SERVO_BLH_AUTO 1 # Blackbox/BLHeli 自动检测 SERVO_BLH_BDMASK 15 SERVO_DSHOT_ESC 2 MOT_PWM_TYPE 6 # 双向 DShot10. 固件加载流程初次刷写使用 DFU 方式按住板上的 bootloader 按钮同时插入 USB进入 DFU 模式用任意 DFU 工具加载with_bl.hex带 bootloader 的固件初次固件加载完成后之后即可通过任何 ArduPilot 地面站软件MAVLink 升级通道更新固件升级时应使用*.apj固件文件。Bootloader 侧的引脚与 Flash 布局定义在 hwdef-bl.dat 中bootloader 从 Flash 0 偏移开始FLASH_RESERVE_START_KB 0固件加载位置为 48KBFLASH_BOOTLOADER_LOAD_KB 48SWD 调试脚为 PA13SWDIO/PA14SWCLKPB5 用作 bootloader 指示灯HAL_LED_ON 0低电平点亮。11. 其他关键硬件细节源自 hwdef.dat除上述文档已覆盖的内容外hwdef.dat 还定义了若干与日常使用直接相关的细节DataFlash外挂 Flash 走 SPI2PB13/PB14/PB15片选 PB12104MHz日志记录启用HAL_LOGGING_DATAFLASH_ENABLED 1HAL_STORAGE_SIZE 1638416MB气压计BMP280 与 SPL06 共享 SPI3 上的BARO1_CSPB3分别以 MODE3 1MHz 与 5MHz 探测由于 4S 版本没有气压计hwdef 设置HAL_BARO_ALLOW_INIT_NO_BARO 1允许无气压计启动同时启用AP_BARO_THST_COMP_ENABLED 1气压推力补偿配合板载电流传感器估算推力IMUICM42688-Phwdef 中写为Invensensev3驱动类别挂 SPI1PA5/PA6/PA7片选 PA4安装方向为ROTATION_ROLL_180_YAW_270电机顺序HAL_FRAME_TYPE_DEFAULT 12Quad XBetaflight 顺序适配标准 Betaflight/X 向电调接线习惯蜂鸣器PB4HAL_BUZZER_PIN 80。12. 小结与配置核对清单对 BETAFPV F405 AIO 系列刷写 ArduPilot 后建议按以下清单核对固件首次 DFU 烧with_bl.hex后续用*.apj升级串口SERIAL3 默认 RCINELRSSERIAL4 为 MSP OSDSERIAL1 默认 GPSSERIAL6 为 DMA 备用口Toothpick 与 1S 12A v3 版本注意 UART 差异表电机默认双向 DShot BlueJayMOT_PWM_TYPE 6同组通道保持相同速率/协议电池BATT_MONITOR 4、BATT_VOLT_PIN 12、BATT_VOLT_MULT 10.9、BATT_CURR_PIN 13、BATT_CURR_MULT 50为出厂默认一般不改OSDOSD_TYPE 1无内置罗盘需要姿态参考精度时外接 I2C 罗盘固件会自动探测IOBRD_ALT_CONFIG 1时 UART6_TX 变为 RELAY2GPIO 81可用于外部 LED 控制。以上信息均来自 README.md、hwdef.dat、defaults.parm、hwdef-bl.dat 与 minimize_fpv_osd.inc可结合源码进一步核对引脚与默认值。【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考