git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@13782 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
Giovanni Di Sirio 2020-07-24 08:51:55 +00:00
parent fcb6bb7085
commit 043250507f
2 changed files with 54 additions and 0 deletions

View File

@ -451,6 +451,22 @@ void adc_lld_start(ADCDriver *adcp) {
adc_lld_vreg_on(adcp);
adc_lld_calibrate(adcp);
/* Configure the ADC boost. */
#if STM32_ADC_USE_ADC12 == TRUE
if (&ADCD1 == adcp) {
adcp->adcm->CR |= STM32_ADC12_BOOST;
#if STM32_ADC_DUAL_MODE
adcp->adcs->CR |= STM32_ADC12_BOOST;
#endif
}
#endif
#if STM32_ADC_USE_ADC3 == TRUE
if (&ADCD3 == adcp) {
adcp->adcm->CR |= STM32_ADC3_BOOST;
}
#endif
/* Master ADC enabled here in order to reduce conversions latencies.*/
adc_lld_analog_on(adcp);
}

View File

@ -420,6 +420,44 @@
#error "STM32_ADC3_CLOCK exceeding maximum frequency (STM32_ADCCLK_MAX)"
#endif
#if !defined(STM32_ENFORCE_H7_REV_XY)
/* ADC boost checks.*/
#if STM32_ADC12_CLOCK > 6250000
#define STM32_ADC12_BOOST (1U << 8U)
#elif STM32_ADC12_CLOCK > 12500000
#define STM32_ADC12_BOOST (2U << 8U)
#elif STM32_ADC12_CLOCK > 25000000
#define STM32_ADC12_BOOST (3U << 8U)
#else
#define STM32_ADC12_BOOST (0U << 8U)
#endif
#if STM32_ADC3_CLOCK > 6250000
#define STM32_ADC3_BOOST (1U << 8U)
#elif STM32_ADC3_CLOCK > 12500000
#define STM32_ADC3_BOOST (2U << 8U)
#elif STM32_ADC3_CLOCK > 25000000
#define STM32_ADC3_BOOST (3U << 8U)
#else
#define STM32_ADC3_BOOST (0U << 8U)
#endif
#else /* defined(STM32_ENFORCE_H7_REV_XY) */
#if STM32_ADC12_CLOCK > 20000000
#define STM32_ADC12_BOOST (1U << 8U)
#else
#define STM32_ADC12_BOOST (0U << 8U)
#endif
#if STM32_ADC3_CLOCK > 20000000
#define STM32_ADC3_BOOST (1U << 8U)
#else
#define STM32_ADC3_BOOST (0U << 8U)
#endif
#endif /* defined(STM32_ENFORCE_H7_REV_XY) */
#if !defined(STM32_DMA_REQUIRED)
#define STM32_DMA_REQUIRED
#endif