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.

ADS1248: ADC conversion result calculation

Part Number: ADS1248

Hi team,

I am using ADS1248 for temperature sensing application using PT100 for measuring temperature. The following are the steps that i followed to calculate the output code corresponding to my temperature input. For debugging process i connected a 100 ohm resistor as an input.

My parameter settings are

PGA Gain = 16

Vref = 1.62V

IDAC1 = IDAC2 = 750 uA 

My calculations is as follows 

Full scale reading (FS) = Vref/Gain = 0.10125V

1LSB = 0.10125 / 2^23 = 1.206994056 * 10^-8 V

For three wire RTD measurement according to the application note

Code : Rrtd / (2* Rref)

for 750uA 

Vrtd = IDAC1 * Rrtd = 750mV

hence 

Code : Vrtd / (2*Vref) = 0.023148

0.023148 / 1LSB = 191782.2034 decimal

excluding fractional part

(1917822) dedcimal = (1D437E) Hexadecimal

According to PT100 datasheet 100ohm is equivalent to 0 degree celcius

So, my question is whether 1D437E is the correct value for 0 degree or not ? if am wrong can you please point out where I did wrong.

Regards,

Vineeth

  • Hi Vineeth,

    Sorry for the delay in response. 

    Which 3-wire measurement are you using? High or low side reference? 

  • Hi Alexander,

    I didn`t get you what you meant by high side or  low side reference. I am a beginner here. I am trying to do a 3 wire RTD measurement using ADS1248 to 280049, if that is what are asking.

    Regards,

    Vineeth

  • Hi Vineeth,

    I apologize for the confusion, within "A Basic Guide to RTD Measurements" there are 3 circuits using a 3 wire RTD: https://www.ti.com/lit/an/sbaa275/sbaa275.pdf?ts=1591640492912&ref_url=https://www.google.com/

    Three-Wire RTD, Low-Side Reference Measurement Circuit

    Three-Wire RTD, Low-Side Reference Measurement Circuit With One IDAC Current Source

    Three-Wire RTD, High-Side Reference Measurement Circuit

    Which one of these circuit implementations have you chosen? Can you provide a schematic? 

  • Hi Alex,

    Thank you for your response in time.

    I think my circuit belongs to Three-Wire RTD, Low-Side Reference Measurement Circuit. Any how I am attaching the diagram for your reference.

    Best Regards,

    Vineeth

  • Hi Vineeth, 

    If you reference 2.3.4 in the document, equation (32) the equation to related output code and R_RTD is:

    RRTD = RREF • Output code / (2^22 • Gain)

    For a fixed resistance of 100ohm, and a reference resistance of 1080, I would expect 6,213,783 in decimal for the output code. Keep in mind that what is received from the ADC is in binary 2's complement format. The MSB of the data received must be tested as a 1 or 0 to determine the polarity, then the binary number can be converted to hex and then decimal. 

    This if for a different 24bit device, but the example may help you through the calculation: https://e2e.ti.com/support/data-converters/f/73/p/772488/2856893#2856893

    Please let me know if this information helps. 

  • Hi Alexander,

    Thank you for your kind suggestion.

    My aim to measure to measure and limit temperature within 2 to 8 degree celsius. For the temperature measurement I am using the ADS1248.

    As per your suggestion I have done my calculations. it is as follows,

    PT100 is the RTD used and for 0 degree celsius the RTD resistance will be 100 ohm. To simulate this I connected 100 ohm fixed resistor to channel 1.

    so for a fixed 100 Ohm resistor,

    Output code = 5EEC17 = 6220823 decimal

    Converting to Resistance will give back my RTD value as

    Rrtd = 1080 * 6220823 / (2^22 * 16) = 100.1132 ohm

    converting this to temperature value using equation

    Rrtd = Ro ( 1+ alpha * t)

    Ro = resistance of RTD at 0 degree celsius

    alpha = temperature coefficient of resistance at 0 degree celsius ( per degree celsius)

             = 0.000385 for PT100

    then 

    temperature t = ((Rrtd / Ro) - 1 ) / alpha

        = ( ( 100.1132 / 100) - 1) / 0.00385

        = 0.294 degree celsius ( instead of 0 degree ) 

     please look into it if it is correct please let me know. 

    Also I have a question even if I connected a fixed resistor 100 ohm the output code keeps on changing every time I run the code. Why this happens ? 

    I need to detect 0.2 degree celsius change in the temperature minimum , how should I check this accurately ?

    Thank You 

    Vineeth

  • Hi Vineeth,

    I think you may have added an extra decimal place to alpha, as I get 2.94 degrees Celsius. However, I think this is just a typo and you did you calculation correctly, 0.294 degrees. 

    Since your resistor is slightly larger than 100ohms, it is not surprising that the returned temperature is returned slightly higher than 0C. 

    There is noise in all circuits, that is caused by a current passing through a resistance. This is known as thermal noise. This noise is random, and will flip some of the least significant bits. The bits that are not affected by this noise, is known as your ENOB. 

    In order to increase your resolution, you may need to use higher precision resistors for your reference measurement, as any variation in this resistance results in a direct error. i.e. the reference resistor is 1079.5 vs 1080 ohms. 

    You can also try chopping the IDAC sources, as shown in section 2.3.6 of the guide. 

    We have a library of training videos, including several on noise if you are interested in learning more about these subjects: https://training.ti.com/ti-precision-labs-overview

  • Hi Alexander,

    Thank you for sparing your time to check my calculations. Like you suggested, I will look into precision resistors for debugging. 

    I think now I have more clarity in measurement using ADC, thank you for your kind cooperation.

    Means a lot to us beginners.

    Best Regards,

    Vineeth

  • Hi Vineeth,

    My pleasure. Please let us know if you have additional questions and good luck!