
ArduPilot ARK PI6X 飛控硬件定義解析引腳、串口映射與傳感器配置全解【免費下載鏈接】ardupilotArduPlane, ArduCopter, ArduRover, ArduSub source項目地址: https://gitcode.com/GitHub_Trending/ar/ardupilot本文以 ArduPilot 倉庫中libraries/AP_HAL_ChibiOS/hwdef/ARK_PI6X/目錄下的硬件定義文檔與配套hwdef.dat、common.inc文件為核心系統講解 ARK PI6X 飛控的處理器與傳感器配置、全部接口的引腳定義、UART 映射與 RC 協議選項、PWM/DShot 輸出分組以及 INA226 電池監測的實現方式。讀完本文你可以完整掌握該板的硬件接線關系并能通過 ChibiOS 硬件定義文件逐項核對每個引腳的實際用途與默認參數。一、硬件概述ARK PI6X 是 ARK Electronics 推出的一款支持 Raspberry Pi 協處理器的飛控其硬件規格如下處理器STM32H743 32 位處理器主頻 480MHz2MB Flash、1MB RAM配備 DF40HC 連接器用于外接 RPI 協處理器必需兼容 Pi CM4 與 CM5這與硬件定義文件一致common.inc 中聲明MCU STM32H7xx STM32H743xx、FLASH_SIZE_KB 2048晶振頻率為 16MHz板級固件標識為TARGET_HW_ARK_PI6X即燒錄固件時選擇的 board ID。傳感器2 x Invensense ICM-42688P IMU帶加熱電阻Bosch BMP390 氣壓計ST IIS2MDC 磁力計板載羅盤INA226 電壓/電流監測芯片蜂鳴器電源輸入電壓 5.5V ~ 25.2V2S ~ 6S5V 輸出 2A主系統 300mA傳感器加熱 200mA尺寸板尺寸 91.5mm x 56mm重量 41g硬件接口一覽接口信號連接器Micro SD存儲卡SD 卡槽PWM UART48 路 PWM支持雙向 DSHOT UART4 RX/TXJST-GH 11 PinRC5V 輸出、UARTJST-GH 4 PinTELEM15V 輸出、帶流控的 UARTJST-GH 6 PinGPS5V 輸出、USART1、I2C1JST-GH 6 PinCAN5V 輸出、CAN1JST-GH 4 PinDEBUG3.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 預留給 BootloaderHAL_STORAGE_SIZE 32768STORAGE_FLASH_PAGE 14H743 共 16 個 128KB 頁最后 2 頁用作 flash storage參數存儲USE_ALT_RAM_MAP 1為兼容 PX4 風格的 bootloader 而啟用另一套 RAM 布局ENABLE_DFU_BOOT 1支持通過 DFU 重啟方式安裝 bootloader若以--secure-bl編譯則會禁用 DFUHAL_OS_FATFS_IO 1啟用 FAT 文件系統支持依賴通過 SDMMC 定義的 microSD 卡。三、接口引腳定義Pinout以下引腳表完整來自官方硬件文檔是所有外接設備接線的基本依據。PWM UART4 — JST-GH 11 Pin引腳信號名電平1FMU_CH1_EXT3.3V2FMU_CH2_EXT3.3V3FMU_CH3_EXT3.3V4FMU_CH4_EXT3.3V5FMU_CH5_EXT3.3V6FMU_CH6_EXT3.3V7FMU_CH7_EXT3.3V8FMU_CH8_EXT3.3V9UART4_TX_EXT3.3V10UART4_RX_EXT3.3V11GNDGNDRC — JST-GH 4 Pin引腳信號名電平15.0V5.0V2USART6_RX_IN_EXT3.3V3USART6_TX_OUTPUT_EXT3.3V4GNDGNDCAN — JST-GH 4 Pin引腳信號名電平15.0V5.0V2CAN1_P5.0V3CAN1_N5.0V4GNDGNDGPS — JST-GH 6 Pin引腳信號名電平15.0V5.0V2USART1_TX_GPS1_EXT3.3V3USART1_RX_GPS1_EXT3.3V4I2C1_SCL_GPS1_EXT3.3V5I2C1_SDA_GPS1_EXT3.3V6GNDGNDTELEM1 — JST-GH 6 Pin引腳信號名電平15.0V5.0V2UART7_TX_TELEM1_EXT3.3V3UART7_RX_TELEM1_EXT3.3V4UART7_CTS_TELEM1_EXT3.3V5UART7_RTS_TELEM1_EXT3.3V6GNDGND飛控 Debug — JST-SH 10 Pin引腳信號名電平13V3_FMU3.3V2USART3_TX_DEBUG3.3V3USART3_RX_DEBUG3.3V4FMU_SWDIO3.3V5FMU_SWCLK3.3V6SPI6_SCK_EXTERNAL13.3V7NFC_GPIO3.3V8PD153.3V9FMU_NRST3.3V10GNDGND四、UART 映射與串口復用ARK PI6X 的串口映射如下標記Internal的端口直接連接 Raspberry Pi串口功能說明SERIAL0USB內部連接到 RPI通過 RPI 配置飛控SERIAL1UART7Telem1外部遙測口SERIAL2UART5內部連接對應 Pi 的 /dev/ttyAMA4SERIAL3USART1GPS1GPS 串口SERIAL4UART4ESC Telem電調遙測SERIAL5USART6RC InputRC 輸入這一順序與 hwdef.dat 中的定義完全對應SERIAL_ORDER OTG1 UART7 UART5 USART1 UART4 USART6即 SERIAL0OTG1(USB)、SERIAL1UART7、SERIAL2UART5、SERIAL3USART1、SERIAL4UART4、SERIAL5USART6。幾個值得注意的實現細節除 UART4 外所有 UART 均支持 DMA。在 hwdef.dat 中 UART4 的兩個引腳被顯式標記為NODMAPH13 UART4_TX UART4 NODMA、PH14 UART4_RX UART4 NODMA這與文檔說明一致。任何串口都可以通過修改其 protocol 參數重新分配用途例如把某個空閑串口改為 GPS、TELEM2、MAVLINK 等協議。SERIAL4 的默認協議是 ESC 遙測define DEFAULT_SERIAL4_PROTOCOL SerialProtocol_ESCTelemetry波特率 115200SERIAL5 的默認協議是 RCINdefine DEFAULT_SERIAL5_PROTOCOL SerialProtocol_RCIN。SERIAL2UART5在板內直連 Pi從 common.inc 的注釋可以看到其 RTS/CTS/TX/RX 接到 Pi 的/dev/ttyAMA4用于與協處理器的高帶寬內部通信。五、RC 輸入配置RC 輸入配置在 RX6USART6_RX引腳上支持除 PPM 之外的所有 RC 協議。默認參數為SERIAL5_PROTOCOL 23RCin即出廠即可直接接收 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 USART6與PC7 USART6_RX USART6TX6 的存在正是 FPort/CRSF/SRXL2 等帶遙測協議能夠工作的硬件前提。六、PWM 輸出與 DShot 配置該板 8 路輸出全部支持 PWM 和 DShot其中電機 1~4 默認配置為雙向 DShotBidirectional-DSHOT。所有輸出按以下三個定時器組劃分同一組內的輸出必須同為 PWM 或同為 DShot電機組定時器1 ~ 4Group1TIM55 ~ 6Group2TIM47 ~ 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 doesnt 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~4TIM12 的兩個通道被顯式NODMA源碼注釋解釋了原因TIM12 沒有 TIMn_UP 的 DMA 選項因此必須禁用 DMA。另外蜂鳴器使用獨立的 TIM14_CH1PF9GPIO(77) ALARM驅動與 8 路電調輸出互不干擾。七、電池監測INA226板載 INA226 數字功率監測芯片最高支持 6S 鋰聚合物電池與 25.2V 輸入上限一致。默認電池參數為BATT_MONITOR 21INA226源碼側的完整定義位于 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 總線上地址 0x00BUS 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°CPID 參數 P50、I0.07用于在低溫環境下穩定 IMU 噪聲性能。九、其他板級硬件特性Micro SD 存儲通過 SDMMC2 總線接入CK/CMD/D0~D3 共 6 根信號線見 common.inc并啟用 FAT 文件系統HAL_OS_FATFS_IO 1供電使能腳為 PC13VDD_3V3_SD_CARD_ENRGB 指示燈PE3/PE4/PE5 分別驅動紅/綠/藍 LEDGPIO 90/91/92開漏輸出高電平點亮用于飛行狀態與解鎖指示AP_NOTIFY_GPIO_LED_RGB_*解鎖指示PE6 的nARMED引腳在解鎖時拉高可外接指示燈電壓采樣ADC1 上配置了 SCALED1~SCALED4 四路模擬輸入及 5V 電壓分壓采樣VDD_5V_SENS電源管理PG10 為 5V 高功率負載使能腳nVDD_5V_HIPOWER_ENPF13 為其過流/失效反饋PG1~PG3 為三路電壓磚的 nVALID 檢測輸入默認 GPIO 行為DEFAULTGPIO OUTPUT LOW PULLDOWN上電時所有未使用引腳默認拉低避免 ESD 問題。十、固件燒錄方式ARK PI6X 支持兩種固件燒錄途徑SWD 直接燒錄使用 10 針 DEBUG 口含 SWDIO/SWCLK/RESET連接調試器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),僅供參考