diff --git a/radio/src/targets/common/arm/stm32/adc_driver.cpp b/radio/src/targets/common/arm/stm32/adc_driver.cpp index 9b1e3270d..43144df17 100644 --- a/radio/src/targets/common/arm/stm32/adc_driver.cpp +++ b/radio/src/targets/common/arm/stm32/adc_driver.cpp @@ -131,7 +131,7 @@ void adcInit() ADC_MAIN->SMPR1 = (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24); ADC_MAIN->SMPR2 = (ADC_SAMPTIME << 0) + (ADC_SAMPTIME << 3) + (ADC_SAMPTIME << 6) + (ADC_SAMPTIME << 9) + (ADC_SAMPTIME << 12) + (ADC_SAMPTIME << 15) + (ADC_SAMPTIME << 18) + (ADC_SAMPTIME << 21) + (ADC_SAMPTIME << 24) + (ADC_SAMPTIME << 27); - ADC->CCR = ADC_CCR_VBATE | ADC_CCR_TSVREFE; // Enable temperature + vbat sensor + ADC->CCR = ADC_CCR_VBATE; // Enable vbat sensor ADC_DMA_Stream->CR = DMA_SxCR_PL | ADC_DMA_SxCR_CHSEL | DMA_SxCR_MSIZE_0 | DMA_SxCR_PSIZE_0 | DMA_SxCR_MINC; ADC_DMA_Stream->PAR = CONVERT_PTR_UINT(&ADC_MAIN->DR); @@ -248,7 +248,7 @@ void adcRead() #if defined(PCBX10) uint16_t getRTCBatteryVoltage() { - return rtcBatteryVoltage * ADC_VREF_PREC2 / 2048; + return (rtcBatteryVoltage * ADC_VREF_PREC2) / 2048; } #else uint16_t getRTCBatteryVoltage() diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index 86e19b6db..bb56e857f 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -604,7 +604,6 @@ #define ADC_SET_DMA_FLAGS() ADC_DMA->HIFCR = (DMA_HIFCR_CTCIF4 | DMA_HIFCR_CHTIF4 | DMA_HIFCR_CTEIF4 | DMA_HIFCR_CDMEIF4 | DMA_HIFCR_CFEIF4) #define ADC_TRANSFER_COMPLETE() (ADC_DMA->HISR & DMA_HISR_TCIF4) #define ADC_SAMPTIME 2 // sample time = 28 cycles -#define ADC_VREF_PREC2 330 #if defined(PCBX9E) #define HARDWARE_POT1 #define HARDWARE_POT2 @@ -649,6 +648,7 @@ #define ADC_EXT_SET_DMA_FLAGS() ADC_DMA->LIFCR = (DMA_LIFCR_CTCIF0 | DMA_LIFCR_CHTIF0 | DMA_LIFCR_CTEIF0 | DMA_LIFCR_CDMEIF0 | DMA_LIFCR_CFEIF0) #define ADC_EXT_TRANSFER_COMPLETE() (ADC_DMA->LISR & DMA_LISR_TCIF0) #define ADC_EXT_SAMPTIME 3 // sample time = 56 cycles + #define ADC_VREF_PREC2 330 #elif defined(PCBX9DP) #define HARDWARE_POT1 #define HARDWARE_POT2 @@ -679,6 +679,7 @@ #define ADC_CHANNEL_SLIDER1 ADC_Channel_14 #define ADC_CHANNEL_SLIDER2 ADC_Channel_15 #define ADC_CHANNEL_BATT ADC_Channel_10 + #define ADC_VREF_PREC2 330 #elif defined(PCBXLITE) #define HARDWARE_POT1 #define HARDWARE_POT2 @@ -707,6 +708,7 @@ #define ADC_CHANNEL_POT1 ADC_Channel_11 // ADC1_IN11 #define ADC_CHANNEL_POT2 ADC_Channel_12 // ADC1_IN12 #define ADC_CHANNEL_BATT ADC_Channel_10 // ADC1_IN10 + #define ADC_VREF_PREC2 330 #elif defined(PCBX7) #define HARDWARE_POT1 #define HARDWARE_POT2 @@ -730,6 +732,7 @@ #define ADC_CHANNEL_POT1 ADC_Channel_8 #define ADC_CHANNEL_POT2 ADC_Channel_6 #define ADC_CHANNEL_BATT ADC_Channel_10 + #define ADC_VREF_PREC2 330 #elif defined(PCBX9LITE) #define HARDWARE_POT1 #define ADC_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_DMA2) @@ -749,6 +752,7 @@ #define ADC_GPIOC_PINS (GPIO_Pin_0 | GPIO_Pin_1) #define ADC_CHANNEL_POT1 ADC_Channel_11 // ADC1_IN11 #define ADC_CHANNEL_BATT ADC_Channel_10 // ADC1_IN10 + #define ADC_VREF_PREC2 330 #else #define HARDWARE_POT1 #define HARDWARE_POT2 @@ -777,6 +781,7 @@ #define ADC_CHANNEL_SLIDER1 ADC_Channel_14 #define ADC_CHANNEL_SLIDER2 ADC_Channel_15 #define ADC_CHANNEL_BATT ADC_Channel_10 + #define ADC_VREF_PREC2 330 #endif // PWR and LED driver