news 2026/9/14 2:33:24

ArduPilot ARK PI6X 飞控硬件定义解析:引脚、串口映射与传感器配置全解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ArduPilot ARK PI6X 飞控硬件定义解析:引脚、串口映射与传感器配置全解

ArduPilot ARK PI6X 飞控硬件定义解析:引脚、串口映射与传感器配置全解

【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot

本文以 ArduPilot 仓库中libraries/AP_HAL_ChibiOS/hwdef/ARK_PI6X/目录下的硬件定义文档与配套hwdef.datcommon.inc文件为核心,系统讲解 ARK PI6X 飞控的处理器与传感器配置、全部接口的引脚定义、UART 映射与 RC 协议选项、PWM/DShot 输出分组以及 INA226 电池监测的实现方式。读完本文,你可以完整掌握该板的硬件接线关系,并能通过 ChibiOS 硬件定义文件逐项核对每个引脚的实际用途与默认参数。

一、硬件概述

ARK PI6X 是 ARK Electronics 推出的一款支持 Raspberry Pi 协处理器的飞控,其硬件规格如下:

处理器

  • STM32H743 32 位处理器,主频 480MHz
  • 2MB Flash、1MB RAM
  • 配备 DF40HC 连接器,用于外接 RPI 协处理器(必需),兼容 Pi CM4 与 CM5

这与硬件定义文件一致:common.inc 中声明MCU STM32H7xx STM32H743xxFLASH_SIZE_KB 2048,晶振频率为 16MHz,板级固件标识为TARGET_HW_ARK_PI6X(即烧录固件时选择的 board ID)。

传感器

  • 2 x Invensense ICM-42688P IMU(带加热电阻)
  • Bosch BMP390 气压计
  • ST IIS2MDC 磁力计(板载罗盘)
  • INA226 电压/电流监测芯片
  • 蜂鸣器

电源

  • 输入电压 5.5V ~ 25.2V(2S ~ 6S)
  • 5V 输出 2A:主系统 300mA,传感器加热 200mA

尺寸

  • 板尺寸 91.5mm x 56mm,重量 41g

硬件接口一览

接口信号连接器
Micro SD存储卡SD 卡槽
PWM + UART48 路 PWM(支持双向 DSHOT)+ UART4 RX/TXJST-GH 11 Pin
RC5V 输出、UARTJST-GH 4 Pin
TELEM15V 输出、带流控的 UARTJST-GH 6 Pin
GPS5V 输出、USART1、I2C1JST-GH 6 Pin
CAN5V 输出、CAN1JST-GH 4 Pin
DEBUG3.3V 输出、USART3、SWDJST-SH

二、硬件定义文件结构

该板的完整硬件描述由两个文件组成:

  • hwdef.dat:被 ChibiOS 构建脚本处理后生成,包含串口顺序、PWM 通道、SPI/I2C 总线、传感器地址、电源使能与 LED 等全部定义;
  • common.inc:被hwdef.dat通过include common.inc引入,声明 MCU 型号、Flash 大小、USB、SWD、调试串口、各 UART 的引脚复用以及 SD 卡 SDMMC2 总线。

从 hwdef.dat 中的存储与启动配置还能看到几个值得注意的实现细节:

  • FLASH_RESERVE_START_KB 128:前 128KB Flash 预留给 Bootloader;
  • HAL_STORAGE_SIZE 32768+STORAGE_FLASH_PAGE 14:H743 共 16 个 128KB 页,最后 2 页用作 flash storage(参数存储);
  • USE_ALT_RAM_MAP 1:为兼容 PX4 风格的 bootloader 而启用另一套 RAM 布局;
  • ENABLE_DFU_BOOT 1:支持通过 DFU 重启方式安装 bootloader(若以--secure-bl编译则会禁用 DFU);
  • HAL_OS_FATFS_IO 1:启用 FAT 文件系统支持,依赖通过 SDMMC 定义的 microSD 卡。

三、接口引脚定义(Pinout)

以下引脚表完整来自官方硬件文档,是所有外接设备接线的基本依据。

PWM + UART4 — JST-GH 11 Pin

引脚信号名电平
1FMU_CH1_EXT3.3V
2FMU_CH2_EXT3.3V
3FMU_CH3_EXT3.3V
4FMU_CH4_EXT3.3V
5FMU_CH5_EXT3.3V
6FMU_CH6_EXT3.3V
7FMU_CH7_EXT3.3V
8FMU_CH8_EXT3.3V
9UART4_TX_EXT3.3V
10UART4_RX_EXT3.3V
11GNDGND

RC — JST-GH 4 Pin

