diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2022-06-20 19:13:02 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-20 19:13:02 +0300 |
commit | 0256967defb760d2dc99c13728a0b969ae549f67 (patch) | |
tree | bc1e884f58106c0157d9f20d0d4b6dab8614b0c1 | |
parent | f2a5800cea0d87952af1a3e079eea9b3a7aaf43c (diff) |
stm32: support stm32f401 adc_temperature sensor (#5572)
> The temperature sensor is internally connected to the ADC_IN18
> The TSVREFE bit must be set to enable the conversion of both internal channels: the ADC1_IN16 or ADC1_IN18 (temperature sensor) and the ADC1_IN17 (VREFINT).
Ref.: https://www.st.com/resource/en/reference_manual/dm00096844-stm32f401xb-c-and-stm32f401xd-e-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf
Signed-off-by: Kamil Trzciński <ayufan@ayufan.eu>
-rw-r--r-- | src/stm32/adc.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/stm32/adc.c b/src/stm32/adc.c index 02e54fba9..39d4f6432 100644 --- a/src/stm32/adc.c +++ b/src/stm32/adc.c @@ -28,7 +28,7 @@ static const uint8_t adc_pins[] = { ADC_TEMPERATURE_PIN, #elif CONFIG_MACH_STM32F2 || CONFIG_MACH_STM32F4x5 ADC_TEMPERATURE_PIN, 0x00, 0x00, -#elif CONFIG_MACH_STM32F446 +#elif CONFIG_MACH_STM32F401 || CONFIG_MACH_STM32F446 0x00, 0x00, ADC_TEMPERATURE_PIN, #endif @@ -108,7 +108,9 @@ gpio_adc_setup(uint32_t pin) } if (pin == ADC_TEMPERATURE_PIN) { -#if !(CONFIG_MACH_STM32F1 || CONFIG_MACH_STM32F401) +#if CONFIG_MACH_STM32F401 + ADC1_COMMON->CCR = ADC_CCR_TSVREFE; +#elif !CONFIG_MACH_STM32F1 ADC123_COMMON->CCR = ADC_CCR_TSVREFE; #endif } else { |