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.

How to get accurate values with out noise help me urgent please

Other Parts Discussed in Thread: ADS1291

Hi every one,

In my project i am using ADS1291 24bit  to read data .I am getting the data as shown below with CH1 and other one is power down mode. I am not getting 0xC00000 000000 when 0 input voltage applied at INP1P and INP1N.

For 0 input voltage, with internal reference 4.033V

C00000 FFF37C       
C00000 FFF448       
C00000 FFF445       
C00000 FFF4E6       
C00000 FFF487       
C00000 FFF443       
C00000 FFF33E       
C00000 FFF41F       
C00000 FFF430       
C00000 FFF4A5       
C00000 FFF4FB       
C00000 FFF43E       
C00000 FFF46C       
C00000 FFF343       
C00000 FFF41F       
C00000 FFF466       
C00000 FFF563       
C00000 FFF45E       
C00000 FFF45F      
C00000 FFF381    
C00000 FFF391      
C00000 FFF41A       
C00000 FFF464       
C00000 FFF4F2      
C00000 FFF444       

so please suggest me what is the problem here???? Here i am reading with internal ref 4.033V, SPICLK 3.6 MHz, ADCCLK  2MHz , I am getting internal referrence 3.98V on VREFP Pin with respct to the AVss signal.

Power supplys using:

+/- 2.5V Analog and 3.3V DVdd and DGND. The schematic is shown below.

The other readings when input voltage is +1V ,

C00000 20 44 42
C00000 20 9C C4
C00000 20 68 DA
C00000 20 54 62
C00000 20 4C D0
C00000 20 4A 46
C00000 20 46 84
C00000 20 44 81
C00000 20 44 B0
C00000 20 47 BF
C00000 20 47 7D
C00000 20 46 41
C00000 20 45 18
C00000 20 45 55
C00000 20 46 6E
C00000 20 47 8D

When negative 1V appllied,

C00000 DF AB 67
C00000 DF AB 51
C00000 DF 55 30
C00000 DF 87 7B
C00000 DF 9D 3F
C00000 DF A6 1A
C00000 DF A9 8B
C00000 DF AA F4
C00000 DF AB A8
C00000 DF AB D7
C00000 DF AC 1B
C00000 DF AC 25

So i am requesting all please suggest me how to read the perfect values.

Thanks in advance

Regards

H NARASIMHA MURTHY,

Embedded Design Engineer.

Ep14-435A.pdf
  • Can you provide a screen capture of the SPI signals from oscilloscope?  Sometimes it is easier to identify problems by looking at the signals.

  • Regards

    H NARASIMHA MURTHY

  • Based on your measurements, it looks like the converter is converting correctly and perhaps there is some noise source/other error in your measurement.

    For input short case, you are getting ~1.4mV (from one point).  You should expect some offset to the converter that you will need to calibrate out of all measurements.

    For 1V, you are getting ~1.008V and -1V, you are getting ~1.010V.  All these readings are indicating the converter is working and you are reading the data correctly.  You may want to double check the value of the input signal.  Depending on your source, for example, you may use a signal generator and dial in 1V, but the output may differ slightly.  Also depending on your connection to the inputs and any mismatches in impedance due to traces/resistance.etc, the could account for slight variances.

  • Hi Greg,

                 Thank you for your quick reply.

                              And the other request is please tell me what formula you are used to calculate the voltage from 2's complement output and what steps needed to calculate voltage.

    Can you please tell me how to drive inputs to the ADS1291 and give me reference designs.In my design, IN1P and IN1N are directly connected. Is there any circuits to reduce noise at inputs??Is there any hardware solution possible???

                                         I am waiting for your replay.

    Regards

    H Narasimha Murthy

  • Check out the Data Format section of the datasheet (page 28) for information on the output data format and LSB size.

    For reference, you may want to look at the ADS1x9xECG-FE board at http://www.ti.com/tool/ads1292ecg-fe.  This may help you get an idea for your circuitry.

  • Hi,

    Let me jump in and say that as the output of the ADC is already in binary 2's complement format all you need to do is to sign extend the value to 32 bits.  This would look something like:

    // sign extend data if the MSB is high (24 to 32 bit sign extension)
        if (Data & 0x800000)
            Data |= 0xff000000;
    

    In the above case the Data variable is a signed 32-bt  value.  What this is doing is looking for the most significant bit of the 24-bit value to see if it is a negative value.  If it is, then append the MSB of the 32-bit value so that it extends the sign bit properly.  This is all the manipulation you need to do for the number.  If you clear the sign bit, the value will be incorrect.

    Best regards,

    Bob B

  • Thank You Bob

    Regards

    H Narasimha Murthy

  • Hi,

    I think you need to review integer types and declarations in 'C'.  0xFFFFFFFF is -1 as a signed value and 4294977295 as unsigned.  The ADC gives a 24-bit signed value.  All you need to do is extend the signed portion to 32-bit.  You can find further information on the internet using your favorite search engine.  You can also find this information in 'C' programming manuals and courses.  Until you have a better understanding of 'C' integer types, I don't think there is much more that we can do to help you.

    Best regards,

    Bob B

  • Hi Bob Band Greg Hupp,

    Now with both of your support i understood completely and i am reading the voltages correctly now.

    Now for positive and negative voltages i am getting 10mV of noise voltage. So let me know what are the main reasons for noise??? And how it can be reduced? Waiting for your reply.

    Thank You Bob and Thank You Greg Hupp.

    Regards

    H Narasimha Murthy