cancel
Showing results for 
Search instead for 
Did you mean: 

STEVAL-IDB008V1M ADC Input 1 & 2 connections

BWill.4
Associate

Hello, I've been using the STEVAL-IDB008V1M to help develop an BLUENRG-M2 product for an company. I've noticed in the schematic there are 3pF capacitors connected to the ADC Input 1 and Input 2

0693W00000BcjVdQAJ.pngDoes anyone know why this is done?

For the time being I have linked across this. I'm using the ADC polling example code and for some reason I always read 1239mV even with no power source connected.

My ADC Configuration is as follows:

void ADC_Configuration(void)
{ 
  SysCtrl_PeripheralClockCmd(CLOCK_PERIPH_ADC, ENABLE);
  
  /* Configure ADC */
  /* Configure TEMPERATURE ADC */
  xADC_InitType.ADC_OSR = ADC_OSR_200;
  //ADC_Input_BattSensor; //ADC_Input_TempSensor;// ADC_Input_AdcPin1 // ADC_Input_AdcPin12 // ADC_Input_AdcPin2
  xADC_InitType.ADC_Input = ADC_Input_AdcPin1;
  xADC_InitType.ADC_ConversionMode = ADC_CONVERSION;
  xADC_InitType.ADC_ReferenceVoltage = ADC_ReferenceVoltage_0V6;
  xADC_InitType.ADC_Attenuation = ADC_Attenuation_9dB54;;
  
  ADC_Init(&xADC_InitType);
   /* Enable auto offset correction */
  ADC_AutoOffsetUpdate(ENABLE);
  ADC_Calibration(ENABLE);
}

My read Function is as follows:

if(ADC_CHECK_FLAG) {
      
      /* Read Temperature converted data */
      Temp_raw_value = ADC_GetConvertedData(xADC_InitType.ADC_Input, xADC_InitType.ADC_ReferenceVoltage);
      
      /* Print the ADC value converted */
      if(xADC_InitType.ADC_Input == ADC_Input_TempSensor) {
PRINT_INT(Temp_raw_value),PRINT_FLOAT(Temp_raw_value), 248);
      }
      else {
PRINT_INT(ADC_CompensateOutputValue(Temp_raw_value)*1000.0));
        printf("ADC Raw: %d.%02d C\r\n", PRINT_FLOAT(Temp_raw_value));
       }
 
      SdkEvalLedToggle(LED1);
      
      /* Application delay before next one shot measurement */
      SdkDelayMs(100);
      
      /* Start new conversion */
      ADC_ENABLE();
    }

Its odd because using "ADC_Input_BattSensor" instead of "ADC_Input_AdcPin1" in the ADC_Configuration function results in a accurate measurement.

I hope someone can help.

1 REPLY 1
JoBu
Associate

Old topic, but I've got the same issue. I was wondering why DC measurements don't work. Finally I found C46 and C47, bridged them and since then it's working fine. I'm really wondering what their purpose is. I find it really counterintuitive not to be able to measure DC.