From c04365c69130e571bfb9697f28560fb2286bf4da Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Mon, 17 May 2021 13:22:11 +0000 Subject: [PATCH] STM32 ADCv3 updated for dynamic clocking. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@14389 27425a3e-05d8-49a3-a47f-9c15f0e5edd8 --- os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c | 16 ++++++++++++++++ os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.h | 20 -------------------- os/hal/ports/STM32/STM32G4xx/hal_lld.h | 4 ++-- readme.txt | 2 +- 4 files changed, 19 insertions(+), 23 deletions(-) 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 bc0ffe7cb..9ce95ad00 100644 --- a/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c +++ b/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c @@ -630,6 +630,10 @@ void adc_lld_start(ADCDriver *adcp) { if (adcp->state == ADC_STOP) { #if STM32_ADC_USE_ADC1 if (&ADCD1 == adcp) { + + osalDbgAssert(STM32_ADC12_CLOCK <= STM32_ADCCLK_MAX, + "invalid clock frequency"); + adcp->dmastp = dmaStreamAllocI(STM32_ADC_ADC1_DMA_STREAM, STM32_ADC_ADC1_DMA_IRQ_PRIORITY, (stm32_dmaisr_t)adc_lld_serve_dma_interrupt, @@ -654,6 +658,10 @@ void adc_lld_start(ADCDriver *adcp) { #if STM32_ADC_USE_ADC2 if (&ADCD2 == adcp) { + + osalDbgAssert(STM32_ADC12_CLOCK <= STM32_ADCCLK_MAX, + "invalid clock frequency"); + adcp->dmastp = dmaStreamAllocI(STM32_ADC_ADC2_DMA_STREAM, STM32_ADC_ADC2_DMA_IRQ_PRIORITY, (stm32_dmaisr_t)adc_lld_serve_dma_interrupt, @@ -678,6 +686,10 @@ void adc_lld_start(ADCDriver *adcp) { #if STM32_ADC_USE_ADC3 if (&ADCD3 == adcp) { + + osalDbgAssert(STM32_ADC345_CLOCK <= STM32_ADCCLK_MAX, + "invalid clock frequency"); + adcp->dmastp = dmaStreamAllocI(STM32_ADC_ADC3_DMA_STREAM, STM32_ADC_ADC3_DMA_IRQ_PRIORITY, (stm32_dmaisr_t)adc_lld_serve_dma_interrupt, @@ -705,6 +717,10 @@ void adc_lld_start(ADCDriver *adcp) { #if STM32_ADC_USE_ADC4 if (&ADCD4 == adcp) { + + osalDbgAssert(STM32_ADC345_CLOCK <= STM32_ADCCLK_MAX, + "invalid clock frequency"); + adcp->dmastp = dmaStreamAllocI(STM32_ADC_ADC4_DMA_STREAM, STM32_ADC_ADC4_DMA_IRQ_PRIORITY, (stm32_dmaisr_t)adc_lld_serve_dma_interrupt, diff --git a/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.h b/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.h index 94b6bc554..d0bcae881 100644 --- a/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.h +++ b/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.h @@ -731,14 +731,6 @@ #else #error "invalid clock mode selected for STM32_ADC_ADC34_CLOCK_MODE" #endif - -#if STM32_ADC12_CLOCK > STM32_ADCCLK_MAX -#error "STM32_ADC12_CLOCK exceeding maximum frequency (STM32_ADCCLK_MAX)" -#endif - -#if STM32_ADC34_CLOCK > STM32_ADCCLK_MAX -#error "STM32_ADC34_CLOCK exceeding maximum frequency (STM32_ADCCLK_MAX)" -#endif #endif /* defined(STM32F3XX) */ #if defined(STM32L4XX) || defined(STM32L4XXP) @@ -753,10 +745,6 @@ #else #error "invalid clock mode selected for STM32_ADC_ADC123_CLOCK_MODE" #endif - -#if STM32_ADC123_CLOCK > STM32_ADCCLK_MAX -#error "STM32_ADC123_CLOCK exceeding maximum frequency (STM32_ADCCLK_MAX)" -#endif #endif /* defined(STM32L4XX) || defined(STM32L4XXP) */ #if defined(STM32G4XX) @@ -783,14 +771,6 @@ #else #error "invalid clock mode selected for STM32_ADC_ADC345_CLOCK_MODE" #endif - -#if STM32_ADC12_CLOCK > STM32_ADCCLK_MAX -#error "STM32_ADC12_CLOCK exceeding maximum frequency (STM32_ADCCLK_MAX)" -#endif - -#if STM32_ADC345_CLOCK > STM32_ADCCLK_MAX -#error "STM32_ADC345_CLOCK exceeding maximum frequency (STM32_ADCCLK_MAX)" -#endif #endif /* defined(STM32G4XX) */ #if !defined(STM32_DMA_REQUIRED) diff --git a/os/hal/ports/STM32/STM32G4xx/hal_lld.h b/os/hal/ports/STM32/STM32G4xx/hal_lld.h index 574cdd5c2..e64fbdd94 100644 --- a/os/hal/ports/STM32/STM32G4xx/hal_lld.h +++ b/os/hal/ports/STM32/STM32G4xx/hal_lld.h @@ -1428,7 +1428,7 @@ #endif /** - * @brief ADC clock frequency. + * @brief ADC12 clock frequency. */ #if (STM32_ADC12SEL == STM32_ADC12SEL_NOCLK) || defined(__DOXYGEN__) #define STM32_ADC12CLK 0 @@ -1444,7 +1444,7 @@ #endif /** - * @brief ADC clock frequency. + * @brief ADC345 clock frequency. */ #if (STM32_ADC345SEL == STM32_ADC345SEL_NOCLK) || defined(__DOXYGEN__) #define STM32_ADC345CLK 0 diff --git a/readme.txt b/readme.txt index 583c8cbdd..618d73508 100644 --- a/readme.txt +++ b/readme.txt @@ -74,7 +74,7 @@ ***************************************************************************** *** Next *** -- NEW: STM32 USARTv2, USARTv3 updated for dynamic clocking. +- NEW: STM32 USARTv2, USARTv3, USBv1 updated for dynamic clocking. - NEW: Dynamic support implemented for STM32G4xx. - NEW: Dynamic clocks support in HAL. - NEW: Reload feature added to RT virtual timers.