From 094087d10cdb33b56e3d3a795b425240fb60122d Mon Sep 17 00:00:00 2001 From: Michael Keller Date: Sun, 19 Mar 2017 13:48:26 +1300 Subject: [PATCH] Merge pull request #2688 from mikeller/added_cl_racingf4_target Added CL_RACINGF4 target. --- src/main/target/OMNIBUSF4/CL_RACINGF4.mk | 0 src/main/target/OMNIBUSF4/target.c | 11 ++- src/main/target/OMNIBUSF4/target.h | 116 ++++++++++++++--------- src/main/target/OMNIBUSF4/target.mk | 5 + 4 files changed, 82 insertions(+), 50 deletions(-) create mode 100644 src/main/target/OMNIBUSF4/CL_RACINGF4.mk diff --git a/src/main/target/OMNIBUSF4/CL_RACINGF4.mk b/src/main/target/OMNIBUSF4/CL_RACINGF4.mk new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/main/target/OMNIBUSF4/target.c b/src/main/target/OMNIBUSF4/target.c index 9d1227d454..1c6f2ab377 100644 --- a/src/main/target/OMNIBUSF4/target.c +++ b/src/main/target/OMNIBUSF4/target.c @@ -25,8 +25,10 @@ #include "drivers/timer_def.h" const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { -#ifdef OMNIBUSF4SD +#if defined(CL_RACINGF4) DEF_TIM(TIM4, CH3, PB8, TIM_USE_PWM | TIM_USE_PPM, TIMER_OUTPUT_NONE, 0), // PPM +#else +#if defined(OMNIBUSF4SD) DEF_TIM(TIM4, CH4, PB9, TIM_USE_PWM, TIMER_OUTPUT_NONE, 0), // S2_IN #else DEF_TIM(TIM12, CH1, PB14, TIM_USE_PWM | TIM_USE_PPM, TIMER_OUTPUT_NONE, 0), // PPM @@ -36,13 +38,14 @@ const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { DEF_TIM(TIM8, CH2, PC7, TIM_USE_PWM, TIMER_OUTPUT_NONE, 0), // S4_IN DEF_TIM(TIM8, CH3, PC8, TIM_USE_PWM, TIMER_OUTPUT_NONE, 0), // S5_IN DEF_TIM(TIM8, CH4, PC9, TIM_USE_PWM, TIMER_OUTPUT_NONE, 0), // S6_IN - +#endif // CL_RACINGF4 DEF_TIM(TIM3, CH3, PB0, TIM_USE_MOTOR, TIMER_OUTPUT_STANDARD, 0), // S1_OUT D1_ST7 DEF_TIM(TIM3, CH4, PB1, TIM_USE_MOTOR, TIMER_OUTPUT_STANDARD, 0), // S2_OUT D1_ST2 DEF_TIM(TIM2, CH4, PA3, TIM_USE_MOTOR, TIMER_OUTPUT_STANDARD, 1), // S3_OUT D1_ST6 DEF_TIM(TIM2, CH3, PA2, TIM_USE_MOTOR, TIMER_OUTPUT_STANDARD, 0), // S4_OUT D1_ST1 - -#ifdef OMNIBUSF4SD +#if defined(CL_RACINGF4) + DEF_TIM(TIM4, CH4, PB9, TIM_USE_MOTOR | TIM_USE_LED, TIMER_OUTPUT_STANDARD, 0), // S5_OUT +#elif defined(OMNIBUSF4SD) DEF_TIM(TIM5, CH2, PA1, TIM_USE_MOTOR, TIMER_OUTPUT_STANDARD, 0), // S5_OUT DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR | TIM_USE_LED, TIMER_OUTPUT_STANDARD, 0), // S6_OUT #else diff --git a/src/main/target/OMNIBUSF4/target.h b/src/main/target/OMNIBUSF4/target.h index 872a7bad04..f8b6c1a494 100644 --- a/src/main/target/OMNIBUSF4/target.h +++ b/src/main/target/OMNIBUSF4/target.h @@ -15,7 +15,9 @@ #pragma once -#ifdef OMNIBUSF4SD +#if defined(CL_RACINGF4) +#define TARGET_BOARD_IDENTIFIER "CLR4" +#elif defined(OMNIBUSF4SD) #define TARGET_BOARD_IDENTIFIER "OBSD" #else #define TARGET_BOARD_IDENTIFIER "OBF4" @@ -23,15 +25,18 @@ #define CONFIG_START_FLASH_ADDRESS (0x08080000) //0x08080000 to 0x080A0000 (FLASH_Sector_8) +#if defined(CL_RACINGF4) +#define USBD_PRODUCT_STRING "CL_RACINGF4" +#else #define USBD_PRODUCT_STRING "OmnibusF4" +#endif + #ifdef OPBL #define USBD_SERIALNUMBER_STRING "0x8020000" #endif - #define LED0 PB5 //#define LED1 PB4 - #define BEEPER PB4 #define BEEPER_INVERTED @@ -46,12 +51,15 @@ #define GYRO #define USE_GYRO_SPI_MPU6000 -#ifdef OMNIBUSF4SD - #define GYRO_MPU6000_ALIGN CW270_DEG - #define ACC_MPU6000_ALIGN CW270_DEG +#if defined(CL_RACINGF4) +#define GYRO_MPU6000_ALIGN CW0_DEG +#define ACC_MPU6000_ALIGN CW0_DEG +#elif defined(OMNIBUSF4SD) +#define GYRO_MPU6000_ALIGN CW270_DEG +#define ACC_MPU6000_ALIGN CW270_DEG #else - #define GYRO_MPU6000_ALIGN CW180_DEG - #define ACC_MPU6000_ALIGN CW180_DEG +#define GYRO_MPU6000_ALIGN CW180_DEG +#define ACC_MPU6000_ALIGN CW180_DEG #endif // MPU6000 interrupts @@ -68,11 +76,11 @@ #define BARO #define USE_BARO_MS5611 -#ifdef OMNIBUSF4SD - #define USE_BARO_BMP280 - #define USE_BARO_SPI_BMP280 - #define BMP280_SPI_INSTANCE SPI3 - #define BMP280_CS_PIN PB3 // v1 +#if defined(OMNIBUSF4SD) +#define USE_BARO_BMP280 +#define USE_BARO_SPI_BMP280 +#define BMP280_SPI_INSTANCE SPI3 +#define BMP280_CS_PIN PB3 // v1 #endif #define OSD @@ -82,32 +90,32 @@ #define MAX7456_SPI_CLK (SPI_CLOCK_STANDARD*2) #define MAX7456_RESTORE_CLK (SPI_CLOCK_FAST) -#ifdef OMNIBUSF4SD - #define ENABLE_BLACKBOX_LOGGING_ON_SDCARD_BY_DEFAULT - #define USE_SDCARD - #define USE_SDCARD_SPI2 - - #define SDCARD_DETECT_INVERTED - #define SDCARD_DETECT_PIN PB7 - #define SDCARD_SPI_INSTANCE SPI2 - #define SDCARD_SPI_CS_PIN SPI2_NSS_PIN - - // SPI2 is on the APB1 bus whose clock runs at 84MHz. Divide to under 400kHz for init: - #define SDCARD_SPI_INITIALIZATION_CLOCK_DIVIDER 256 // 328kHz - // Divide to under 25MHz for normal operation: - #define SDCARD_SPI_FULL_SPEED_CLOCK_DIVIDER 4 // 21MHz - - #define SDCARD_DMA_CHANNEL_TX DMA1_Stream4 - #define SDCARD_DMA_CHANNEL_TX_COMPLETE_FLAG DMA_FLAG_TCIF4 - #define SDCARD_DMA_CLK RCC_AHB1Periph_DMA1 - #define SDCARD_DMA_CHANNEL DMA_Channel_0 -#else - #define ENABLE_BLACKBOX_LOGGING_ON_SPIFLASH_BY_DEFAULT - #define M25P16_CS_PIN SPI3_NSS_PIN - #define M25P16_SPI_INSTANCE SPI3 - #define USE_FLASHFS - #define USE_FLASH_M25P16 +#if defined(OMNIBUSF4SD) || defined(CL_RACINGF4) +#define ENABLE_BLACKBOX_LOGGING_ON_SDCARD_BY_DEFAULT +#define USE_SDCARD +#define USE_SDCARD_SPI2 +#if defined(OMNIBUSF4SD) +#define SDCARD_DETECT_INVERTED #endif +#define SDCARD_DETECT_PIN PB7 +#define SDCARD_SPI_INSTANCE SPI2 +#define SDCARD_SPI_CS_PIN SPI2_NSS_PIN +// SPI2 is on the APB1 bus whose clock runs at 84MHz. Divide to under 400kHz for init: +#define SDCARD_SPI_INITIALIZATION_CLOCK_DIVIDER 256 // 328kHz +// Divide to under 25MHz for normal operation: +#define SDCARD_SPI_FULL_SPEED_CLOCK_DIVIDER 4 // 21MHz + +#define SDCARD_DMA_CHANNEL_TX DMA1_Stream4 +#define SDCARD_DMA_CHANNEL_TX_COMPLETE_FLAG DMA_FLAG_TCIF4 +#define SDCARD_DMA_CLK RCC_AHB1Periph_DMA1 +#define SDCARD_DMA_CHANNEL DMA_Channel_0 +#else +#define ENABLE_BLACKBOX_LOGGING_ON_SPIFLASH_BY_DEFAULT +#define M25P16_CS_PIN SPI3_NSS_PIN +#define M25P16_SPI_INSTANCE SPI3 +#define USE_FLASHFS +#define USE_FLASH_M25P16 +#endif // OMNIBUSF4 #define USE_VCP #define VBUS_SENSING_PIN PC5 @@ -125,28 +133,35 @@ #define UART6_RX_PIN PC7 #define UART6_TX_PIN PC6 +#if defined(CL_RACINGF4) +#define USE_UART4 +#define UART4_RX_PIN PA1 +#define UART4_TX_PIN PA0 + +#define SERIAL_PORT_COUNT 5 //VCP, USART1, USART3,USART4, USART6, +#else #define USE_SOFTSERIAL1 #define USE_SOFTSERIAL2 #define SERIAL_PORT_COUNT 6 //VCP, USART1, USART3, USART6, SOFTSERIAL x 2 +#endif #define USE_ESCSERIAL #define ESCSERIAL_TIMER_TX_HARDWARE 0 // PWM 1 #define USE_SPI - #define USE_SPI_DEVICE_1 -#ifdef OMNIBUSF4SD - #define USE_SPI_DEVICE_2 - #define SPI2_NSS_PIN PB12 - #define SPI2_SCK_PIN PB13 - #define SPI2_MISO_PIN PB14 - #define SPI2_MOSI_PIN PB15 +#if defined(OMNIBUSF4SD) || defined(CL_RACINGF4) +#define USE_SPI_DEVICE_2 +#define SPI2_NSS_PIN PB12 +#define SPI2_SCK_PIN PB13 +#define SPI2_MISO_PIN PB14 +#define SPI2_MOSI_PIN PB15 #endif #define USE_SPI_DEVICE_3 -#ifdef OMNIBUSF4SD +#if defined(OMNIBUSF4SD) || defined(CL_RACINGF4) #define SPI3_NSS_PIN PA15 #else #define SPI3_NSS_PIN PB3 @@ -161,7 +176,11 @@ #define USE_ADC #define CURRENT_METER_ADC_PIN PC1 #define VBAT_ADC_PIN PC2 +#if defined(CL_RACINGF4) +#define RSSI_ADC_PIN PC3 +#else //#define RSSI_ADC_PIN PA0 +#endif #define USE_ESC_SENSOR @@ -173,6 +192,11 @@ #define DEFAULT_FEATURES (FEATURE_BLACKBOX | FEATURE_VBAT) #define AVOID_UART1_FOR_PWM_PPM +#if defined(CL_RACINGF4) +#define DEFAULT_FEATURES (FEATURE_BLACKBOX |FEATURE_CURRENT_METER | FEATURE_TELEMETRY| FEATURE_VBAT | FEATURE_OSD ) +#else +#define DEFAULT_FEATURES (FEATURE_BLACKBOX | FEATURE_VBAT | FEATURE_OSD) +#endif #define SPEKTRUM_BIND #define BIND_PIN UART1_RX_PIN diff --git a/src/main/target/OMNIBUSF4/target.mk b/src/main/target/OMNIBUSF4/target.mk index db1c65b899..f880b4fa9e 100644 --- a/src/main/target/OMNIBUSF4/target.mk +++ b/src/main/target/OMNIBUSF4/target.mk @@ -1,5 +1,10 @@ F405_TARGETS += $(TARGET) + +ifeq ($(TARGET), CL_RACINGF4) +FEATURES = VCP SDCARD +else FEATURES += VCP ONBOARDFLASH +endif TARGET_SRC = \ drivers/accgyro_spi_mpu6000.c \