引脚信号名电平
15.0V5.0V
2USART6_RX_IN_EXT3.3V
3USART6_TX_OUTPUT_EXT3.3V
4GNDGND

CAN — JST-GH 4 Pin

引脚信号名电平
15.0V5.0V
2CAN1_P5.0V
3CAN1_N5.0V
4GNDGND

GPS — JST-GH 6 Pin

引脚信号名电平
15.0V5.0V
2USART1_TX_GPS1_EXT3.3V
3USART1_RX_GPS1_EXT3.3V
4I2C1_SCL_GPS1_EXT3.3V
5I2C1_SDA_GPS1_EXT3.3V
6GNDGND

TELEM1 — JST-GH 6 Pin

引脚信号名电平
15.0V5.0V
2UART7_TX_TELEM1_EXT3.3V
3UART7_RX_TELEM1_EXT3.3V
4UART7_CTS_TELEM1_EXT3.3V
5UART7_RTS_TELEM1_EXT3.3V
6GNDGND

飞控 Debug — JST-SH 10 Pin

引脚信号名电平
13V3_FMU3.3V
2USART3_TX_DEBUG3.3V
3USART3_RX_DEBUG3.3V
4FMU_SWDIO3.3V
5FMU_SWCLK3.3V
6SPI6_SCK_EXTERNAL13.3V
7NFC_GPIO3.3V
8PD153.3V
9FMU_NRST3.3V
10GNDGND

四、UART 映射与串口复用

ARK PI6X 的串口映射如下(标记Internal的端口直接连接 Raspberry Pi):

串口功能说明
SERIAL0USB内部连接到 RPI,通过 RPI 配置飞控
SERIAL1UART7(Telem1)外部遥测口
SERIAL2UART5内部连接(对应 Pi 的 /dev/ttyAMA4)
SERIAL3USART1(GPS1)GPS 串口
SERIAL4UART4(ESC Telem)电调遥测
SERIAL5USART6(RC Input)RC 输入

这一顺序与 hwdef.dat 中的定义完全对应:

SERIAL_ORDER OTG1 UART7 UART5 USART1 UART4 USART6

即 SERIAL0=OTG1(USB)、SERIAL1=UART7、SERIAL2=UART5、SERIAL3=USART1、SERIAL4=UART4、SERIAL5=USART6。

几个值得注意的实现细节:

  1. 除 UART4 外所有 UART 均支持 DMA。在 hwdef.dat 中 UART4 的两个引脚被显式标记为NODMAPH13 UART4_TX UART4 NODMAPH14 UART4_RX UART4 NODMA),这与文档说明一致。
  2. 任何串口都可以通过修改其 protocol 参数重新分配用途,例如把某个空闲串口改为 GPS、TELEM2、MAVLINK 等协议。
  3. SERIAL4 的默认协议是 ESC 遥测define DEFAULT_SERIAL4_PROTOCOL SerialProtocol_ESCTelemetry,波特率 115200;SERIAL5 的默认协议是 RCINdefine DEFAULT_SERIAL5_PROTOCOL SerialProtocol_RCIN
  4. SERIAL2(UART5)在板内直连 Pi:从 common.inc 的注释可以看到其 RTS/CTS/TX/RX 接到 Pi 的/dev/ttyAMA4,用于与协处理器的高带宽内部通信。

五、RC 输入配置

RC 输入配置在 RX6(USART6_RX)引脚上,支持除 PPM 之外的所有 RC 协议。默认参数为SERIAL5_PROTOCOL = 23(RCin),即出厂即可直接接收 SBUS 等单向信号。按协议不同,接线与参数要求如下:

  • SBUS / DSM / SRXL:仅连接 RX6 引脚即可;
  • FPort:需要连接 TX6,并设置SERIAL5_OPTIONS = 7(启用 FPort 遥测);
  • CRSF:除 RX6 外还需要连接 TX6,且自动提供遥测通道;
  • SRXL2:需要连接 TX6,自动提供遥测,并设置SERIAL5_OPTIONS = 4

对应源码依据:common.inc 中 RC 口复用为PC6 USART6_TX USART6PC7 USART6_RX USART6,TX6 的存在正是 FPort/CRSF/SRXL2 等带遥测协议能够工作的硬件前提。

六、PWM 输出与 DShot 配置

该板 8 路输出全部支持 PWM 和 DShot,其中电机 1~4 默认配置为双向 DShot(Bidirectional-DSHOT)。所有输出按以下三个定时器组划分,同一组内的输出必须同为 PWM 或同为 DShot:

