App note PIC16F73 code

on Page...

LTC2485 Complete Type K Thermocouple Measurement System (I2C) with Cold Junction Compensation Circuit Collection | Analo… 

There is mention of microcontroller code, Is this still available ? If yes, a valid link on that page would be great.

PIC16F73

Parents
  • 0
    •  Analog Employees 
    on Jun 4, 2018 8:07 PM

    Hi tonigau,

    That is a really old application circuit, from the initial release of the part. At the time, we used various microcontroller boards for developing application code, including the DC590 controller board. We've since migrated almost everything over to the Linduino platform, and updating this code has been on the back burner for some time now. Here is a link to the latest:

    https://github.com/mthoren-adi/Linduino/blob/master/LTSketchbook/Example%20Designs/LTC2492_Thermocouple_Meter/LTC2492_Thermocouple_Meter.ino 

    This is a fork of https://github.com/analogdevicesinc/Linduino , and it will be merged some time in the future. This code will work on a Linduino (Arduino Uno clone), other Unos or ATMega328-based Arduinos.

    Also note that it's based on the LTC2492, which is a multichannel SPI version of the LTC2485. It should be easy to port to the LTC2485, there is example code for this part in the Linduino repository.

    A couple of other points:

    1) The internal temperature sensor in the LTC2485 (and other single-channel members of this family) is not very accurate. The sensor was greatly improved on the multichannel parts, and this is reflected in the EC table specifications. (One reason that this design was moved to the LTC2492.)

    2) What you may be most interested in is the method of turning cold-junction temperature and hot-junction voltage into temperature. This is implemented properly in the code:

    * Read cold junction temperature

    * Convert cold junction temperature to equivalent thermocouple voltage

    * Add cold-junciton equivalent voltage to hot-junction voltage

    * Calculate hot-junction temperature.

    The formulas used in the code are were lower-order polynomials derived from the standard thermocouple polynomials, available lots of places as both coefficients and tabular form, https://www.omega.com/techref/pdf/z198-201.pdf for example. If you do any modifications, make sure that you handle extreme cases (the highest-order coefficient should be positive, so that you don't end up with a very high voltage appearing as a very cold temperature.)

    3) A final point - it is possible to make a thermocouple meter from an ADC and a few support parts (LTC2485 will require an external reference, and might require input buffers depending on your source impedance), but the LTC2983 family is specifically built for this application and can save a LOT of design time. The LTC2983 inputs are buffered and handle inputs slightly below ground, and there are several ways to handle cold-junction compensation. All polynomials are built-in, and there are features for fault detection.

    One approach is to start with the LTC2983 for an initial design, and then derive a cost-optimized solution later.

Reply
  • 0
    •  Analog Employees 
    on Jun 4, 2018 8:07 PM

    Hi tonigau,

    That is a really old application circuit, from the initial release of the part. At the time, we used various microcontroller boards for developing application code, including the DC590 controller board. We've since migrated almost everything over to the Linduino platform, and updating this code has been on the back burner for some time now. Here is a link to the latest:

    https://github.com/mthoren-adi/Linduino/blob/master/LTSketchbook/Example%20Designs/LTC2492_Thermocouple_Meter/LTC2492_Thermocouple_Meter.ino 

    This is a fork of https://github.com/analogdevicesinc/Linduino , and it will be merged some time in the future. This code will work on a Linduino (Arduino Uno clone), other Unos or ATMega328-based Arduinos.

    Also note that it's based on the LTC2492, which is a multichannel SPI version of the LTC2485. It should be easy to port to the LTC2485, there is example code for this part in the Linduino repository.

    A couple of other points:

    1) The internal temperature sensor in the LTC2485 (and other single-channel members of this family) is not very accurate. The sensor was greatly improved on the multichannel parts, and this is reflected in the EC table specifications. (One reason that this design was moved to the LTC2492.)

    2) What you may be most interested in is the method of turning cold-junction temperature and hot-junction voltage into temperature. This is implemented properly in the code:

    * Read cold junction temperature

    * Convert cold junction temperature to equivalent thermocouple voltage

    * Add cold-junciton equivalent voltage to hot-junction voltage

    * Calculate hot-junction temperature.

    The formulas used in the code are were lower-order polynomials derived from the standard thermocouple polynomials, available lots of places as both coefficients and tabular form, https://www.omega.com/techref/pdf/z198-201.pdf for example. If you do any modifications, make sure that you handle extreme cases (the highest-order coefficient should be positive, so that you don't end up with a very high voltage appearing as a very cold temperature.)

    3) A final point - it is possible to make a thermocouple meter from an ADC and a few support parts (LTC2485 will require an external reference, and might require input buffers depending on your source impedance), but the LTC2983 family is specifically built for this application and can save a LOT of design time. The LTC2983 inputs are buffered and handle inputs slightly below ground, and there are several ways to handle cold-junction compensation. All polynomials are built-in, and there are features for fault detection.

    One approach is to start with the LTC2983 for an initial design, and then derive a cost-optimized solution later.

Children
No Data