|
|
|
@ -54,7 +54,7 @@
@@ -54,7 +54,7 @@
|
|
|
|
|
#define rPCSEL(base) REG((base), STM32_ADC_PCSEL_OFFSET) |
|
|
|
|
#define rCFG(base) REG((base), STM32_ADC_CFGR_OFFSET) |
|
|
|
|
#define rCFG2(base) REG((base), STM32_ADC_CFGR2_OFFSET) |
|
|
|
|
#define rCCR(base) REG((base), STM32_ADC_CCR_OFFSET) |
|
|
|
|
#define rCCR() REG((STM32_ADC1_BASE), (STM32_ADC_CCR_OFFSET)) |
|
|
|
|
#define rSQR1(base) REG((base), STM32_ADC_SQR1_OFFSET) |
|
|
|
|
#define rSQR2(base) REG((base), STM32_ADC_SQR2_OFFSET) |
|
|
|
|
#define rSQR3(base) REG((base), STM32_ADC_SQR3_OFFSET) |
|
|
|
@ -159,8 +159,8 @@ int px4_arch_adc_init(uint32_t base_address)
@@ -159,8 +159,8 @@ int px4_arch_adc_init(uint32_t base_address)
|
|
|
|
|
|
|
|
|
|
/* enable the temperature sensor, VREFINT channel and VBAT */ |
|
|
|
|
|
|
|
|
|
rCCR(base_address) = (ADC_CCR_VREFEN | ADC_CCR_VSENSEEN | ADC_CCR_VBATEN | |
|
|
|
|
ADC_CCR_CKMODE_ASYCH | ADC_CCR_PRESC_DIV); |
|
|
|
|
rCCR() = (ADC_CCR_VREFEN | ADC_CCR_VSENSEEN | ADC_CCR_VBATEN | |
|
|
|
|
ADC_CCR_CKMODE_ASYCH | ADC_CCR_PRESC_DIV); |
|
|
|
|
|
|
|
|
|
/* Enable ADC calibration. ADCALDIF == 0 so this is only for
|
|
|
|
|
* single-ended conversions, not for differential ones. |
|
|
|
@ -276,6 +276,12 @@ uint32_t px4_arch_adc_sample(uint32_t base_address, unsigned channel)
@@ -276,6 +276,12 @@ uint32_t px4_arch_adc_sample(uint32_t base_address, unsigned channel)
|
|
|
|
|
{ |
|
|
|
|
irqstate_t flags = px4_enter_critical_section(); |
|
|
|
|
|
|
|
|
|
if (channel > PX4_ADC_ADC3_CHANNEL_OFFSET) { |
|
|
|
|
channel = channel - PX4_ADC_ADC3_CHANNEL_OFFSET; |
|
|
|
|
base_address = STM32_ADC3_BASE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* clear any previous EOC */ |
|
|
|
|
|
|
|
|
|
if (rISR(base_address) & ADC_INT_EOC) { |
|
|
|
@ -315,7 +321,7 @@ float px4_arch_adc_reference_v()
@@ -315,7 +321,7 @@ float px4_arch_adc_reference_v()
|
|
|
|
|
|
|
|
|
|
uint32_t px4_arch_adc_temp_sensor_mask() |
|
|
|
|
{ |
|
|
|
|
return 1 << APX4_ADC_INTERNAL_TEMP_SENSOR_CHANNEL; |
|
|
|
|
return 1 << PX4_ADC_INTERNAL_TEMP_SENSOR_CHANNEL; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
uint32_t px4_arch_adc_dn_fullcount() |
|
|
|
|