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.

ADS7142: ADS7142

Part Number: ADS7142

Hi Sir,

We try to read conversion data by referring ADS7142 page no.33(please refer the register address and data as below) but the data was incorrected, would you please help us to check which step was wrong? Thanks

 

           WriteI2Ccmd(0x24, 0x01);

           WriteI2Ccmd (0x1c, 0x04);

           WriteI2Ccmd (0x20, 0x01);

           WriteI2Ccmd (0x1e, 0x01);

           WriteI2Ccmd (0x30, 0x0f);

           ReadI2Ccmd (0x08, &val_lsb);

           ReadI2Ccmd (0x09, &val_msb);

           total_val = val_msb << 8 | val_lsb ;

Thanks, Ian.

  • Hello,

    I suspect this is not working because you are enabling  the accumulator after starting the sequence. I would suggest enabling this, and then starting the sequence.

    Before doing this, there are a couple of debug steps you can do to find out what is going on.

    Check the status of BUSY. if accumulator is enable, the busy pin should remain high for 16x longer than one cycle. 

    you can also check the accumulator status register, to see the number of accumulations done. if this is zero, or does not increment, then this shows that accumulator was not really enabled. 

    You could also try reading the data in manual mode to see if the conversion data is available there. Refer figure 56 in datasheet for this.

    For debugging, i also suggest using a known DC input to confirm the output data

    Regards

    Cynthia 

  • Hi Cynthia,

    Thank you for your assistance.

    we already set 0x1E : 0x01 to brings the BUSY/RDY pin to High and double check the accumulator status register value is 0x20 but the conversion data is unavailable. Would you please help to check the command process as below is correct or not? Thanks

     

               WriteI2Ccmd(0x24, 0x01);

               WriteI2Ccmd (0x1c, 0x04);

               WriteI2Ccmd (0x20, 0x01);

               WriteI2Ccmd (0x1e, 0x01);

               WriteI2Ccmd (0x30, 0x0f);

               ReadI2Ccmd (0x08, &val_lsb);

               ReadI2Ccmd (0x09, &val_msb);

               total_val = val_msb << 8 | val_lsb ;

    Thanks, Ian.

  • Hi Guys,

    Do you have comments for above question?

    Thanks, Ian.

  • Ian, 

    I suspect this is not working because you are enabling  the accumulator after starting the sequence. I would suggest enabling this, and then starting the sequence. try this and see if it works

    Regards

    Cynthia