From 10838387c5e67be33c8c7cce97501f8af83e9fff Mon Sep 17 00:00:00 2001 From: Hwurzburg Date: Sat, 15 Jun 2019 15:04:02 -0500 Subject: [PATCH] Split Omnibus F4 pro and non-pro into two boards to allow pro boards to have 8 pwm outputs --- .../hwdef/omnibusf4/hwdef-bl.dat | 40 +++++ .../AP_HAL_ChibiOS/hwdef/omnibusf4/hwdef.dat | 146 ++++++++++++++++++ .../hwdef/omnibusf4pro/hwdef.dat | 26 ++-- 3 files changed, 200 insertions(+), 12 deletions(-) create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/omnibusf4/hwdef-bl.dat create mode 100644 libraries/AP_HAL_ChibiOS/hwdef/omnibusf4/hwdef.dat diff --git a/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4/hwdef-bl.dat b/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4/hwdef-bl.dat new file mode 100644 index 0000000000..4fcf4b70ab --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4/hwdef-bl.dat @@ -0,0 +1,40 @@ +# hw definition file for processing by chibios_pins.py +# for omnibusf4 AIO (no current sensor onboard) bootloader + +# MCU class and specific type +MCU STM32F4xx STM32F405xx + +# board ID for firmware load +APJ_BOARD_ID 131 + +# crystal frequency +OSCILLATOR_HZ 8000000 +STM32_PLLM_VALUE 8 + +FLASH_SIZE_KB 1024 + +# don't allow bootloader to use more than 16k +FLASH_USE_MAX_KB 16 + +# bootloader is installed at zero offset +FLASH_RESERVE_START_KB 0 + +# LEDs +PB5 LED_BOOTLOADER OUTPUT LOW +define HAL_LED_ON 0 + +# the location where the bootloader will put the firmware +FLASH_BOOTLOADER_LOAD_KB 64 + +# board voltage +STM32_VDD 330U + +# order of UARTs +UART_ORDER OTG1 + +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 + +define HAL_USE_EMPTY_STORAGE 1 +define HAL_STORAGE_SIZE 15360 + diff --git a/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4/hwdef.dat new file mode 100644 index 0000000000..92c4feded9 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4/hwdef.dat @@ -0,0 +1,146 @@ +# hw definition file for processing by chibios_pins.py +# Omnibus F4 AIO (no current sensor onboard) boards +# with F405 mcu, mpu6000 imu, bmp280 barometer, 7456 series osd and sdcard + +MCU STM32F4xx STM32F405xx + +HAL_CHIBIOS_ARCH_F405 1 + +# board ID for firmware load +APJ_BOARD_ID 131 + +# crystal frequency +OSCILLATOR_HZ 8000000 +STM32_PLLM_VALUE 8 + +# board voltage +STM32_VDD 330U + +STM32_ST_USE_TIMER 5 + +# flash size +FLASH_SIZE_KB 1024 +FLASH_RESERVE_START_KB 64 + +# order of I2C buses +I2C_ORDER I2C2 + +# order of UARTs +UART_ORDER OTG1 USART6 USART1 + +#adc +PC1 BAT_CURR_SENS ADC1 SCALE(1) +PC2 BAT_VOLT_SENS ADC1 SCALE(1) +PA0 RSSI_IN ADC1 + +#pwm output. 1 - 4 on main header, 5 & 6 on separated header w/o 5V supply, 7 & 8 on CH5 and CH6 pads +PB0 TIM1_CH2N TIM1 PWM(1) GPIO(50) +PB1 TIM1_CH3N TIM1 PWM(2) GPIO(51) +PA3 TIM2_CH4 TIM2 PWM(3) GPIO(52) +PA2 TIM2_CH3 TIM2 PWM(4) GPIO(53) +PA1 TIM2_CH2 TIM2 PWM(5) GPIO(54) +PA8 TIM1_CH1 TIM1 PWM(6) GPIO(55) + + +PA4 MPU6000_CS CS +PA5 SPI1_SCK SPI1 +PA6 SPI1_MISO SPI1 +PA7 SPI1_MOSI SPI1 + +# note that this board needs PULLUP on I2C pins +PB10 I2C2_SCL I2C2 PULLUP +PB11 I2C2_SDA I2C2 PULLUP + +PB15 SPI2_MOSI SPI2 +PB14 SPI2_MISO SPI2 +PB13 SPI2_SCK SPI2 +PB12 SDCARD_CS CS + +PA10 USART1_RX USART1 +PA9 USART1_TX USART1 + +PC6 USART6_TX USART6 +PC7 USART6_RX USART6 + +PA13 JTMS-SWDIO SWD +PA14 JTCK-SWCLK SWD + +PA15 OSD_CS CS +PB3 BMP280_CS CS +PC12 SPI3_MOSI SPI3 +PC11 SPI3_MISO SPI3 +PC10 SPI3_SCK SPI3 + +PB5 LED OUTPUT HIGH GPIO(57) +PB4 TIM3_CH1 TIM3 GPIO(56) ALARM + +PA11 OTG_FS_DM OTG1 +PA12 OTG_FS_DP OTG1 +PC5 VBUS INPUT OPENDRAIN + +# "PPM" solder pad/resistor should be soldered and "S-BUS" resistor/solder pad removed +# Overwise UART1 or UART6 or RCIN will not work +PB8 TIM4_CH3 TIM4 RCININT PULLDOWN LOW + +#Omnibus F4 AIO V3 and later had hw inverter on UART6 +#Overide it to use as GPS UART port +PC8 SBUS_INVERT_RX OUTPUT LOW +PC9 SBUS_INVERT_TX OUTPUT LOW + +# SPI Device table +SPIDEV mpu6000 SPI1 DEVID1 MPU6000_CS MODE3 1*MHZ 8*MHZ +SPIDEV sdcard SPI2 DEVID2 SDCARD_CS MODE0 400*KHZ 25*MHZ +SPIDEV bmp280 SPI3 DEVID3 BMP280_CS MODE3 1*MHZ 8*MHZ +SPIDEV osd SPI3 DEVID4 OSD_CS MODE0 10*MHZ 10*MHZ + +define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_CHIBIOS_OMNIBUSF4PRO + +# one IMU +IMU Invensense SPI:mpu6000 ROTATION_YAW_180 + +# one baro +BARO BMP280 SPI:bmp280 + +# no built-in compass, but probe the i2c bus for all possible +# external compass types +define ALLOW_ARM_NO_COMPASS +define HAL_COMPASS_DEFAULT HAL_COMPASS_NONE +define HAL_PROBE_EXTERNAL_I2C_COMPASSES +define HAL_I2C_INTERNAL_MASK 0 +define HAL_COMPASS_AUTO_ROT_DEFAULT 2 + +define STORAGE_FLASH_PAGE 1 +define HAL_STORAGE_SIZE 15360 + +define HAL_OS_FATFS_IO 1 +define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS" +define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN" + +# define default battery setup +define HAL_BATT_VOLT_PIN 12 +define HAL_BATT_CURR_PIN 11 +define HAL_BATT_VOLT_SCALE 11 +define HAL_BATT_CURR_SCALE 18.2 + +#analog rssi pin (also could be used as analog airspeed input) +# PA0 - ADC123_CH0 +define BOARD_RSSI_ANA_PIN 0 + + +define HAL_GPIO_A_LED_PIN 57 + +define OSD_ENABLED ENABLED +define HAL_OSD_TYPE_DEFAULT 1 + +#To complementary channels work we define this +define STM32_PWM_USE_ADVANCED TRUE + +define BOARD_PWM_COUNT_DEFAULT 6 + +#define CH_DBG_ENABLE_ASSERTS TRUE +#define CH_DBG_ENABLE_CHECKS TRUE +#define CH_DBG_SYSTEM_STATE_CHECK TRUE +#define CH_DBG_ENABLE_STACK_CHECK TRUE + +#font for the osd +ROMFS_WILDCARD libraries/AP_OSD/fonts/font*.bin diff --git a/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4pro/hwdef.dat b/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4pro/hwdef.dat index 99c2051388..4269ed1f4f 100644 --- a/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4pro/hwdef.dat +++ b/libraries/AP_HAL_ChibiOS/hwdef/omnibusf4pro/hwdef.dat @@ -1,5 +1,5 @@ # hw definition file for processing by chibios_pins.py -# Omnibus F4 PRO, Omnibus F4 V3 boards +# Omnibus F4 PRO with on-board current sensor # with F405 mcu, mpu6000 imu, bmp280 barometer, 7456 series osd and sdcard MCU STM32F4xx STM32F405xx @@ -33,13 +33,15 @@ PC1 BAT_CURR_SENS ADC1 SCALE(1) PC2 BAT_VOLT_SENS ADC1 SCALE(1) PA0 RSSI_IN ADC1 -#pwm output +#pwm output. 1 - 4 on main header, 5 & 6 on separated header w/o 5V supply, 7 & 8 on CH5 and CH6 pads PB0 TIM1_CH2N TIM1 PWM(1) GPIO(50) PB1 TIM1_CH3N TIM1 PWM(2) GPIO(51) -PA3 TIM2_CH4 TIM2 PWM(3) GPIO(52) -PA2 TIM2_CH3 TIM2 PWM(4) GPIO(53) -PA1 TIM2_CH2 TIM2 PWM(5) GPIO(54) -PA8 TIM1_CH1 TIM1 PWM(6) GPIO(55) +PA3 TIM2_CH4 TIM2 PWM(3) GPIO(52) +PA2 TIM2_CH3 TIM2 PWM(4) GPIO(53) +PA1 TIM2_CH2 TIM2 PWM(5) GPIO(54) +PA8 TIM1_CH1 TIM1 PWM(6) GPIO(55) +PC8 TIM8_CH3 TIM8 PWM(7) GPIO(56) +PC9 TIM8_CH4 TIM8 PWM(8) GPIO(57) PA4 MPU6000_CS CS PA5 SPI1_SCK SPI1 @@ -70,8 +72,8 @@ PC12 SPI3_MOSI SPI3 PC11 SPI3_MISO SPI3 PC10 SPI3_SCK SPI3 -PB5 LED OUTPUT HIGH GPIO(57) -PB4 TIM3_CH1 TIM3 GPIO(56) ALARM +PB5 LED OUTPUT HIGH GPIO(59) +PB4 TIM3_CH1 TIM3 GPIO(58) ALARM PA11 OTG_FS_DM OTG1 PA12 OTG_FS_DP OTG1 @@ -81,10 +83,10 @@ PC5 VBUS INPUT OPENDRAIN # Overwise UART1 or UART6 or RCIN will not work PB8 TIM4_CH3 TIM4 RCININT PULLDOWN LOW -#Omnibus F4 V3 and later had hw inverter on UART6 +#Omnibus F4 AIO V3 and later had hw inverter on UART6 #Overide it to use as GPS UART port -PC8 SBUS_INVERT_RX OUTPUT LOW -PC9 SBUS_INVERT_TX OUTPUT LOW +#PC8 SBUS_INVERT_RX OUTPUT LOW +#PC9 SBUS_INVERT_TX OUTPUT LOW # SPI Device table SPIDEV mpu6000 SPI1 DEVID1 MPU6000_CS MODE3 1*MHZ 8*MHZ @@ -134,7 +136,7 @@ define HAL_OSD_TYPE_DEFAULT 1 #To complementary channels work we define this define STM32_PWM_USE_ADVANCED TRUE -define BOARD_PWM_COUNT_DEFAULT 6 +define BOARD_PWM_COUNT_DEFAULT 8 #define CH_DBG_ENABLE_ASSERTS TRUE #define CH_DBG_ENABLE_CHECKS TRUE