From 7e29b7bdf6eca5984522f6485ea8e3c129c7189d Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Sat, 2 Sep 2023 16:15:44 +0100 Subject: [PATCH] AP_HAL_ChibiOS: T-Motor H743 Mini --- .../AP_HAL_ChibiOS/hwdef/TMotorH743/README.md | 86 +++++++++ .../hwdef/TMotorH743/TMotorH7Mini_Board.JPG | Bin 0 -> 94069 bytes .../hwdef/TMotorH743/hwdef-bl.dat | 44 +++++ .../AP_HAL_ChibiOS/hwdef/TMotorH743/hwdef.dat | 166 ++++++++++++++++++ 4 files changed, 296 insertions(+) create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/README.md create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/TMotorH7Mini_Board.JPG create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/hwdef-bl.dat create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/hwdef.dat diff --git a/libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/README.md b/libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/README.md new file mode 100644 index 0000000000..992bc8639e --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/README.md @@ -0,0 +1,86 @@ +# T-Motor H7 Mini Flight Controller + +The T-Motor H7 Mini is a flight controller produced by [T-Motor](https://store.tmotor.com/goods-1295-H7+MINI.html). + +## Features + + - MCU - STM32H743 32-bit processor running at 480 MHz + - IMU - ICM42688/BMI270 + - Barometer - DPS310 + - OSD - AT7456E + - Onboard Flash: 128Mbits + - 6x UARTs (1,5,6,7,9) + - 9x PWM Outputs (8 Motor Output, 1 LED) + - Battery input voltage: 2S-6S + - BEC 5V/2A, 10V/1.5A + +## Pinout + +![T-Motor H7 Mini Board](TMotorH7Mini_Board.JPG "T-Motor H7 Mini") + +## UART Mapping + +The UARTs are marked Rn and Tn in the above pinouts. The Rn pin is the +receive pin for UARTn. The Tn pin is the transmit pin for UARTn. + + - SERIAL0 -> USB + - SERIAL1 -> UART1 (ESC Telemetry) + - SERIAL3 -> UART3 + - SERIAL5 -> UART5 (GPS, DMA-enabled) + - SERIAL6 -> UART6 (RX, DMA-enabled) + - SERIAL7 -> UART7 (DJI VTX, DMA-enabled) + - SERIAL8 -> UART8 (SBUS, DMA-enabled) + +## RC Input + +RC input is configured on the R6/TX6 (UART6_RX/UART6_TX) pins. It supports all serial RC +protocols. For protocols requiring half-duplex serial to transmit +telemetry (such as FPort) you should setup SERIAL6 with half-duplex, pin-swap and inversion enabled. + +## OSD Support + +The T-Motor H7 Mini supports OSD using OSD_TYPE 1 (MAX7456 driver). + +## PWM Output + +The T-Motor H7 Mini supports up to 5 PWM outputs. The pads for motor output +M1 to M4 on the motor connectors and separate pads, plus +M5 for LED strip or another PWM output. + +The PWM is in 2 groups: + + - PWM 1-4 in group1 + - PWM 5 in group2 + +Channels within the same group need to use the same output rate. If +any channel in a group uses DShot then all channels in the group need +to use DShot. Channels 1-4 support bi-directional dshot. + +## Battery Monitoring + +The board has a builting voltage and current sensor. The current +sensor can read up to 130 Amps. The voltage sensor can handle up to 6S +LiPo batteries. + +The correct battery setting parameters are: + + - BATT_MONITOR 4 + - BATT_VOLT_PIN 11 + - BATT_CURR_PIN 13 + - BATT_VOLT_MULT 11.0 + - BATT_AMP_PERVLT 50.0 + +## Compass + +The T-Motor H7 Mini does not have a builtin compass, but you can attach an external compass using I2C on the SDA and SCL pads. + +## Loading Firmware + +Initial firmware load can be done with DFU by plugging in USB with the +bootloader button pressed. Then you should load the "with_bl.hex" +firmware, using your favourite DFU loading tool. + +Once the initial firmware is loaded you can update the firmware using +any ArduPilot ground station software. Updates should be done with the +*.apj firmware files. + diff --git a/libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/TMotorH7Mini_Board.JPG b/libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/TMotorH7Mini_Board.JPG new file mode 100644 index 0000000000000000000000000000000000000000..ab26e00e52634140eeb65f44061565fc8e9e66f2 GIT binary patch literal 94069 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 Sf5ol&|6~61Ys&cBxBml_W|LC@ literal 0 HcmV?d00001 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/hwdef-bl.dat new file mode 100644 index 0000000000..69385f40cf --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/hwdef-bl.dat @@ -0,0 +1,44 @@ + +# hw definition file for processing by chibios_hwdef.py +# for TMH7 hardware. +# thanks to betaflight for pin information + +# MCU class and specific type +MCU STM32H7xx STM32H743xx + +# board ID for firmware load +APJ_BOARD_ID 1138 + +# crystal frequency, setup to use external oscillator +OSCILLATOR_HZ 8000000 + +FLASH_SIZE_KB 2048 + +# bootloader starts at zero offset +FLASH_RESERVE_START_KB 0 + +# the location where the bootloader will put the firmware +FLASH_BOOTLOADER_LOAD_KB 384 + +# order of UARTs (and USB) +SERIAL_ORDER OTG1 + +# PA10 IO-debug-console +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +# default to all pins low to avoid ESD issues +DEFAULTGPIO OUTPUT LOW PULLDOWN + + +# Chip select pins +PA15 FLASH1_CS CS +PB12 OSD1_CS CS +PA4 GYRO1_CS CS +PE11 GYRO2_CS CS + +PA8 LED_BOOTLOADER OUTPUT LOW +define HAL_LED_ON 0 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/hwdef.dat new file mode 100644 index 0000000000..b0c90310bd --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/TMotorH743/hwdef.dat @@ -0,0 +1,166 @@ + +# hw definition file for processing by chibios_hwdef.py +# for TMH7 hardware. +# thanks to betaflight for pin information + +# MCU class and specific type +MCU STM32H7xx STM32H743xx + +# board ID for firmware load +APJ_BOARD_ID 1138 + +# crystal frequency, setup to use external oscillator +OSCILLATOR_HZ 8000000 + +MCU_CLOCKRATE_MHZ 480 + +FLASH_SIZE_KB 2048 + +# bootloader takes first sector +FLASH_RESERVE_START_KB 384 + +define HAL_STORAGE_SIZE 16384 +define STORAGE_FLASH_PAGE 1 + +STM32_ST_USE_TIMER 2 + +# SPI devices + +# SPI1 +PA5 SPI1_SCK SPI1 +PA6 SPI1_MISO SPI1 +PA7 SPI1_MOSI SPI1 + +# SPI2 +PB13 SPI2_SCK SPI2 +PB14 SPI2_MISO SPI2 +PB15 SPI2_MOSI SPI2 + +# SPI3 +PB2 SPI3_MOSI SPI3 +PC10 SPI3_SCK SPI3 +PC11 SPI3_MISO SPI3 + +# SPI4 +PE12 SPI4_SCK SPI4 +PE13 SPI4_MISO SPI4 +PE14 SPI4_MOSI SPI4 + +# Chip select pins +PA15 FLASH1_CS CS +PB12 OSD1_CS CS +PA4 GYRO1_CS CS +PE11 GYRO2_CS CS + +# Beeper +PE3 BUZZER OUTPUT GPIO(80) LOW +define HAL_BUZZER_PIN 80 + +# SERIAL ports +SERIAL_ORDER OTG1 USART1 EMPTY USART3 EMPTY UART5 USART6 UART7 UART8 +# PA10 IO-debug-console +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +# USART1 (ESC Telemetry) +PA10 USART1_RX USART1 NODMA +DEFAULT_SERIAL1_PROTOCOL SerialProtocol_ESCTelemetry + +# UART3 +PD8 USART3_TX USART3 NODMA +PD9 USART3_RX USART3 NODMA +DEFAULT_SERIAL3_PROTOCOL SerialProtocol_None + +# UART5 (GPS) +PC12 UART5_TX UART5 +PD2 UART5_RX UART5 +DEFAULT_SERIAL5_PROTOCOL SerialProtocol_GPS + +# USART6 (RX) +PC6 USART6_TX USART6 +PC7 USART6_RX USART6 +DEFAULT_SERIAL6_PROTOCOL SerialProtocol_RCIN + +# UART7 (DJI) +PE7 UART7_RX UART7 +PE8 UART7_TX UART7 +define DEFAULT_SERIAL7_PROTOCOL SerialProtocol_DJI_FPV + +# UART8 (SBUS/SmartAudio) +PE0 UART8_RX UART8 # no suitable timer for RCININT +PE1 UART8_TX UART8 + +# I2C ports +I2C_ORDER I2C1 +# I2C1 +PB6 I2C1_SCL I2C1 +PB7 I2C1_SDA I2C1 + +# One baro +BARO DPS310 I2C:0:0x76 + +# Servos +PB8 CAMERA1 OUTPUT GPIO(70) LOW +define RELAY2_PIN_DEFAULT 70 + +# ADC ports + +# ADC1 +PC1 BATT_VOLTAGE_SENS ADC1 SCALE(1) +define HAL_BATT_VOLT_PIN 11 +define HAL_BATT_VOLT_SCALE 11.0 +PC2 RSSI_ADC ADC1 +define BOARD_RSSI_ANA_PIN 12 +PC3 BATT_CURRENT_SENS ADC1 SCALE(1) +define HAL_BATT_CURR_PIN 13 +define HAL_BATT_CURR_SCALE 50.0 +define HAL_BATT_MONITOR_DEFAULT 4 + +# MOTORS +PA0 TIM5_CH1 TIM5 PWM(1) GPIO(50) BIDIR # M1 +PA1 TIM5_CH2 TIM5 PWM(2) GPIO(51) # M2 +PA2 TIM5_CH3 TIM5 PWM(3) GPIO(52) BIDIR # M3 +PA3 TIM5_CH4 TIM5 PWM(4) GPIO(53) # M4 + +# LEDs +PA8 TIM1_CH1 TIM1 PWM(9) GPIO(58) # M9 + +PE5 LED1 OUTPUT LOW GPIO(91) +define HAL_GPIO_A_LED_PIN 91 + +PE4 LED2 OUTPUT LOW GPIO(92) +define HAL_GPIO_B_LED_PIN 92 +define HAL_GPIO_LED_OFF 1 + +# Dataflash setup +SPIDEV dataflash SPI3 DEVID1 FLASH1_CS MODE3 104*MHZ 104*MHZ + +define HAL_LOGGING_DATAFLASH_ENABLED 1 + +# OSD setup +SPIDEV osd SPI2 DEVID1 OSD1_CS MODE0 10*MHZ 10*MHZ + +define OSD_ENABLED 1 +define HAL_OSD_TYPE_DEFAULT 1 +ROMFS_WILDCARD libraries/AP_OSD/fonts/font*.bin + +# IMU setup +SPIDEV icm42688 SPI1 DEVID1 GYRO1_CS MODE3 1*MHZ 16*MHZ +SPIDEV bmi270 SPI4 DEVID1 GYRO2_CS MODE3 1*MHZ 8*MHZ + +IMU BMI270 SPI:bmi270 ROTATION_PITCH_180_YAW_90 +IMU Invensensev3 SPI:icm42688 ROTATION_PITCH_180_YAW_90 + +DMA_NOSHARE TIM5_UP TIM3_UP TIM8_UP SPI1* SPI4* +DMA_PRIORITY TIM5_UP TIM3_UP TIM8_UP SPI1* SPI4* + +# no built-in compass, but probe the i2c bus for all possible +# external compass types +define ALLOW_ARM_NO_COMPASS +define HAL_PROBE_EXTERNAL_I2C_COMPASSES +define HAL_I2C_INTERNAL_MASK 0 +define HAL_COMPASS_AUTO_ROT_DEFAULT 2 +define HAL_DEFAULT_INS_FAST_SAMPLE 3 +# Motor order implies Betaflight/X for standard ESCs +define HAL_FRAME_TYPE_DEFAULT 12 +define AP_SCRIPTING_ENABLED 0