stm32f3: adc: support voltage regulator on/off
The "Intermediate" value isn't a value you can do anything with, you need to clear those bits when making changes.
This commit is contained in:
parent
6eb846d356
commit
7373d3ad58
@ -334,11 +334,10 @@
|
|||||||
/* ADCALDIF: Differential mode for calibration */
|
/* ADCALDIF: Differential mode for calibration */
|
||||||
#define ADC_CR_ADCALDIF (1 << 30)
|
#define ADC_CR_ADCALDIF (1 << 30)
|
||||||
|
|
||||||
/* ADVREGEN: ADC voltage regulador enable */
|
/** ADVREGEN: ADC voltage regulator enable */
|
||||||
#define ADC_CR_ADVREGEN_INTERMEDIATE (0x0 << 28)
|
|
||||||
#define ADC_CR_ADVREGEN_ENABLE (0x1 << 28)
|
#define ADC_CR_ADVREGEN_ENABLE (0x1 << 28)
|
||||||
#define ADC_CR_ADVREGEN_DISABLE (0x2 << 28)
|
#define ADC_CR_ADVREGEN_DISABLE (0x2 << 28)
|
||||||
/* --- Bit 0x3 reserved --- */
|
#define ADC_CR_ADVREGEN_MASK (0x3 << 28)
|
||||||
|
|
||||||
/* JADSTP: ADC stop of injected conversion command */
|
/* JADSTP: ADC stop of injected conversion command */
|
||||||
#define ADC_CR_JADSTP (1 << 5)
|
#define ADC_CR_JADSTP (1 << 5)
|
||||||
@ -920,6 +919,8 @@ bool adc_awd(uint32_t adc);
|
|||||||
/*void adc_set_dma_terminate(uint32_t adc);*/
|
/*void adc_set_dma_terminate(uint32_t adc);*/
|
||||||
void adc_enable_temperature_sensor(void);
|
void adc_enable_temperature_sensor(void);
|
||||||
void adc_disable_temperature_sensor(void);
|
void adc_disable_temperature_sensor(void);
|
||||||
|
void adc_enable_regulator(uint32_t adc);
|
||||||
|
void adc_disable_regulator(uint32_t adc);
|
||||||
|
|
||||||
END_DECLS
|
END_DECLS
|
||||||
|
|
||||||
|
@ -1197,5 +1197,30 @@ void adc_disable_temperature_sensor()
|
|||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable the ADC Voltage regulator
|
||||||
|
* Before any use of the ADC, the ADC Voltage regulator must be enabled.
|
||||||
|
* You must wait up to 10uSecs afterwards before trying anything else.
|
||||||
|
* @param[in] adc ADC block register address base
|
||||||
|
* @sa adc_disable_regulator
|
||||||
|
*/
|
||||||
|
void adc_enable_regulator(uint32_t adc)
|
||||||
|
{
|
||||||
|
ADC_CR(adc) &= ~ADC_CR_ADVREGEN_MASK;
|
||||||
|
ADC_CR(adc) |= ADC_CR_ADVREGEN_ENABLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable the ADC Voltage regulator
|
||||||
|
* You can disable the adc vreg when not in use to save power
|
||||||
|
* @param[in] adc ADC block register address base
|
||||||
|
* @sa adc_enable_regulator
|
||||||
|
*/
|
||||||
|
void adc_disable_regulator(uint32_t adc)
|
||||||
|
{
|
||||||
|
ADC_CR(adc) &= ~ADC_CR_ADVREGEN_MASK;
|
||||||
|
ADC_CR(adc) |= ADC_CR_ADVREGEN_DISABLE;
|
||||||
|
}
|
||||||
|
|
||||||
/**@}*/
|
/**@}*/
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user