
ThePeach FCC-R1 飞控板 ArduPilot 硬件支持详解规格、引脚映射与 hwdef 源码剖析【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilotThePeach FCC-R1 是一款由韩国 ThePeach 公司设计制造的高端飞控板已作为一级公民被 ArduPilot 官方仓库原生支持对应板卡 ID 213。本文以 ThePeach FCC-R1 官方硬件文档 为骨架完整梳理其硬件规格、连接器布局、UART 映射与电源等级要求并深入其 hwdef.dat 与 hwdef-bl.dat 源码说明该板在 ArduPilot 中是如何被定义、驱动和引导的。读完本文你将掌握该板卡的选型依据、接线要点、串口规划以及基于 hwdef 机制的固件定制与底层工作原理。板卡概述与支持状态ThePeach FCC-R1是 ThePeach 设计制造的高级自动驾驶仪autopilot。需要特别强调ArduPilot 并不生产该或任何飞控硬件硬件支持与合规问题应直接联系制造商 ThePeach。但在软件层面该板已获得 ArduPilot 官方仓库的完整支持——硬件定义文件位于 libraries/AP_HAL_ChibiOS/hwdef/thepeach-r1/包含README.md面向用户的硬件规格与接线文档本文主体hwdef.dat飞控应用固件ArduCopter、ArduPlane、ArduRover、ArduSub 等的完整硬件定义hwdef-bl.dat引导程序bootloader专用的硬件定义main.png、pinmap.png板卡实物与引脚映射图。在 Tools/AP_Bootloader/board_types.txt 中TARGET_HW_THE_PEACH_R1被分配了板卡 ID213与同系列的另一款板卡TARGET_HW_THE_PEACH_K1ID 212硬件定义见 thepeach-k1区分。该板卡 ID 由引导程序通过 USB 识别是 APJArduPilot Joint引导协议与地面站识别板型的关键标识。硬件规格一览项目规格主处理器STM32F427VIT632 位 ARM Cortex-M4168 MHz256 KB RAM2 MB FlashIO 协处理器STM32F100C8T6ARM Cortex-M324 MHz8 KB SRAM加速度计/陀螺仪ICM-20602加速度计/陀螺仪/磁力计MPU-9250气压计MS5611PWM 输出86 路8 路来自 IO 协处理器6 路来自 FMU 主处理器遥控输入Spektrum DSM / DSM2 / DSM-X 卫星接收机、Futaba S.BUS 输入输出、PPM 和信号、模拟/PWM RSSI舵机输出S.Bus 舵机输出其他安全开关/LED、4 路 UARTTELEM1、TELEM2、GPS、SERIAL4、1 路 I2C、1 路 CAN 总线、1 组电池电压/电流模拟输入Raspberry Pi CM3 接口VBUS、DDR2 连接器直接承载树莓派 CM3 模块、1 路 UART、2 路 USB、1 路树莓派摄像头接口机械尺寸49.2 × 101 × 18.2 mm重 100 g从 hwdef.dat 可以看到该规格在源码中的对应物MCU STM32F4xx STM32F427xx声明主控为 STM32F427 系列FLASH_SIZE_KB 2048定义 2 MB FlashOSCILLATOR_HZ 24000000指定 24 MHz 外部晶振STM32_ST_USE_TIMER 5选择 TIM5 作为 ChibiOS 系统定时器。这些条目共同决定了链接脚本ld.script、时钟树与 RTOS 心跳的生成方式。值得一提的是该板与同系列 FCC-K1 共享几乎相同的主控与传感器方案K1 的规格对比可见 thepeach-k1/README.md但 R1 因集成了 Raspberry Pi CM3 扩展接口而具有更大的板型与更丰富的计算扩展能力。连接器与引脚布局板卡实物图与引脚映射图分别见 main.png 与 pinmap.png。从引脚映射图可以看到板卡的主要对外接口分区POWER5V、GND电源引脚SERIAL4 GPS/OSDGPS 与 OSD 共用串口TX/RXUSB Boot / Raspberry USBUSB 启动口与树莓派扩展 USB5V、D、D-、GNDTELEMETRY1遥测串口TX/RXFMU JTAG / IO JTAG主处理器与 IO 协处理器的 SWD 调试接口SWCLK、SWDIO、RESET、GND等SAFETY安全开关引脚CANCAN 总线接口5V、GND、A、BSYSTEM CONSOLE系统调试串口TX、RX、GNDSPEAKTRUM DSMSpektrum 卫星接收机输入3V3、GND、RXRC IN / SBUS OUT / AUX多通道排针区对应遥控输入、S.Bus 输出与辅助 PWM 通道。在源码层面这些接口被逐一映射到 STM32F427 的具体引脚。例如USB 设备口PA11 OTG_FS_DM OTG1、PA12 OTG_FS_DP OTG1USB 插入检测由PA9 VBUS INPUT OPENDRAIN与PC0 VBUS_nVALID INPUT PULLUP共同完成SWD 调试PA13 JTMS-SWDIO SWD、PA14 JTCK-SWCLK SWDCAN 总线PD0 CAN1_RX CAN1、PD1 CAN1_TX CAN1microSD 卡PC8~PC11 SDIO_D0~D3、PC12 SDIO_CK、PD2 SDIO_CMD并通过define HAL_OS_FATFS_IO 1启用 FAT 文件系统支持I2CPB8/PB9为 I2C1PB10/PB11为 I2C2I2C_ORDER I2C2 I2C1规定了总线探测顺序。UART 映射FCC-R1 的串口资源在文档中给出如下映射所有串口在 Linux/树莓派视角下均有对应的/dev/ttyS*设备节点UART设备端口用途USART1/dev/ttyS0IO 协处理器调试USART2/dev/ttyS1TELEM1带流控USART3/dev/ttyS2TELEM2连接 Raspberry Pi CM3UART4/dev/ttyS3GPS1USART6/dev/ttyS4PX4IO与 IO 协处理器通信UART7/dev/ttyS5调试控制台UART8/dev/ttyS6TELEM4串口的软件编号由 hwdef.dat 中的SERIAL_ORDER OTG1 USART2 USART3 UART4 UART8 UART7决定遵循 ArduPilot 的标准顺序约定SERIAL0控制台主 MAVLink通常为 USB即OTG1SERIAL1TELEM1USART2SERIAL2TELEM2USART3SERIAL3主 GPSUART4SERIAL4备用 GPS / 扩展UART8SERIAL5额外 UART通常是 RTOS 调试控制台UART7。在 hwdef 中可以看到 TELEM1 与 TELEM2 均定义了 RTS/CTS 流控引脚PD3 USART2_CTS USART2 PD4 USART2_RTS USART2 PD5 USART2_TX USART2 PD6 USART2_RX USART2这在连接 3DR 电台等需要硬件流控的外设时尤为重要可避免高速遥测下丢包。UART4GPS与UART8TELEM4分别占用PA0/PA1与PE0/PE1。此外IOMCU_UART USART6指定 USART6PC6/PC7作为主处理器与 IO 协处理器PX4IO的通信链路对应文档中的 PX4IO 端口。电源等级与双冗余供电设计FCC-R1 支持双路电源冗余POWER 与 USB 两个电源轨可以同时供电系统会按下述优先级自动选择正常工作最大额定值在此条件下所有电源按以下顺序为系统供电POWER 输入5V ~ 5.5VUSB 输入4.75V ~ 5.25V绝对最大额定值超过以下条件将对飞控造成永久损坏POWER 输入超过 5.5VUSB 输入超过 5.5V电源接线注意事项来自官方文档FMU PWM OUT 与 I/O PWM OUT 输出电源轨既不供电给飞控板也不由飞控板供电。必须向 POWER 或 USB 之一供电否则板卡将完全不通电USB 不为 Raspberry Pi CM3 供电。必须向 POWER 供电否则树莓派 CM3 模块将不通电。这些警告在 hwdef.dat 中有对应的硬件检测引脚佐证PB5 VDD_BRICK_nVALID INPUT PULLUP用于检测电源砖电压是否有效PE15 VDD_5V_PERIPH_nOC INPUT PULLUP检测 5V 外设轨过流PA9 VBUS INPUT OPENDRAIN与PC0 VBUS_nVALID INPUT PULLUP双重感知 USB 连接状态PA4 VDD_5V_SENS ADC1 SCALE(2)则是 5V 主电源的 ADC 采样点。传感器架构从 hwdef 看底层实现FCC-R1 的三颗关键传感器ICM-20602、MPU-9250、MS5611全部挂在 SPI1 总线上并通过独立的片选CS引脚访问SPIDEV ms5611 SPI1 DEVID3 MS5611_CS MODE3 20*MHZ 20*MHZ SPIDEV icm20602 SPI1 DEVID1 ICM20602_CS MODE3 4*MHZ 8*MHZ SPIDEV mpu9250 SPI1 DEVID2 MPU9250_CS MODE3 4*MHZ 8*MHZ SPIDEV ramtron SPI2 DEVID1 FRAM_CS MODE3 8*MHZ 8*MHZ对应的片选引脚为PC2 MPU9250_CS、PC15 ICM20602_CS、PD7 MS5611_CS、PD10 FRAM_CS CS SPEED_VERYLOWFRAM 采用极低速模式与 HAL_PX4 配置保持一致。SPI1 总线本身由PA5/PA6/PA7提供 SCK/MISO/MOSI。IMU 与罗盘在固件中的注册方式为IMU Invensense SPI:icm20602 ROTATION_YAW_270 IMU Invensense SPI:mpu9250 ROTATION_YAW_270 COMPASS AK8963:probe_mpu9250 0 ROTATION_YAW_270两块 IMU 均以 YAW_270 旋转安装MPU-9250 内置的 AK8963 磁力计通过probe_mpu9250探针方式在 SPI 上枚举并启用HAL_DEFAULT_INS_FAST_SAMPLE 3的默认快速采样IMU 以 3 倍速率过采样。气压计则注册为BARO MS5611 SPI:ms5611。两颗 IMU 的数据就绪引脚分别接在PC14 ICM20602_DRDY与PD15 MPU9250_DRDY默认驱动未使用中断。存储方面该板通过define HAL_WITH_RAMTRON 1启用 SPI FRAMramtron参数存储define HAL_STORAGE_SIZE 16384声明 16 KB 存储区同时 microSD 提供 FATFS 日志存储。注意 hwdef 中设置了DMA_NOSHARE USART6_TX ADC1与DMA_PRIORITY USART6* SPI*保证与 IO 协处理器通信的 USART6 的 DMA 不被 ADC 抢占避免 IOMCU 链路中断。电源管理与外设控制引脚hwdef.dat 中还定义了一组系统级控制引脚理解它们有助于排查硬件故障PA8 nVDD_5V_PERIPH_EN OUTPUT LOW5V 外设电源使能默认拉低关闭上电时序由固件控制PE3 VDD_3V3_SENSORS_EN OUTPUT HIGH传感器 3.3V 电源轨使能默认拉高。该引脚可用于对传感器轨进行断电重启在传感器上电时序不稳时通过电源循环恢复传感器稳定性DEFAULTGPIO OUTPUT LOW PULLDOWN默认将所有未定义的引脚拉低并配置为下拉输出规避 ESD 问题电池电压/电流采样PA2 BATT_VOLTAGE_SENS ADC1 SCALE(1)、PA3 BATT_CURRENT_SENS ADC1 SCALE(1)对应默认分压/分流系数HAL_BATT_VOLT_SCALE 18.182与HAL_BATT_CURR_SCALE 36.364以及HAL_BATT_VOLT_PIN 2/HAL_BATT_CURR_PIN 3额外模拟输入PC3 AUX_POWER、PC4 AUX_ADC2、PC5 PRESSURE_SENS空速模拟输入蜂鸣器PA15 TIM2_CH1 TIM2 GPIO(77) ALARM同时映射为 GPIO(77)可通过 MAVLink relay 命令手动触发。PWM 输出与 GPIO 映射6 路 FMU PWM 输出其余 8 路由 IO 协处理器提供定义如下并按照与 HAL_PX4 一致的约定从 GPIO(50) 起编号PE14 TIM1_CH4 TIM1 PWM(1) GPIO(50) PE13 TIM1_CH3 TIM1 PWM(2) GPIO(51) PE11 TIM1_CH2 TIM1 PWM(3) GPIO(52) PE9 TIM1_CH1 TIM1 PWM(4) GPIO(53) PD13 TIM4_CH2 TIM4 PWM(5) GPIO(54) PD14 TIM4_CH3 TIM4 PWM(6) GPIO(55)PWM 与 GPIO 的双重映射意味着用户可以通过设置BRD_PWM_COUNT参数决定主处理器上多少路输出作为 PWM、多少路降级为普通 GPIO从而灵活扩展板卡功能。安全开关支持由define HAL_HAVE_SAFETY_SWITCH 1显式启用板上状态 LED 定义于PE12 FMU_LED_AMBER OUTPUT HIGH OPENDRAIN GPIO(0)低电平点亮。引导程序Bootloader定义解析hwdef-bl.dat 定义了烧录于 Flash 起始处的引导程序与主固件 hwdef 的关键差异包括FLASH_BOOTLOADER_LOAD_KB 16应用固件从 16 KB 偏移处加载FLASH_RESERVE_START_KB 0引导程序自身位于 Flash 起始处USB 标识改为USB_STRING_PRODUCT FCC-R1 BL、制造商为 ArduPilot便于识别引导模式SERIAL_ORDER OTG1 USART2 USART3引导协议仅运行于 USB、TELEM1、TELEM2 三个通道波特率为BOOTLOADER_BAUDRATE 115200提前将各传感器片选MPU9250_CS、ICM20602_CS、MS5611_CS、FRAM_CS置高避免引导阶段意外选中 SPI 外设定义HAL_CHIBIOS_ARCH_FMUV3 1宣告该板采用 FMUv3 架构——这也解释了主固件中define BOARD_TYPE_DEFAULT 3的来源与 CubeBlack、CubeSolo 等 FMUv3 板卡一致。引导程序配合 Tools/AP_Bootloader/board_types.txt 中的TARGET_HW_THE_PEACH_R1 213即可通过 Mission Planner 等地面站进行 USB 固件升级。应用固件还通过 ROMFS 携带 IO 固件ROMFS io_firmware.bin Tools/IO_Firmware/iofirmware_lowpolh.bin每次启动时自动将 IO 协处理器固件更新到一致版本。固件构建与烧录FCC-R1 的固件构建遵循 ArduPilot 标准的 waf 流程目标板名即thepeach-r1# 配置构建环境以 ArduCopter 为例 ./waf configure --board thepeach-r1 # 编译飞控固件 ./waf copter构建产物位于build/thepeach-r1/bin/目录可通过 USB 引导模式配合地面站烧写引导程序与飞控固件。所有板级定义均可在不改动源码的情况下通过编辑 hwdef.dat 后重新构建来定制例如调整 SERIAL_ORDER、修改 PWM 映射或增减传感器这是 ArduPilot 硬件适配的核心机制之一。购买与技术支持FCC-R1 由 ThePeach 官方渠道销售。由于 ArduPilot 团队不生产该硬件任何硬件故障、合规性问题或购买咨询均应直接联系 ThePeach 制造商获取支持。总结ThePeach FCC-R1 是一块典型的双处理器FMU IO高端飞控其价值在于同时具备成熟稳定的飞行控制核心STM32F427 双 IMU MS5611与独特的树莓派 CM3 板载计算扩展能力。在 ArduPilot 中它的支持是由 hwdef.dat 这一份精确定义的硬件描述文件完整表达的——从引脚映射、传感器注册、电源检测到 DMA 分配每一处配置都能在硬件上找到对应依据。对于想要深度定制该板或理解 ArduPilot 硬件抽象机制的开发者而言FCC-R1 的 hwdef 是一个结构清晰、注释详尽的绝佳学习样本。【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考