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.

ADS8328 DATA READING PROBLEM

Other Parts Discussed in Thread: ADS8328

i have modified my  GET_ADC_DATA function now iam getting value  for single channel , channel zero ,how to read adc value for second channel, Please help here is my code

1)I have enabled TAG bit ,i never get TAG BIT=1 , I always get TAGBIT=0;

2)I configure cfr with bit pattern but when i read  CFR register it not gives same pattern as write. ,I always get D0=0  system reset .

3)my adc data for CH0 is not proportional to the input applied .

I AM ATTACHING SCOPE SCREENS IN DIFFERENT POST BECAUSE IAM ANBLE TO ATTACH IN SAME POST. 

 CFR DATA WRITE AND READ 

  WRITE CFR   BITS AFTER   
  BITS READ CFR  
D15 COMMAND3   1 0  
D14 COMMAND2   1 0  
D13 COMMAND1   1 0  
D12 COMMAND0   0 1  
D11 Channel mode AUTO         1 0 MANNUAL
D10 CONVERSION CLK SCLK      INTERNAL 0 0 INTERNAL
D9 TRIGGER SELECT AUTO 0 0 AUTO
D8 DON’T CARE 0 0 1 1
D7 EOC/INT POLARITY ACTIVE LOW   1 1 ACTIVE  LOW
D6 EOC/IN SELECT EOC                  1 1 EOC
D5 CHAIN MODE DISABLE 1 1 DISABLE
D4 AUTO NAP DISABLE 1 1 DISABLE
D3 NAP PWR DOWN DISABLE  1 1 DISABLE
D2 DEEP PWR DOWN DISABLE 1 1 ENABLE
D1 TAG BIT ENABLE 1 1 ENABLE
D0 RESET NORMAL 1 0 SYSTEM RESET
0XE8FF 0X11FE

my code

void ads8328_ini(void) //CONFIGURE  CFR
{
seventeenth_clk=0 ;
GPIO_WriteBit(SPI_CLK_PORT, SPI_CLK_PIN,(BitAction)0);
GPIO_WriteBit(ADC_STRT_PORT,ADC_STRT_PIN,(BitAction) 0);

GPIO_WriteBit(SPI_NSS_PORT,SPI_NSS_PIN,(BitAction) 0);
ADC_CONFIG =0xE8FF ;

WRITE_ADC8328(ADC_CONFIG) ; //WRITE CFR
SPI1_Buffer_Rx[4]=GET_DATA_INT ;
GPIO_WriteBit(SPI_NSS_PORT,SPI_NSS_PIN,(BitAction) 1) ;
/////////////////////////////////////////////////////////////////////////////////////
delay_us(10);
GPIO_WriteBit(SPI_NSS_PORT,SPI_NSS_PIN,(BitAction) 0) ;
WRITE_ADC8328(READ_CFR) ; //READ CFR
SPI1_Buffer_Rx[5]=GET_DATA_INT ;

GPIO_WriteBit(SPI_NSS_PORT,SPI_NSS_PIN,(BitAction) 1) ;
delay_us(10);
// select_ch0();

}

//////////////////////////////////////////////////////////////////////////////
void adc_read_ch_auto(void)
{
seventeenth_clk=1 ;
GPIO_WriteBit(ADC_STRT_PORT,ADC_STRT_PIN,(BitAction) 1) ; //start 1

GPIO_WriteBit(SPI_NSS_PORT,SPI_NSS_PIN,(BitAction) 1) ; //nss1

temp_bit=1 ;
//while(temp_bit==1) //check EOC pin status
temp_bit = GPIO_ReadInputDataBit(ADC_EOC_PORT, ADC_EOC_PIN) ;

delay_us(1);//20ns

GPIO_WriteBit(SPI_NSS_PORT,SPI_NSS_PIN,(BitAction) 0) ; //nss0


WRITE_ADC8328(READ_DATA) ; //READ CH0 DATA
if(TAG_BIT == 0) //TAG BIT=0 ;
{
SPI1_Buffer_Rx[0] = GET_DATA_INT ;
}

else if(TAG_BIT == 1) //TAG BIT=1 ; //READ CH1 DATA
{
SPI1_Buffer_Rx[1] = GET_DATA_INT ;
}