From 56e7c8225a8df5e0bae3208f76e3f28cbaa978c1 Mon Sep 17 00:00:00 2001 From: mikeller Date: Sun, 7 Jul 2019 13:53:56 +1200 Subject: [PATCH] Fixed DMA resource conflicts for target BEEROTORF4. --- src/main/target/BEEROTORF4/target.c | 16 ++++++++-------- src/main/target/BEEROTORF4/target.h | 5 +++-- unified_targets/configs/BEEROTORF4.config | 22 +++++++++++----------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/main/target/BEEROTORF4/target.c b/src/main/target/BEEROTORF4/target.c index 7ab68e223a..2f61dff9ec 100644 --- a/src/main/target/BEEROTORF4/target.c +++ b/src/main/target/BEEROTORF4/target.c @@ -30,14 +30,14 @@ const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { DEF_TIM(TIM9, CH2, PA3, TIM_USE_PPM, 0, 0), // PPM IN - DEF_TIM(TIM1, CH2N, PB0, TIM_USE_MOTOR, 0, 0), // M1 - DMAR: DMA2_ST5 - DEF_TIM(TIM1, CH3N, PB1, TIM_USE_MOTOR, 0, 0), // M2 - - DEF_TIM(TIM2, CH2, PA1, TIM_USE_MOTOR, 0, 0), // M3 - DMAR: DMA1_ST7 - DEF_TIM(TIM2, CH1, PA0, TIM_USE_MOTOR, 0, 0), // M4 - - DEF_TIM(TIM8, CH1, PC6, TIM_USE_MOTOR, 0, 0), // M5 - DMAR: DMA2_ST1 - DEF_TIM(TIM8, CH2, PC7, TIM_USE_MOTOR, 0, 0), // M6 - - DEF_TIM(TIM3, CH2, PB5, TIM_USE_MOTOR, 0, 0), // M7 - DMAR: DMA1_ST2 - DEF_TIM(TIM4, CH4, PB9, TIM_USE_MOTOR, 0, 0), // M8 - DMAR: DMA1_ST6 + DEF_TIM(TIM1, CH2N, PB0, TIM_USE_MOTOR, 0, 0), // M1 - DMA2_ST6 + DEF_TIM(TIM8, CH3N, PB1, TIM_USE_MOTOR, 0, 1), // M2 - DMA2_ST4 + DEF_TIM(TIM2, CH2, PA1, TIM_USE_MOTOR, 0, 0), // M3 - DMA1_ST6 + DEF_TIM(TIM5, CH1, PA0, TIM_USE_MOTOR, 0, 0), // M4 - DMA1_ST2 + DEF_TIM(TIM3, CH1, PC6, TIM_USE_MOTOR, 0, 0), // M5 - DMA1_ST4 (conflicts with SDCard, switch off SDCard DMA if used for DShot) + DEF_TIM(TIM8, CH2, PC7, TIM_USE_MOTOR, 0, 0), // M6 - DMA2_ST2 + DEF_TIM(TIM3, CH2, PB5, TIM_USE_MOTOR, 0, 0), // M7 - DMA1_ST5 (doesn't work for DShot) + DEF_TIM(TIM4, CH4, PB9, TIM_USE_MOTOR, 0, 0), // M8 - no DMA DEF_TIM(TIM4, CH3, PB8, TIM_USE_LED | TIM_USE_TRANSPONDER, 0, 0), // LED_STRIP / TRANSPONDER - DMA1_ST7 (can be used for DShot, conflicts with OSD TX) }; diff --git a/src/main/target/BEEROTORF4/target.h b/src/main/target/BEEROTORF4/target.h index 4523c5a5bc..745d1df0f9 100644 --- a/src/main/target/BEEROTORF4/target.h +++ b/src/main/target/BEEROTORF4/target.h @@ -29,7 +29,8 @@ #define BEEPER_PIN PB3 #define BEEPER_INVERTED -#define ENABLE_DSHOT_DMAR true +// Tim_UP 1 (motors 1 & 2) conflicts with Tim 4 Ch 3 (LED_STRIP) +#define ENABLE_DSHOT_DMAR false // ICM20689 interrupt #define USE_EXTI @@ -153,4 +154,4 @@ #define TARGET_IO_PORTD (BIT(2)) #define USABLE_TIMER_CHANNEL_COUNT 10 -#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(8) | TIM_N(9) ) +#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(5) | TIM_N(8) | TIM_N(9) ) diff --git a/unified_targets/configs/BEEROTORF4.config b/unified_targets/configs/BEEROTORF4.config index f9b6337d07..28474fb352 100644 --- a/unified_targets/configs/BEEROTORF4.config +++ b/unified_targets/configs/BEEROTORF4.config @@ -51,14 +51,14 @@ timer A03 AF3 # pin A03: TIM9 CH2 (AF3) timer B00 AF1 # pin B00: TIM1 CH2N (AF1) -timer B01 AF1 -# pin B01: TIM1 CH3N (AF1) +timer B01 AF3 +# pin B01: TIM8 CH3N (AF3) timer A01 AF1 # pin A01: TIM2 CH2 (AF1) -timer A00 AF1 -# pin A00: TIM2 CH1 (AF1) -timer C06 AF3 -# pin C06: TIM8 CH1 (AF3) +timer A00 AF2 +# pin A00: TIM5 CH1 (AF2) +timer C06 AF2 +# pin C06: TIM3 CH1 (AF2) timer C07 AF3 # pin C07: TIM8 CH2 (AF3) timer B05 AF2 @@ -79,14 +79,14 @@ dma ADC 1 0 # ADC 1: DMA2 Stream 0 Channel 0 dma pin B00 0 # pin B00: DMA2 Stream 6 Channel 0 -dma pin B01 0 -# pin B01: DMA2 Stream 6 Channel 0 +dma pin B01 1 +# pin B01: DMA2 Stream 4 Channel 7 dma pin A01 0 # pin A01: DMA1 Stream 6 Channel 3 dma pin A00 0 -# pin A00: DMA1 Stream 5 Channel 3 +# pin A00: DMA1 Stream 2 Channel 6 dma pin C06 0 -# pin C06: DMA2 Stream 2 Channel 0 +# pin C06: DMA1 Stream 4 Channel 5 dma pin C07 0 # pin C07: DMA2 Stream 2 Channel 0 dma pin B05 0 @@ -98,7 +98,7 @@ dma pin B08 0 set baro_bustype = I2C set baro_i2c_device = 1 set blackbox_device = SDCARD -set dshot_burst = ON +set dshot_burst = OFF set current_meter = ADC set battery_meter = ADC set beeper_inversion = ON