From 1d8991481562de61c48d2293064a38eaa5ffcc8d Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Sun, 21 Aug 2022 15:40:08 +0000 Subject: [PATCH] git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@15731 27425a3e-05d8-49a3-a47f-9c15f0e5edd8 --- os/hal/ports/STM32/LLD/ADCv1/hal_adc_lld.c | 1 + os/hal/ports/STM32/LLD/ADCv2/hal_adc_lld.c | 3 +++ os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c | 12 ++++++------ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/os/hal/ports/STM32/LLD/ADCv1/hal_adc_lld.c b/os/hal/ports/STM32/LLD/ADCv1/hal_adc_lld.c index 956168bdc..9384593ad 100644 --- a/os/hal/ports/STM32/LLD/ADCv1/hal_adc_lld.c +++ b/os/hal/ports/STM32/LLD/ADCv1/hal_adc_lld.c @@ -218,6 +218,7 @@ void adc_lld_start(ADCDriver *adcp) { (stm32_dmaisr_t)adc_lld_serve_rx_interrupt, (void *)adcp); osalDbgAssert(adcp->dmastp != NULL, "unable to allocate stream"); + rccResetADC1(); rccEnableADC1(true); /* DMA setup.*/ diff --git a/os/hal/ports/STM32/LLD/ADCv2/hal_adc_lld.c b/os/hal/ports/STM32/LLD/ADCv2/hal_adc_lld.c index b872147ad..02df387de 100644 --- a/os/hal/ports/STM32/LLD/ADCv2/hal_adc_lld.c +++ b/os/hal/ports/STM32/LLD/ADCv2/hal_adc_lld.c @@ -248,6 +248,7 @@ void adc_lld_start(ADCDriver *adcp) { (void *)adcp); osalDbgAssert(adcp->dmastp != NULL, "unable to allocate stream"); dmaStreamSetPeripheral(adcp->dmastp, &ADC1->DR); + rccResetADC1(true); rccEnableADC1(true); } #endif /* STM32_ADC_USE_ADC1 */ @@ -260,6 +261,7 @@ void adc_lld_start(ADCDriver *adcp) { (void *)adcp); osalDbgAssert(adcp->dmastp != NULL, "unable to allocate stream"); dmaStreamSetPeripheral(adcp->dmastp, &ADC2->DR); + rccResetADC2(true); rccEnableADC2(true); } #endif /* STM32_ADC_USE_ADC2 */ @@ -272,6 +274,7 @@ void adc_lld_start(ADCDriver *adcp) { (void *)adcp); osalDbgAssert(adcp->dmastp != NULL, "unable to allocate stream"); dmaStreamSetPeripheral(adcp->dmastp, &ADC3->DR); + rccResetADC3(true); rccEnableADC3(true); } #endif /* STM32_ADC_USE_ADC3 */ diff --git a/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c b/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c index 3a328ae0f..686b7539d 100644 --- a/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c +++ b/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c @@ -555,30 +555,30 @@ void adc_lld_init(void) { #if defined(STM32F3XX) #if STM32_HAS_ADC1 && STM32_HAS_ADC2 #if STM32_ADC_USE_ADC1 || STM32_ADC_USE_ADC2 - rccEnableADC12(true); rccResetADC12(); + rccEnableADC12(true); ADC1_2_COMMON->CCR = STM32_ADC_ADC12_CLOCK_MODE | ADC_DMA_MDMA; rccDisableADC12(); #endif #else #if STM32_ADC_USE_ADC1 - rccEnableADC12(true); rccResetADC12(); + rccEnableADC12(true); ADC1_COMMON->CCR = STM32_ADC_ADC12_CLOCK_MODE | ADC_DMA_MDMA; rccDisableADC12(); #endif #endif #if STM32_ADC_USE_ADC3 || STM32_ADC_USE_ADC4 - rccEnableADC34(true); rccResetADC34(); + rccEnableADC34(true); ADC3_4_COMMON->CCR = STM32_ADC_ADC34_CLOCK_MODE | ADC_DMA_MDMA; rccDisableADC34(); #endif #endif #if defined(STM32L4XX) || defined(STM32L4XXP) - rccEnableADC123(true); rccResetADC123(); + rccEnableADC123(true); #if defined(ADC1_2_COMMON) ADC1_2_COMMON->CCR = STM32_ADC_ADC123_PRESC | STM32_ADC_ADC123_CLOCK_MODE | ADC_DMA_MDMA; #elif defined(ADC12_COMMON) @@ -593,8 +593,8 @@ void adc_lld_init(void) { #if defined(STM32G4XX) #if STM32_ADC_USE_ADC1 || STM32_ADC_USE_ADC2 - rccEnableADC12(true); rccResetADC12(); + rccEnableADC12(true); ADC12_COMMON->CCR = STM32_ADC_ADC12_PRESC | STM32_ADC_ADC12_CLOCK_MODE | ADC_DMA_MDMA; rccDisableADC12(); #endif @@ -608,8 +608,8 @@ void adc_lld_init(void) { #if defined(STM32WBXX) #if STM32_ADC_USE_ADC1 - rccEnableADC1(true); rccResetADC1(); + rccEnableADC1(true); ADC1_COMMON->CCR = STM32_ADC_ADC1_PRESC | STM32_ADC_ADC1_CLOCK_MODE; rccDisableADC1(); #endif