STM32 ADCv3 updated for dynamic clocking.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@14389 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
Giovanni Di Sirio 2021-05-17 13:22:11 +00:00
parent 80338e1749
commit c04365c691
4 changed files with 19 additions and 23 deletions

View File

@ -630,6 +630,10 @@ void adc_lld_start(ADCDriver *adcp) {
if (adcp->state == ADC_STOP) { if (adcp->state == ADC_STOP) {
#if STM32_ADC_USE_ADC1 #if STM32_ADC_USE_ADC1
if (&ADCD1 == adcp) { if (&ADCD1 == adcp) {
osalDbgAssert(STM32_ADC12_CLOCK <= STM32_ADCCLK_MAX,
"invalid clock frequency");
adcp->dmastp = dmaStreamAllocI(STM32_ADC_ADC1_DMA_STREAM, adcp->dmastp = dmaStreamAllocI(STM32_ADC_ADC1_DMA_STREAM,
STM32_ADC_ADC1_DMA_IRQ_PRIORITY, STM32_ADC_ADC1_DMA_IRQ_PRIORITY,
(stm32_dmaisr_t)adc_lld_serve_dma_interrupt, (stm32_dmaisr_t)adc_lld_serve_dma_interrupt,
@ -654,6 +658,10 @@ void adc_lld_start(ADCDriver *adcp) {
#if STM32_ADC_USE_ADC2 #if STM32_ADC_USE_ADC2
if (&ADCD2 == adcp) { if (&ADCD2 == adcp) {
osalDbgAssert(STM32_ADC12_CLOCK <= STM32_ADCCLK_MAX,
"invalid clock frequency");
adcp->dmastp = dmaStreamAllocI(STM32_ADC_ADC2_DMA_STREAM, adcp->dmastp = dmaStreamAllocI(STM32_ADC_ADC2_DMA_STREAM,
STM32_ADC_ADC2_DMA_IRQ_PRIORITY, STM32_ADC_ADC2_DMA_IRQ_PRIORITY,
(stm32_dmaisr_t)adc_lld_serve_dma_interrupt, (stm32_dmaisr_t)adc_lld_serve_dma_interrupt,
@ -678,6 +686,10 @@ void adc_lld_start(ADCDriver *adcp) {
#if STM32_ADC_USE_ADC3 #if STM32_ADC_USE_ADC3
if (&ADCD3 == adcp) { if (&ADCD3 == adcp) {
osalDbgAssert(STM32_ADC345_CLOCK <= STM32_ADCCLK_MAX,
"invalid clock frequency");
adcp->dmastp = dmaStreamAllocI(STM32_ADC_ADC3_DMA_STREAM, adcp->dmastp = dmaStreamAllocI(STM32_ADC_ADC3_DMA_STREAM,
STM32_ADC_ADC3_DMA_IRQ_PRIORITY, STM32_ADC_ADC3_DMA_IRQ_PRIORITY,
(stm32_dmaisr_t)adc_lld_serve_dma_interrupt, (stm32_dmaisr_t)adc_lld_serve_dma_interrupt,
@ -705,6 +717,10 @@ void adc_lld_start(ADCDriver *adcp) {
#if STM32_ADC_USE_ADC4 #if STM32_ADC_USE_ADC4
if (&ADCD4 == adcp) { if (&ADCD4 == adcp) {
osalDbgAssert(STM32_ADC345_CLOCK <= STM32_ADCCLK_MAX,
"invalid clock frequency");
adcp->dmastp = dmaStreamAllocI(STM32_ADC_ADC4_DMA_STREAM, adcp->dmastp = dmaStreamAllocI(STM32_ADC_ADC4_DMA_STREAM,
STM32_ADC_ADC4_DMA_IRQ_PRIORITY, STM32_ADC_ADC4_DMA_IRQ_PRIORITY,
(stm32_dmaisr_t)adc_lld_serve_dma_interrupt, (stm32_dmaisr_t)adc_lld_serve_dma_interrupt,

View File

@ -731,14 +731,6 @@
#else #else
#error "invalid clock mode selected for STM32_ADC_ADC34_CLOCK_MODE" #error "invalid clock mode selected for STM32_ADC_ADC34_CLOCK_MODE"
#endif #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) */ #endif /* defined(STM32F3XX) */
#if defined(STM32L4XX) || defined(STM32L4XXP) #if defined(STM32L4XX) || defined(STM32L4XXP)
@ -753,10 +745,6 @@
#else #else
#error "invalid clock mode selected for STM32_ADC_ADC123_CLOCK_MODE" #error "invalid clock mode selected for STM32_ADC_ADC123_CLOCK_MODE"
#endif #endif
#if STM32_ADC123_CLOCK > STM32_ADCCLK_MAX
#error "STM32_ADC123_CLOCK exceeding maximum frequency (STM32_ADCCLK_MAX)"
#endif
#endif /* defined(STM32L4XX) || defined(STM32L4XXP) */ #endif /* defined(STM32L4XX) || defined(STM32L4XXP) */
#if defined(STM32G4XX) #if defined(STM32G4XX)
@ -783,14 +771,6 @@
#else #else
#error "invalid clock mode selected for STM32_ADC_ADC345_CLOCK_MODE" #error "invalid clock mode selected for STM32_ADC_ADC345_CLOCK_MODE"
#endif #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) */ #endif /* defined(STM32G4XX) */
#if !defined(STM32_DMA_REQUIRED) #if !defined(STM32_DMA_REQUIRED)

View File

@ -1428,7 +1428,7 @@
#endif #endif
/** /**
* @brief ADC clock frequency. * @brief ADC12 clock frequency.
*/ */
#if (STM32_ADC12SEL == STM32_ADC12SEL_NOCLK) || defined(__DOXYGEN__) #if (STM32_ADC12SEL == STM32_ADC12SEL_NOCLK) || defined(__DOXYGEN__)
#define STM32_ADC12CLK 0 #define STM32_ADC12CLK 0
@ -1444,7 +1444,7 @@
#endif #endif
/** /**
* @brief ADC clock frequency. * @brief ADC345 clock frequency.
*/ */
#if (STM32_ADC345SEL == STM32_ADC345SEL_NOCLK) || defined(__DOXYGEN__) #if (STM32_ADC345SEL == STM32_ADC345SEL_NOCLK) || defined(__DOXYGEN__)
#define STM32_ADC345CLK 0 #define STM32_ADC345CLK 0

View File

@ -74,7 +74,7 @@
***************************************************************************** *****************************************************************************
*** Next *** *** 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 support implemented for STM32G4xx.
- NEW: Dynamic clocks support in HAL. - NEW: Dynamic clocks support in HAL.
- NEW: Reload feature added to RT virtual timers. - NEW: Reload feature added to RT virtual timers.