diff --git a/src/main/target/OMNIBUSF4/CL_RACINGF4.mk b/src/main/target/OMNIBUSF4/CL_RACINGF4.mk new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/src/main/target/OMNIBUSF4/CL_RACINGF4.mk @@ -0,0 +1 @@ + diff --git a/src/main/target/OMNIBUSF4/target.c b/src/main/target/OMNIBUSF4/target.c index 9d1227d454..387069892b 100644 --- a/src/main/target/OMNIBUSF4/target.c +++ b/src/main/target/OMNIBUSF4/target.c @@ -25,28 +25,37 @@ #include "drivers/timer_def.h" const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { -#ifdef OMNIBUSF4SD - DEF_TIM(TIM4, CH3, PB8, TIM_USE_PWM | TIM_USE_PPM, TIMER_OUTPUT_NONE, 0), // PPM - 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 - DEF_TIM(TIM12, CH2, PB15, TIM_USE_PWM, TIMER_OUTPUT_NONE, 0), // S2_IN -#endif - DEF_TIM(TIM8, CH1, PC6, TIM_USE_PWM, TIMER_OUTPUT_NONE, 0), // S3_IN - 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 +#if defined(OMNIBUSF4SD) ||defined(OMNIBUSF4) + #ifdef OMNIBUSF4SD + DEF_TIM(TIM4, CH3, PB8, TIM_USE_PWM | TIM_USE_PPM, TIMER_OUTPUT_NONE, 0), // PPM + DEF_TIM(TIM4, CH4, PB9, TIM_USE_PWM, TIMER_OUTPUT_NONE, 0), // S2_IN + #elif defined( OMNIBUSF4 ) + DEF_TIM(TIM12, CH1, PB14, TIM_USE_PWM | TIM_USE_PPM, TIMER_OUTPUT_NONE, 0), // PPM + DEF_TIM(TIM12, CH2, PB15, TIM_USE_PWM, TIMER_OUTPUT_NONE, 0), // S2_IN + #endif + DEF_TIM(TIM8, CH1, PC6, TIM_USE_PWM, TIMER_OUTPUT_NONE, 0), // S3_IN + 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 + 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 + 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 + #elif defined( OMNIBUSF4 ) + DEF_TIM(TIM5, CH2, PA1, TIM_USE_MOTOR | TIM_USE_LED, TIMER_OUTPUT_STANDARD, 0), // S5_OUT + DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, TIMER_OUTPUT_STANDARD, 0), // S6_OUT + #endif +#elif defined( CL_RACINGF4 ) + DEF_TIM(TIM4, CH3, PB8, TIM_USE_PWM | TIM_USE_PPM, TIMER_OUTPUT_NONE, 0), // PPM 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 - 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 - DEF_TIM(TIM5, CH2, PA1, TIM_USE_MOTOR | TIM_USE_LED, TIMER_OUTPUT_STANDARD, 0), // S5_OUT - DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, TIMER_OUTPUT_STANDARD, 0), // S6_OUT + DEF_TIM(TIM4, CH4, PB9, TIM_USE_MOTOR | TIM_USE_LED, TIMER_OUTPUT_STANDARD, 0), // S5_OUT #endif + }; diff --git a/src/main/target/OMNIBUSF4/target.h b/src/main/target/OMNIBUSF4/target.h index 0c4b38d762..314bf1756f 100644 --- a/src/main/target/OMNIBUSF4/target.h +++ b/src/main/target/OMNIBUSF4/target.h @@ -17,19 +17,24 @@ #ifdef OMNIBUSF4SD #define TARGET_BOARD_IDENTIFIER "OBSD" -#else +#elif OMNIBUSF4 #define TARGET_BOARD_IDENTIFIER "OBF4" +#elif CL_RACINGF4 +#define TARGET_BOARD_IDENTIFIER "CL_R" #endif +#ifdef 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 @@ -47,9 +52,12 @@ #ifdef OMNIBUSF4SD #define GYRO_MPU6000_ALIGN CW270_DEG #define ACC_MPU6000_ALIGN CW270_DEG -#else +#elif OMNIBUSF4 #define GYRO_MPU6000_ALIGN CW180_DEG #define ACC_MPU6000_ALIGN CW180_DEG +#elif CL_RACINGF4 + #define GYRO_MPU6000_ALIGN CW0_DEG + #define ACC_MPU6000_ALIGN CW0_DEG #endif // MPU6000 interrupts @@ -80,16 +88,16 @@ #define MAX7456_SPI_CLK (SPI_CLOCK_STANDARD*2) #define MAX7456_RESTORE_CLK (SPI_CLOCK_FAST) -#ifdef OMNIBUSF4SD +#if defined( OMNIBUSF4SD )||defined( CL_RACINGF4 ) #define ENABLE_BLACKBOX_LOGGING_ON_SDCARD_BY_DEFAULT #define USE_SDCARD #define USE_SDCARD_SPI2 - - #define SDCARD_DETECT_INVERTED + #ifdef 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: @@ -119,23 +127,32 @@ #define UART3_RX_PIN PB11 #define UART3_TX_PIN PB10 +#ifdef CL_RACINGF4 + #define USE_UART4 + #define UART4_RX_PIN PA1 + #define UART4_TX_PIN PA0 +#endif #define USE_UART6 #define UART6_RX_PIN PC7 #define UART6_TX_PIN PC6 -#define USE_SOFTSERIAL1 -#define USE_SOFTSERIAL2 +#ifdef CL_RACINGF + #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 SERIAL_PORT_COUNT 6 //VCP, USART1, USART3, USART6, SOFTSERIAL x 2 #define USE_ESCSERIAL #define ESCSERIAL_TIMER_TX_HARDWARE 0 // PWM 1 #define USE_SPI - #define USE_SPI_DEVICE_1 -#ifdef OMNIBUSF4SD +#if defined( OMNIBUSF4SD ) || defined( CL_RACINGF4 ) #define USE_SPI_DEVICE_2 #define SPI2_NSS_PIN PB12 #define SPI2_SCK_PIN PB13 @@ -144,7 +161,7 @@ #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 @@ -157,16 +174,20 @@ #define CURRENT_METER_ADC_PIN PC1 #define VBAT_ADC_PIN PC2 //#define RSSI_ADC_PIN PA0 +#ifdef CL_RACINGF3 + #define RSSI_ADC_PIN PC3 +#endif #define USE_ESC_SENSOR - #define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL -#define DEFAULT_FEATURES (FEATURE_BLACKBOX | FEATURE_VBAT | FEATURE_OSD) - #define AVOID_UART1_FOR_PWM_PPM +#ifdef 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_PIN UART1_RX_PIN - #define USE_SERIAL_4WAY_BLHELI_INTERFACE #define TARGET_IO_PORTA (0xffff & ~(BIT(14)|BIT(13))) diff --git a/src/main/target/OMNIBUSF4/target.mk b/src/main/target/OMNIBUSF4/target.mk index db1c65b899..07fd712217 100644 --- a/src/main/target/OMNIBUSF4/target.mk +++ b/src/main/target/OMNIBUSF4/target.mk @@ -1,5 +1,10 @@ F405_TARGETS += $(TARGET) -FEATURES += VCP ONBOARDFLASH + +ifeq ($(TARGET), CL_RACINGF4) + FEATURES += VCP SDCARD +else + FEATURES += VCP ONBOARDFLASH +endif TARGET_SRC = \ drivers/accgyro_spi_mpu6000.c \