From 8ec404c6fca99785489270cce6ef259de1f1ec41 Mon Sep 17 00:00:00 2001 From: HelloLeFei Date: Thu, 29 Jun 2023 12:55:08 +0800 Subject: [PATCH] AP_HAL_ChibiOS: add HEEWING-F405 flight controller add bi-directional dshot add back in features. juggle DMA allocations to allow CRSF to work correctly disable dshot on PWM 10 as it is not used do not enable quadplane by default do not disable arming checks run ICM42688 at 1Mhz for low speed to avoid gyro noise add HEEWING README and picture --- .../hwdef/HEEWING-F405/README.md | 88 ++++++++ .../hwdef/HEEWING-F405/defaults.parm | 4 + .../hwdef/HEEWING-F405/heewingf405.jpg | Bin 0 -> 73380 bytes .../hwdef/HEEWING-F405/hwdef-bl.dat | 41 ++++ .../hwdef/HEEWING-F405/hwdef.dat | 196 ++++++++++++++++++ 5 files changed, 329 insertions(+) create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/README.md create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/defaults.parm create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/heewingf405.jpg create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/hwdef-bl.dat create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/hwdef.dat diff --git a/libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/README.md b/libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/README.md new file mode 100644 index 0000000000..a133f33926 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/README.md @@ -0,0 +1,88 @@ +# HEEWING F405 Flight Controller + +https://www.heewing.com/pages/t1-ranger-vtol-pnp-manual + +The HEEWING F405 is a flight controller produced by [HEEWING](https://www.heewing.com/pages/t1-ranger-vtol-pnp-manual) that is incorporated into their Ranger-T1 VTOL RTF airframe. + +## Features + + - STM32F405 microcontroller + - ICM42688 IMU + - SLP06 barometer + - NO dataflash + - MAX7456 OSD + - 4 UARTs + - 9 PWM outputs + +### HEEWING F405 Pinout + +![HEEWING F405 Board](heewingf405.jpg "HEEWING F405") + +## 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 -> UART3 (UART1 on casing, DMA-enabled) + - SERIAL2 -> UART1 (UART2 on casing, DMA-enabled) + - SERIAL5 -> UART5 (GPS) + - SERIAL6 -> UART2 (RCIN RX-only or RX/TX with BRD_ALT_CONFIG=1, DMA-enabled) + +## RC Input + +RC input is configured on the RCIN connector (UART2_RX) pin. It supports all serial RC protocols. It can be configured for two-way protocols (e.g. CRSF) by setting BRD_ALT_CONFIG=1 + +## FrSky Telemetry + +FrSky Telemetry can be supported using the transmit pin on a spare serial ports SERIAL1 and SERIAL2. + +## OSD Support + +The HEEWING F405 supports OSD using OSD_TYPE 1 (MAX7456 driver). + +## PWM Output + +The HEEWING F405 supports up to 9 PWM outputs. M1-M2, M5-M6 and M9 support bi-directional dshot. All outputs support dshot although M3-4 are not recommended for this purpose as they share resources with I2C. + +The PWM is in 4 groups: + + - PWM 1 and 2 in group1 + - PWM 3 and 4 in group2 + - PWM 5 and 6 in group3 + - PWM 7-9 in group4 + +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. + +## 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 10 + - BATT_CURR_PIN 11 + - BATT_VOLT_MULT 7.71 + - BATT_AMP_PERVLT 26.67 + +## Compass + +The HEEWING F405 does not have a builtin compass, but you can attach an external compass using the GPS port. The RTF kit comes pre-supplied with a GPS and compass. + +## 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. + +Note that this hardware has problems going into DFU mode if a GPS is connected and powered - please disconnect your GPS when flashing for the first time. + +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/HEEWING-F405/defaults.parm b/libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/defaults.parm new file mode 100644 index 0000000000..8099863e70 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/defaults.parm @@ -0,0 +1,4 @@ +ALT_HOLD_RTL,5000 +ARMING_RUDDER,2 +# GPS RX DMA conflicts with CRSF and I2C1 +GPS_DRV_OPTIONS,4 \ No newline at end of file diff --git a/libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/heewingf405.jpg b/libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/heewingf405.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c45237a5d15f3d37fe587d54dcfded5130391a84 GIT binary patch literal 73380 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ℑ#Cluna4^f}MZb3R*JSGr7(fQp~(QPdOVADnxv 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 literal 0 HcmV?d00001 diff --git a/libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/hwdef-bl.dat new file mode 100644 index 0000000000..410afb4ced --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/hwdef-bl.dat @@ -0,0 +1,41 @@ +# hw definition file for HEEWING-F405 + +# MCU class and specific type +MCU STM32F4xx STM32F405xx + +# crystal frequency +OSCILLATOR_HZ 8000000 + +# board ID for firmware load +APJ_BOARD_ID 1119 + +FLASH_RESERVE_START_KB 0 +FLASH_SIZE_KB 1024 +FLASH_BOOTLOADER_LOAD_KB 64 + +PC13 LED_BOOTLOADER OUTPUT LOW GPIO(0) +PC15 LED_ACTIVITY OUTPUT LOW GPIO(1) # optional +define HAL_LED_ON 0 + +# order of UARTs +SERIAL_ORDER OTG1 USART1 + +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +PA9 USART1_TX USART1 +PA10 USART1_RX USART1 + +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + + +# Add CS pins to ensure they are high in bootloader +PA4 IMU_CS CS +PC4 OSD_CS CS +PC14 FLASH_CS CS +#PC1 SDCARD_CS CS + +# Turn on switched supply and camera switch/output during bootloader to match default +#PA4 PINIO1 OUTPUT LOW +#PB5 PINIO2 OUTPUT LOW diff --git a/libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/hwdef.dat new file mode 100644 index 0000000000..168be33898 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/HEEWING-F405/hwdef.dat @@ -0,0 +1,196 @@ +# hw definition file for MATEK M9N-F405 + +# MCU class and specific type +MCU STM32F4xx STM32F405xx + +# bootloader starts firmware at 64k +FLASH_RESERVE_START_KB 64 +FLASH_SIZE_KB 1024 + +# store parameters in pages 1 and 2 +STORAGE_FLASH_PAGE 1 +define HAL_STORAGE_SIZE 15360 + +# board ID for firmware load +APJ_BOARD_ID 1119 + +define STM32_ST_USE_TIMER 5 +define CH_CFG_ST_RESOLUTION 32 + +# crystal frequency +OSCILLATOR_HZ 8000000 + + +# --------------------- LED ----------------------- +PC13 LED0 OUTPUT LOW GPIO(90) # blue marked as ACT +PC15 LED1 OUTPUT LOW GPIO(91) # green marked as B/E +define HAL_GPIO_A_LED_PIN 91 +define HAL_GPIO_B_LED_PIN 90 + +define HAL_GPIO_LED_OFF 1 + + +# --------------------- PWM ----------------------- + +PB7 TIM4_CH2 TIM4 PWM(1) GPIO(50) BIDIR +PB6 TIM4_CH1 TIM4 PWM(2) GPIO(51) +PB1 TIM3_CH4 TIM3 PWM(3) GPIO(52) # UP shared with I2C2_RX, dshot not advised +PB0 TIM3_CH3 TIM3 PWM(4) GPIO(53) # UP shared with I2C2_RX, dshot not advised +PC9 TIM8_CH4 TIM8 PWM(5) GPIO(54) BIDIR +PC8 TIM8_CH3 TIM8 PWM(6) GPIO(55) +PB15 TIM1_CH3N TIM1 PWM(7) GPIO(56) +PB14 TIM1_CH2N TIM1 PWM(8) GPIO(57) +PA8 TIM1_CH1 TIM1 PWM(9) GPIO(58) BIDIR +PA15 TIM2_CH1 TIM2 PWM(10) GPIO(59) NODMA # no output + +define STM32_PWM_USE_ADVANCED TRUE + +# Beeper +#PA7 TIM3_CH2 TIM3 GPIO(32) ALARM + +# GPIOs +#PA4 PINIO1 OUTPUT GPIO(81) LOW +#PB5 PINIO2 OUTPUT GPIO(82) LOW + +# --------------------- SPI1 ----------------------- +PB3 SPI1_SCK SPI1 +PB4 SPI1_MISO SPI1 +PB5 SPI1_MOSI SPI1 + +PA4 IMU_CS CS + +# --------------------- SPI2 ----------------------- +PB13 SPI2_SCK SPI2 +PC2 SPI2_MISO SPI2 +PC3 SPI2_MOSI SPI2 + +PC4 OSD_CS CS + +# -------------------- I2C bus -------------------- +I2C_ORDER I2C1 I2C2 + +PB8 I2C1_SCL I2C1 +PB9 I2C1_SDA I2C1 + +PB10 I2C2_SCL I2C2 +PB11 I2C2_SDA I2C2 + +# --------------------- UARTs --------------------------- +SERIAL_ORDER OTG1 USART3 USART1 UART5 UART4 USART6 USART2 + +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +# USART1 (labelled UART2 on casing) +PA9 USART1_TX USART1 +PA10 USART1_RX USART1 + +# USART2 - RCIN with inverter / CRSF (4-pin RCIN connector) +PA2 USART2_TX USART2 +PA3 TIM9_CH2 TIM9 RCININT PULLDOWN + +# alternative with PA3 as USART2_RX +PA3 USART2_RX USART2 ALT(1) + +# USART3 - (labelled UART1 on casing) +PC10 USART3_TX USART3 +PC11 USART3_RX USART3 + +# UART4 - (NC) +PA0 UART4_TX UART4 NODMA +PA1 UART4_RX UART4 NODMA + +# UART5 - (GPS) +PC12 UART5_TX UART5 +PD2 UART5_RX UART5 NODMA + +# USART6 - (NC) +PC6 USART6_TX USART6 NODMA +PC7 USART6_RX USART6 NODMA + +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +# ------------------- DMA assignment ------------------- +DMA_PRIORITY ADC1 SPI1* SPI2* USART2* + +# ------------------- IMU ICM42605 --------------------- +SPIDEV icm42688 SPI1 DEVID1 IMU_CS MODE3 1*MHZ 8*MHZ +IMU Invensensev3 SPI:icm42688 ROTATION_ROLL_180_YAW_90 +define HAL_DEFAULT_INS_FAST_SAMPLE 1 + + +# ------------------ OSD AT7456E ---------------------- +SPIDEV osd SPI2 DEVID2 OSD_CS MODE0 10*MHZ 10*MHZ + +define OSD_ENABLED 1 +define HAL_OSD_TYPE_DEFAULT 1 +ROMFS_WILDCARD libraries/AP_OSD/fonts/font0.bin + + +# ----------------- I2C compass & Baro ----------------- +# no built-in compass, but probe the i2c bus for all possible +# external compass types +define HAL_PROBE_EXTERNAL_I2C_COMPASSES +define HAL_I2C_INTERNAL_MASK 0 +define HAL_COMPASS_AUTO_ROT_DEFAULT 2 + +# built-in barometer +BARO SPL06 I2C:0:0x77 + + +# --------------------- ADC --------------------------- +PC0 BATT_VOLTAGE_SENS ADC1 SCALE(1) +PC1 BATT_CURRENT_SENS ADC1 SCALE(1) +// RSSI_ADC_PIN ADC1 SCALE(1) +//PC0 PRESSURE_SENS ADC1 SCALE(1) + +define HAL_BATT_MONITOR_DEFAULT 4 + +define HAL_BATT_VOLT_PIN 10 +define HAL_BATT_VOLT_SCALE 7.71 + +define HAL_BATT_CURR_PIN 11 +define HAL_BATT_CURR_SCALE 26.7 + +#define BOARD_RSSI_ANA_PIN 8 +#define HAL_DEFAULT_AIRSPEED_PIN 10 + +# reduce max size of embedded params for apj_tool.py +define AP_PARAM_MAX_EMBEDDED_PARAM 1024 +define HAL_WITH_DSP FALSE +define HAL_GYROFFT_ENABLED 0 + +# --------------------- save flash ---------------------- +define AP_BATTMON_SMBUS_ENABLE 0 + +include ../include/minimal.inc +include ../include/save_some_flash.inc + +# features that users are likely to want +define AP_TRAMP_ENABLED 1 +define HAL_CRSF_TELEM_TEXT_SELECTION_ENABLED 1 + +# features that users are unlikely to want +define AC_OAPATHPLANNER_ENABLED 0 +define AC_PRECLAND_ENABLED 0 +define AP_ICENGINE_ENABLED 0 +define AP_OPTICALFLOW_ENABLED 0 +define HAL_GENERATOR_ENABLED 0 + +define HAL_SPRAYER_ENABLED 0 +define PRECISION_LANDING 0 +define GRIPPER_ENABLED 0 +define HAL_HOTT_TELEM_ENABLED 0 +define HAL_NMEA_OUTPUT_ENABLED 0 +define HAL_BUTTON_ENABLED 0 +define HAL_OREO_LED_ENABLED 0 +define AP_OPTICALFLOW_ENABLED 0 +define AP_ICENGINE_ENABLED 0 +define AP_RANGEFINDER_ENABLED 0 +define AP_RPM_EFI_ENABLED 0 +define AP_RPM_PIN_ENABLED 0 +define AP_RPM_GENERATOR_ENABLED 0 +define HAL_PARACHUTE_ENABLED 0 + +AUTOBUILD_TARGETS Plane \ No newline at end of file