Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/thirdpin/libopencm3.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordi Pakey-Rodriguez <jordi.orlando@gmail.com>2017-04-10 07:02:08 +0300
committerKarl Palsson <karlp@tweak.net.au>2018-08-20 02:26:04 +0300
commit21b23f1ff1e06ab1de83b9ecc71b94b41704d19e (patch)
treeb7bda04872e406f221e18af35fd92d5959c904cd
parent078767533200681d5645b58d7fe0acb980d48e13 (diff)
stm32f4: adc: Add VBat sensor enable/disable
Original discussion at: https://github.com/libopencm3/libopencm3/pull/770
-rw-r--r--include/libopencm3/stm32/f4/adc.h3
-rw-r--r--lib/stm32/f4/adc.c19
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;
+}
/**@}*/