电机定时器
1 ~ 4Group1TIM5
5 ~ 6Group2TIM4
7 ~ 8Group3TIM12

从 hwdef.dat 的 PWM 定义可以看到对应的引脚与标志位:

PI0 TIM5_CH4 TIM5 PWM(1) GPIO(50) BIDIR PH12 TIM5_CH3 TIM5 PWM(2) GPIO(51) PH11 TIM5_CH2 TIM5 PWM(3) GPIO(52) BIDIR PH10 TIM5_CH1 TIM5 PWM(4) GPIO(53) PD13 TIM4_CH2 TIM4 PWM(5) GPIO(54) PD14 TIM4_CH3 TIM4 PWM(6) GPIO(55) # we need to disable DMA on the last 2 FMU channels # as timer 12 doesn't have a TIMn_UP DMA option PH6 TIM12_CH1 TIM12 PWM(7) GPIO(56) NODMA PH9 TIM12_CH2 TIM12 PWM(8) GPIO(57) NODMA

两处实现细节值得注意:

  • BIDIR 标志出现在 PWM1 与 PWM3 上,即 TIM5 的两个通道具备双向 DShot 能力,与文档“Motors 1-4 为 Bidirectional-DSHOT”的描述相呼应(TIM5 承载电机 1~4);
  • TIM12 的两个通道被显式NODMA,源码注释解释了原因:TIM12 没有 TIMn_UP 的 DMA 选项,因此必须禁用 DMA。

另外,蜂鸣器使用独立的 TIM14_CH1(PF9,GPIO(77) ALARM)驱动,与 8 路电调输出互不干扰。

七、电池监测(INA226)

板载 INA226 数字功率监测芯片,最高支持 6S 锂聚合物电池(与 25.2V 输入上限一致)。默认电池参数为:

  • BATT_MONITOR = 21(INA226)

源码侧的完整定义位于 hwdef.dat:

# I2C3 internal (INA226 power monitor) PA8 I2C3_SCL I2C3 PH8 I2C3_SDA I2C3 # INA226 battery monitor define HAL_BATTMON_INA2XX_BUS 1 define HAL_BATTMON_INA2XX_ADDR 0 define HAL_BATT_MONITOR_DEFAULT 21

即 INA226 挂在内置 I2C3 总线上(地址 0x00,BUS 1),并且HAL_BATT_MONITOR_DEFAULT 21保证了首次开机无需手工设置即可自动识别为 INA226 电池监控。I2C 总线顺序为I2C_ORDER I2C1 I2C3 I2C4,其中 I2C3/I2C4 为内部总线(HAL_I2C_INTERNAL_MASK 6)。

八、罗盘、气压计与 IMU 配置

板载罗盘

板载罗盘为 ST IIS2MDC。由于电源干扰,实际使用中常常禁用该内置罗盘而改用远置罗盘。从 hwdef.dat 可以看到其配置:

COMPASS IIS2MDC I2C:2:0x1E false ROTATION_YAW_180 define AP_COMPASS_PROBING_ENABLED 1 define AP_COMPASS_IIS2MDC_ENABLED 1

罗盘位于内部 I2C4(总线序号 2)、地址 0x1E,安装朝向为 ROTATION_YAW_180,并启用了罗盘探测机制。

气压计

BMP390 气压计同样位于 I2C4 上,BARO BMP388 I2C:2:0x76—— 即使用 BMP388 驱动读取地址 0x76 的设备(BMP390 与 BMP388 寄存器兼容,从源码结构看复用了同一驱动)。

双 IMU 与加热控制

两颗 ICM-42688P IMU 分别通过 SPI1 与 SPI2 连接,均工作在 16MHz SPI 时钟、2MHz 数据速率,并各自带片选与 DRDY(数据就绪)中断引脚:

# SPI2 - ICM42688 PI1 SPI2_SCK SPI2 ... SPIDEV icm42688_1 SPI1 DEVID1 IMU1_CS MODE3 2*MHZ 16*MHZ SPIDEV icm42688_2 SPI2 DEVID1 IMU2_CS MODE3 2*MHZ 16*MHZ IMU Invensensev3 SPI:icm42688_1 ROTATION_ROLL_180_YAW_135 IMU Invensensev3 SPI:icm42688_2 ROTATION_ROLL_180_YAW_45

两颗 IMU 在 PCB 上的安装朝向不同(分别为 ROTATION_ROLL_180_YAW_135 与 ROTATION_ROLL_180_YAW_45),硬件定义中已按实际贴片方向写入旋转参数,软件无需再手动校正。

IMU 加热(heater)由 PB10 的HEATER_EN引脚控制,默认参数为:

