Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

ADS124S08: Reading Thermocouples

Part Number: ADS124S08

Hi,

I'm having trouble reading a K-type Thermocouple. I have implemented a circuit according to the Thermocouple example 10.2.2 in the datasheet for the ADS1248 www.ti.com/.../ads1248.pdf (without Cold Junction comp). My schematic is attached below. I'm using power from my microcontroller as the 3V3 bias source.

When I measure the Thermocouple in (warm) ambient air, I get 4.6 Ohm. If I blast it with 200C (392F) air from my reflow station, I measure 36.3 Ohm. If I measure across TestPoint 1 & 2, I get an output of 2.1mV in ambient air, and 7.6mV with the reflow pointed at it. Electrically, this seems sound.

In terms of code, I'm testing this on a Particle Photon (STM32F205 based) microcontroller using a library that I have used with this ADC before. This is what I'm setting up:

// AIN1 as positive, AIN0 as negative
adc.regWrite( INPMUX_ADDR_MASK, ADS_P_AIN1 + ADS_N_AIN0 );
// Gain to 32
adc.regWrite( PGA_ADDR_MASK, ADS_PGA_ENABLED + ADS_GAIN_32 );
// Datarate to 20
adc.regWrite( DATARATE_ADDR_MASK, ADS_DR_20 );
// Internal reference on and selected
adc.regWrite( REF_ADDR_MASK, ADS_REFINT_ON_ALWAYS + ADS_REFSEL_INT );

So I'm using the internal reference to measure AIN0 vs AIN1. I can see the registers being updated and set. When I output the raw data reading from the ADC, I get numbers in the range around "8405608" (+/-200) but they are not affected by applying heat to the Thermocouple.

I feel that I have missed something basic here and I cannot seem to see where my problem is?

Register dump:

Register 0x00 = 0x08 // ID
Register 0x01 = 0x00 // STATUS
Register 0x02 = 0x10 // INPMUX
Register 0x03 = 0x0d // PGA
Register 0x04 = 0x04 // DATARATE
Register 0x05 = 0x0a // REF
Register 0x06 = 0x00 // IDACMAG
Register 0x07 = 0xff  // IDACMUX
Register 0x08 = 0x00  // VBIAS
Register 0x09 = 0x01  // SYS
Register 0x0a = 0x00 
Register 0x0b = 0x00
Register 0x0c = 0x00
Register 0x0d = 0x00
Register 0x0e = 0x00
Register 0x0f = 0x40
Register 0x10 = 0x00
Register 0x11 = 0x00

 

  • Hi Jens,

    I would highly recommend taking a look at A Basic Guide to Thermocouple Measurements.  This guide is useful both in terms of making the TC measurement and various connection options as well as flow for operation.

    Something else you might find useful is the Temperature API for the ADS124S08. This code can be very useful to follow when making the TC measurements.

    In your schematic I see that you are not using the required minimum value of 330nF between AVDD and AVSS.  From your register settings I see that you have not disabled the reference buffers.  When using the internal reference, you should disable the reference buffers as the internal reference is already buffered.

    I do not see that you are making a cold-junction measurement.  You should be compensating for the cold-junction temperature.  This is explained in the Guide.

    For Register 9 you show 0x01 and the default is 0x10.  Perhaps this is a typo and you are using the default configuration.  However, if the status is enabled, are you making sure that the status as well as the complete conversion results are read from the ADS124S08?

    As to the value you are seeing, the number you gave as hex is 0x804268.  This is either a very negative input value or the first byte is the status byte.  If the status is enabled as was indicated in the register settings, then when reading the results the MSB is the status followed by 24 bits of conversion result.  So part of the issue appears to be not reading in all of the conversion result.

    Best regards,

    Bob B

  • Thank you so much for this advice Bob!

    I'll work through the list today. I have a problem with the Temperature API since the Windows download link is not working and the OSX app is too old to be used.

  • Hi Jens,

    I'm not sure what the issue was with the windows download version as it work ok for me.  We upgraded the certificate for the Mac version, so that should be installable now.

    Best regards,

    Bob B