From 21b23f1ff1e06ab1de83b9ecc71b94b41704d19e Mon Sep 17 00:00:00 2001 From: Jordi Pakey-Rodriguez Date: Sun, 9 Apr 2017 23:02:08 -0500 Subject: stm32f4: adc: Add VBat sensor enable/disable Original discussion at: https://github.com/libopencm3/libopencm3/pull/770 --- include/libopencm3/stm32/f4/adc.h | 3 ++- lib/stm32/f4/adc.c | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/include/libopencm3/stm32/f4/adc.h b/include/libopencm3/stm32/f4/adc.h index 7e5c1c8d..6907425d 100644 --- a/include/libopencm3/stm32/f4/adc.h +++ b/include/libopencm3/stm32/f4/adc.h @@ -579,9 +579,10 @@ void adc_eoc_after_each(uint32_t adc); void adc_eoc_after_group(uint32_t adc); void adc_set_dma_continue(uint32_t adc); void adc_set_dma_terminate(uint32_t adc); - void adc_enable_temperature_sensor(void); void adc_disable_temperature_sensor(void); +void adc_enable_vbat_sensor(void); +void adc_disable_vbat_sensor(void); END_DECLS diff --git a/lib/stm32/f4/adc.c b/lib/stm32/f4/adc.c index aaa0a5c7..020db884 100644 --- a/lib/stm32/f4/adc.c +++ b/lib/stm32/f4/adc.c @@ -426,6 +426,23 @@ void adc_disable_temperature_sensor(void) ADC_CCR &= ~ADC_CCR_TSVREFE; } -/*---------------------------------------------------------------------------*/ +/** Enable The VBat Sensor. + * This enables the battery voltage measurements on ADC1 channel 18. On + * STM32F42x and STM32F43x, this must be disabled when the temperature sensor + * is enabled. If both are enabled, only the VBat conversion is performed. + */ +void adc_enable_vbat_sensor(void) +{ + ADC_CCR |= ADC_CCR_VBATE; +} + +/** Disable The VBat Sensor. + * Disabling this will reduce power consumption from the battery voltage + * measurement. + */ +void adc_disable_vbat_sensor(void) +{ + ADC_CCR &= ~ADC_CCR_VBATE; +} /**@}*/ -- cgit v1.2.3