Browse Source

[SAMD51] Activate ADCs oversampled 12bits (#15874)

Giuliano Zaro 5 years ago
parent
commit
bb93ea1be4
2 changed files with 5 additions and 2 deletions
  1. 3
    1
      Marlin/src/HAL/HAL_SAMD51/HAL.cpp
  2. 2
    1
      Marlin/src/HAL/HAL_SAMD51/HAL.h

+ 3
- 1
Marlin/src/HAL/HAL_SAMD51/HAL.cpp View File

442
       // Preloaded data (fixed for all ADC instances hence not loaded by DMA)
442
       // Preloaded data (fixed for all ADC instances hence not loaded by DMA)
443
       adc->REFCTRL.bit.REFSEL = ADC_REFCTRL_REFSEL_AREFA_Val;               // VRefA pin
443
       adc->REFCTRL.bit.REFSEL = ADC_REFCTRL_REFSEL_AREFA_Val;               // VRefA pin
444
       SYNC(adc->SYNCBUSY.bit.REFCTRL);
444
       SYNC(adc->SYNCBUSY.bit.REFCTRL);
445
-      adc->CTRLB.bit.RESSEL = ADC_CTRLB_RESSEL_10BIT_Val;
445
+      adc->CTRLB.bit.RESSEL = ADC_CTRLB_RESSEL_12BIT_Val;
446
       SYNC(adc->SYNCBUSY.bit.CTRLB);
446
       SYNC(adc->SYNCBUSY.bit.CTRLB);
447
       adc->SAMPCTRL.bit.SAMPLEN = (6 - 1);                                  // Sampling clocks
447
       adc->SAMPCTRL.bit.SAMPLEN = (6 - 1);                                  // Sampling clocks
448
+      adc->AVGCTRL.reg = ADC_AVGCTRL_SAMPLENUM_16 | ADC_AVGCTRL_ADJRES(4);  // 16 Accumulated conversions and shift 4 to get oversampled 12 bits result
449
+      SYNC(adc->SYNCBUSY.bit.AVGCTRL);
448
       // Registers loaded by DMA
450
       // Registers loaded by DMA
449
       adc->DSEQCTRL.bit.INPUTCTRL = true;
451
       adc->DSEQCTRL.bit.INPUTCTRL = true;
450
 
452
 

+ 2
- 1
Marlin/src/HAL/HAL_SAMD51/HAL.h View File

109
 
109
 
110
 void HAL_adc_init();
110
 void HAL_adc_init();
111
 
111
 
112
+#define HAL_ADC_FILTERED            // Disable oversampling done in Marlin as ADC values already filtered in HAL
113
+#define HAL_ADC_RESOLUTION  12
112
 #define HAL_START_ADC(pin)  HAL_adc_start_conversion(pin)
114
 #define HAL_START_ADC(pin)  HAL_adc_start_conversion(pin)
113
-#define HAL_ADC_RESOLUTION  10
114
 #define HAL_READ_ADC()      HAL_adc_result
115
 #define HAL_READ_ADC()      HAL_adc_result
115
 #define HAL_ADC_READY()     true
116
 #define HAL_ADC_READY()     true
116
 
117
 

Loading…
Cancel
Save