diff --git a/src/main/drivers/adc_stm32f30x.c b/src/main/drivers/adc_stm32f30x.c index 599ab4296e..f17fb892f1 100644 --- a/src/main/drivers/adc_stm32f30x.c +++ b/src/main/drivers/adc_stm32f30x.c @@ -40,7 +40,11 @@ const adcDevice_t adcHardware[] = { { .ADCx = ADC1, .rccADC = RCC_AHB(ADC12), .DMAy_Channelx = DMA1_Channel1 }, +#ifdef ADC24_DMA_REMAP + { .ADCx = ADC2, .rccADC = RCC_AHB(ADC12), .DMAy_Channelx = DMA2_Channel3 } +#else { .ADCx = ADC2, .rccADC = RCC_AHB(ADC12), .DMAy_Channelx = DMA2_Channel1 } +#endif }; const adcTagMap_t adcTagMap[] = { @@ -134,6 +138,9 @@ void adcInit(drv_adc_config_t *init) if (device == ADCINVALID) return; +#ifdef ADC24_DMA_REMAP + SYSCFG_DMAChannelRemapConfig(SYSCFG_DMARemap_ADC2ADC4, ENABLE); +#endif adcDevice_t adc = adcHardware[device]; for (int i = 0; i < ADC_CHANNEL_COUNT; i++) { diff --git a/src/main/target/DOGE/target.c b/src/main/target/DOGE/target.c index 92957613d5..19c10eefd4 100644 --- a/src/main/target/DOGE/target.c +++ b/src/main/target/DOGE/target.c @@ -26,10 +26,10 @@ const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { DEF_TIM(TIM1, CH1, PA8, TIM_USE_PPM, 0), // PWM1 - PA8 - DEF_TIM(TIM4, CH3, PB8, TIM_USE_MOTOR, 1), // PWM2 - PB8 - DEF_TIM(TIM4, CH4, PB9, TIM_USE_MOTOR, 1), // PWM3 - PB9 - DEF_TIM(TIM2, CH4, PA10, TIM_USE_MOTOR, 1), // PMW4 - PA10 - DEF_TIM(TIM2, CH3, PA9, TIM_USE_MOTOR, 1), // PWM5 - PA9 + DEF_TIM(TIM8, CH2, PB8, TIM_USE_MOTOR, 1), // PWM2 - PB8, DMA2ch5 + DEF_TIM(TIM8, CH3, PB9, TIM_USE_MOTOR, 1), // PWM3 - PB9, DMA2ch1 + DEF_TIM(TIM2, CH4, PA10, TIM_USE_MOTOR, 1), // PMW4 - PA10, DMA1ch7 + DEF_TIM(TIM2, CH3, PA9, TIM_USE_MOTOR, 1), // PWM5 - PA9, DMA1ch1 DEF_TIM(TIM2, CH1, PA0, TIM_USE_MOTOR, 1), // PWM6 - PA0 DEF_TIM(TIM2, CH2, PA1, TIM_USE_MOTOR, 1), // PWM7 - PA1 DEF_TIM(TIM3, CH3, PB0, TIM_USE_MOTOR, 1), // PWM8 - PB1 diff --git a/src/main/target/DOGE/target.h b/src/main/target/DOGE/target.h index ee10bfd70f..fd2ea81494 100644 --- a/src/main/target/DOGE/target.h +++ b/src/main/target/DOGE/target.h @@ -113,6 +113,7 @@ #define BOARD_HAS_VOLTAGE_DIVIDER #define USE_ADC #define ADC_INSTANCE ADC2 +#define ADC24_DMA_REMAP // moves ADC2 DMA from DMA2ch1 to DMA2ch3. #define VBAT_ADC_PIN PA4 #define CURRENT_METER_ADC_PIN PA5