Strange behavior of ADC values


I'm testing the ADCs on the SK-S7G2 board because we have unstable ADC readings on our custum board.

I put a stable voltage on pin P00 (battery voltage).
I noticed that if that ADC reads more channels (in this case 3) the reading error is about 8 channels instead of 3 if I read only one channel.
And the error is only in the first readings then the value seems to stabilize around 1 channel..

I don't understand if I'm doing something wrong or if there is a bug in the function.

I attach my example project.



Parents Reply
  • Paolo,

    Please add the following code to increase the number of sampling states for CH0.

    The default is 11, try increasing the number to see if the readings get more stable.

    ssp_err_t status;
    adc_sample_state_t p_sample;

    status = g_adc0.p_api->open(g_adc0.p_ctrl, g_adc0.p_cfg);
    status = g_adc0.p_api->scanCfg(g_adc0.p_ctrl, g_adc0.p_channel_cfg);

    p_sample.reg_id = ADC_SAMPLE_STATE_CHANNEL_0;
    p_sample.num_states = 15;
    status = g_adc0.p_api->sampleStateCountSet(g_adc0.p_ctrl, p_sample);