define HAL_HAVE_IMU_HEATER 1 define HAL_IMU_TEMP_DEFAULT 45 define HAL_IMUHEAT_P_DEFAULT 50 define HAL_IMUHEAT_I_DEFAULT 0.07

即默认目标温度 45°C,PID 参数 P=50、I=0.07,用于在低温环境下稳定 IMU 噪声性能。

九、其他板级硬件特性

  • Micro SD 存储:通过 SDMMC2 总线接入(CK/CMD/D0~D3 共 6 根信号线,见 common.inc),并启用 FAT 文件系统(HAL_OS_FATFS_IO 1),供电使能脚为 PC13(VDD_3V3_SD_CARD_EN);
  • RGB 指示灯:PE3/PE4/PE5 分别驱动红/绿/蓝 LED(GPIO 90/91/92,开漏输出高电平点亮),用于飞行状态与解锁指示(AP_NOTIFY_GPIO_LED_RGB_*);
  • 解锁指示:PE6 的nARMED引脚在解锁时拉高,可外接指示灯;
  • 电压采样:ADC1 上配置了 SCALED1~SCALED4 四路模拟输入及 5V 电压分压采样(VDD_5V_SENS);
  • 电源管理:PG10 为 5V 高功率负载使能脚(nVDD_5V_HIPOWER_EN),PF13 为其过流/失效反馈,PG1~PG3 为三路电压砖的 nVALID 检测输入;
  • 默认 GPIO 行为DEFAULTGPIO OUTPUT LOW PULLDOWN,上电时所有未使用引脚默认拉低,避免 ESD 问题。

十、固件烧录方式

ARK PI6X 支持两种固件烧录途径:

  1. SWD 直接烧录:使用 10 针 DEBUG 口(含 SWDIO/SWCLK/RESET)连接调试器;
  2. USB 烧录:USB 接口直接连接在 Raspberry Pi 上,可从 Pi 端运行 ArduPilot 仓库 Tools/scripts 目录下的uploader.py刷机脚本,也可以使用 ARK 官方 ARK-OS 提供的配套软件工具。

由于该板依赖 RPI 协处理器工作(DF40HC 接口为必需项),日常升级固件更推荐使用 USB 途径,无需打开外壳操作 SWD。

小结

ARK PI6X 的硬件定义完整体现在 hwdef.dat 与 common.inc 两个文件中:串口顺序、DMA 能力、IMU 朝向、传感器 I2C 地址与电池监控默认值均与官方 README 的引脚表一一对应。对于开发者而言,接线时以本文第三节的引脚表为准,配置时以第四、五节的串口映射与 RC 协议选项为准;需要核对某个引脚的实际用途或默认参数时,直接查阅这两个硬件定义文件即可得到权威答案。

【免费下载链接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source项目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 2:30:13

IPC设备P2P技术与NAT穿透原理详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 2:29:29

superpowers技能包实战:为Codex CLI与Trae注入工程师级AI工作流

直接说结论:如果你在用 Codex CLI、Trae 这类 AI 编程工具,却总觉得 AI 像个“只会答不会做”的顾问,指一步才动一步,那 superpowers 就是冲着这个痛点来的。它不是某个具体插件,而是一套以 Markdown 文档为核心的技能…

作者头像 李华
网站建设 2026/9/14 2:28:39

LFM雷达脉冲压缩原理与MATLAB实现

简介:本资源是一套面向本科及硕士阶段雷达通信教学与科研的线性调频(LFM)脉冲压缩雷达仿真实践材料,基于Matlab 2019a平台实现,聚焦雷达信号处理核心环节——LFM信号生成、匹配滤波与脉冲压缩效果验证。资源共24个文件…

作者头像 李华
网站建设 2026/9/14 2:26:36

AI工具Token排行榜背后的职场攻防战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 2:25:55

CT肾脏与结石检测:YOLOv5数据集构建与训练全流程

简介:面向医学影像目标检测需求的YOLOv5格式CT肾脏、结石检测数据集,适合需要训练YOLOv5等目标检测模型的开发者,可直接用作目标检测数据集,无需额外处理。数据集包含结石和肾脏两个类别,图像分辨率统一为640640&#…

作者头像 李华
网站建设 2026/9/14 2:25:24

UC3842反激电源设计与Multisim仿真实战指南

简介:本资源是一份面向电子电源设计初学者与实践者的UC3842反激式开关电源仿真学习包,聚焦220V交流输入转12V直流输出的典型小功率隔离电源设计场景,解决原理理解难、参数调试无依据、实物搭建风险高等实际问题。压缩包共4个文件,…

作者头像 李华