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.

ADS1147

Other Parts Discussed in Thread: ADS1147

Hello,

I've been working to interface one of your ADS1147 devices with an Arduino in order to read a 2-wire Pt1000 RTD to 0.1C accuracy over a range of 0-40C.

Having read a few of your datasheets and application notes, I've set my circuit up as shown below:

3835.ADS1147 Schematic.pdf

I initially perform an opcode-based reset, and then wait 2msec before loading my registers.

My registers are set as follows, with a 0.1% 20K5 resistor as Rbias so I can use a low Idac current to minimise self-heating.

writeRegister(REG_MUX0, B00000001); //Burnout source off, AIN0 +ve input, AIN1 -ve input
writeRegister(REG_VBIAS, B00000000); //Disable VBIAS
writeRegister(REG_MUX1, B00100000); //Internal Oscillator, Internal Reference Always On, REF0 Pair Selected, MUXCAL Measure Vref
writeRegister(REG_SYS0, B01000001); //PGA Gain 16, 10SPS
writeRegister(REG_IDAC0, B00000010); //DOUT/!DRDY only DOUT, 100uA Excitation DAC
writeRegister(REG_IDAC1, B00011100); //IDAC1 on AIN1, IDAC2 off

Following these writes, I perform a SELFOCAL and wait the appropriate time before using an interrupt-based data collection routine watching for DRDY.

I then collect the 16 bits into a signed int, ready for processing.

So...this is a question which I think comes up a lot so please forgive me if you're already bored of answering it - why are the values I'm getting out negative?

Vbias = Idac * Rbias = 0.0001*20500 = 2.05V

My differential is set up such that the Idac output pin (AIN0) is subtracting AIN1, which is in turn connected to REFP0.

Surely RTD values should be positive? They also seem to become more negative when I touch the sensor (i.e. starting at -28260 decimal and moving down to -29100 or so).

Please reassure me that this is appropriate behaviour and that my current setup is as it should be according to your app notes? If so, I have two smaller follow-on questions which I hope would also be of use to other forum users looking at your ADS114X and ADS124X series.

Many thanks!

-Rob Learney

  • Hi Rob,

    The measurement is a differential measurement where AINP is relative to AINN.  In your case, you have assigned AINN to AIN1 and AINP to AIN0.  Your current flow has AIN1 at a higher voltage relative to AIN0 with respect to the voltage drop across the RTD.  If you switch the assignment so that AIN1 is assigned to AINP and AIN0 is assigned to AINN you should get the proper result.

    Best regards,

    Bob B

  • Thanks very much Bob. I've seen many of your replies in response to questions about the ADS114X and ADS124X series.

    So is my overall circuit correct? I know that most of the questions you've dealt with in the past have been with regards to 3-wire RTD systems with offset resistors - I'm guessing this is why it's acceptable to have negative values with these setups?

    Could I possibly ask you to take a brief look at the derivation of the RTD resistance from the ADC Value (attached below), just to make sure I'm on the right track to getting an accurate temperature from my sensor?

    8715.RTD Calculation.pdf

    Thanks again!

    -Rob.

  • Hi Rob,

    Your calculation is correct.  As you have shown, the RTD resistance is measured ratiometrically.  Keep in mind that the result is directly proportional to the stability of the Rbias resistor.  This resistor should be a precision resistor with a low temperature coefficient. 

    Best regards,

    Bob B

  • Thanks again Bob.

    Hopefully I can get some sensible results now.

    Best,

    -Rob.