This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS1148: Intermittent full scale reading error while reading from the channel

Part Number: ADS1148

Hello, 

I am using ADS1148 to read temperature and mV from two sensors attached to two different channels of this ADC. 

AIN0 and AIN1 for mV and AIN2 and AIN3 for reading temperature input. 

I am doing single conversion and then switching the channel to do single conversion again. However, i am getting intermittent full scale reading (2.048 V) on my mV input.

I am not sure what can be be the cause of that? Could you please let me know why is that happening? Am i not allowing internal reference to settle fully before conversion?

I have attached the code for channel switch and single conversion for ADC. Any help would be appreciated.  

//single conversion ADC
void ADC_measure_single_shot() { nrf_gpio_pin_set(POWER_PIN); //powering on LDO nrf_delay_ms(5); nrf_drv_timer_disable(&POWER_TIMER); DRDY_INTR_EN(); //DRDY INT enable nrf_gpio_pin_set(EXT_ADC_START); //start pin high nrf_delay_ms(2); nrf_gpio_pin_clear(EXT_ADC_START); //start pin low }

//channel switching
void change_mux_channel()
{
    nrf_gpio_pin_set(EXT_ADC_START);
    nrf_delay_ms(2); 
    if(gRunTimeDB.muxChange==0)
    {
      gRunTimeDB.muxChange++;
      gRunTimeDB.muxChangeCount++;
      //mux settings for Temperature channel
      APP_ERROR_CHECK(SPI_schedule_transaction(&temp_channel_config));      
    }
    else
    {
      gRunTimeDB.muxChange--;
      gRunTimeDB.muxChangeCount--; 
      //mux settings for pH channel
      APP_ERROR_CHECK(SPI_schedule_transaction(&ph_channel_config));    
    }
    nrf_gpio_pin_clear(EXT_ADC_START); 
}

Thank you!