A Thermocouple Measurement Circuit with Swordfish Software

The photo below shows the TAP-28, TMP513 and PICkit 2 on a mounting board I made.  With small, lightweight boards, it's easy for everything to go flying when pulled off the bench by a cable.  Since testing of the thermocouple required many trips to the kitchen to do a boiling water calibration, having evening secured in one place made a handy solution.

Tap-28__TMP513_on_board

 

Thermocouples

thermometer

Thermocouples are popular temperature measurement sensors that cover a temperature range from well below zero °C to over a thousand °C.  They have good accuracy, are available in many configurations and are inexpensive.  This is not to say that they are easy to use!  Thermocouple are a measurement challenge:

  • Output levels are less than 50 mV and may be positive or negative
  • The “cold junction” temperature must be compensated
  • The output response is non-linear

Historically, measurement solutions to meet these challenges have been complex requiring several ICs  and many discrete components.  A few dedicated single chip solutions exist but all have shortcomings, including cost and availability.

 

I2C Single-Chip Solution

The TI TMP512/TMP513 Temperature and Power Supply System Monitor provides an ideal single-chip solution for thermocouple measurement.  The chip features a 12-bit ADC with an input range of 40 mV that can handle bi-polar signals, and an accurate on-chip temperature sensor for reference junction compensation.  Where maximum measurement accuracy is required, external PN temperature sensors may be used to measure temperature at the junction point.

 

The Circuit

PDF Copy of Circuit and Programming Registers

The thermocouple measurement circuit is shown below.  Either the TMP512 or TMP513 may be used in the circuit.

The thermocouple is connected between VIN+ and VIN-.  The connection between the thermocouple wires and PCB traces or the connection of the thermocouple connector and PCB traces form the reference junction.  This should be as close to the TMP51x as possible and away from any heat sources so that the temperature measured by the chip’s sensor is a true representation of the reference junction temperature.

If this connection must be made some distance from the chip or the maximum possible accuracy is desired, an external transistor may be used.  Some thermocouple connectors even have a clip so that a TO-92-package can be placed right on the terminals.

The simplest circuit implementation is shown below.  Input filtering may be added at the thermocouple input – consult the TMP512/TMP513 data sheet for information on this and on remote temperature sensors.

fig_1

 

Software

Only a few features of the TMP512/TMP513 are used by this application so only a few of the registers are accessed.  Most options are left in the default state.

Step 1 – Reset the TMP512/TMP513

Do this on program initialization to ensure known state.

step1_reg

Step 2 – Initialize the TMP512/TMP513

Set the TMP512/TMP513 for thermocouple readings.  The default settings for the integral temperature sensor are satisfactory.

step2_reg

D14: Continuous Measurements
D12, D11: PGA = 1 for T/C Measurement (40 mV range)
D6 – D3: 12-bit Measurement for T/C, 16 averages
D2 – D0: Mode – Shunt Voltage (T/C) only, continuous

Step 3 – Read the Thermocouple Voltage

The thermocouple voltage will be negative if the thermocouple temperature is below the reference junction temperature.  A negative value is indicated when the sign bits = 1.

step3_reg

The value contained in D11:D0 x 10 is the thermocouple voltage in µV if it is positive.

If the value is negative, the two’s complement must be calculated – see the following section.

Calculating the Two’s Complement

When the sign bits are negative, the thermocouple temperature is negative with respect to the reference junction.  The two’s complement must be calculated to determine the negative voltage.

Invert each bit.  The easiest way is to use the NOT function:

TCValue = NOT(TCValue)

Add 1 to the value:

TCValue = TCValue + 1

Multiply the result times -10 to obtain the thermocouple voltage in µV; remember to use a variable type that can handle a negative number.

Step 4 – Read the Reference Junction Temperature

D15:D3 contain the local (reference junction) temperature.  Read register 4, shift the data right 3 bits (or divide by 8) and multiply the result by 0.0625 to obtain the temperature in °C.

step4_reg

Calculating the Thermocouple Temperature

The output voltage of the thermocouple is non-linear.  The easiest way to calculate the temperature on a microcontroller is using a lookup table.  Tables are available on-line for all types of thermocouples.  An effective way to achieve good accuracy is to use a table that lists voltages in one degree increments (use a Celsius table for the readings shown here) and interpolate between the values for higher resolution.  This keeps the table size reasonable while keeping the accuracy high.

To calculate the actual thermocouple temperature:

  1. Determine the temperature for the measured thermocouple voltage.
  2. Add the reference junction temperature to this value to obtain the actual temperature at the thermocouple junction.

Sample code and Swordfish modules are below.

Alternative Single Chip Solutions
MAX6675

Cold-Junction-Compensated K-Thermocouple-to-Digital Converter (0°C to +1024°C)

MAX6674

MAX6674 - Cold-Junction-Compensated K-Thermocouple-to-Digital Converter (0°C to +128°C)

These Dallas-Maxim use an SPI interface.  They are limited to Type-K thermocouples, expensive
(~US$15 in single unit pricing) and difficult to obtain.

AD595

Type K Thermocouple Amplifier with Cold Junction Compensation

AD594

Type J Thermocouple Amplifier with Cold Junction Compensation
 

These Analog Devices parts have an analog output of 10 mV/°C.  The measurement range is
limited when using a 0 – 5 volt supply.

 

Prototype Build

The TMP512/TMP513 circuit is extremely simple.  The prototype was built on an SOIC-28 adapter board, which allowed space to add a six-pin connector for use with the TAP-28 PIC application board.

The photo shows a TMP513 mounted to the board along with a 0.1 µF bypass capacitor.  The two-pin gold-plated header is for the thermocouple.  Point-to-point wiring on the bottom of the board completes the connections.

drawing_plus_board

The six pin header has the I2C SDA and SCL lines along with power and ground.  The pullup resistors for the SCL and SDA lines are on the TAP-28 board.

Initial testing was made using a Type K thermocouple, which provides a measurement range of -269°C to 759°C.  The upper end of the range was limited to table values that fit in an integer format (±32767).

The TAP-28 board used a PIC18F242 with a 20 MHz crystal and hardware I2C although most any type of microcontroller should work fine.  The picture below shows the TAP-28 and thermocouple circuit board, connected with a six-conductor cable.

 

Swordfish Modules

Two modules are provided to use the TMP513 thermocouple circuit with Swordfish.  The first module is the thermocouple table.  This is a listing of voltage levels produced by the thermocouple junction at 1°C increments.  The table provided is for Type K thermocouples, and is adapted from the charts that can be found on-line.  The measurement range is -270ºC to 760ºC.  The range of a Type K thermocouple is up to 1300ºC but the table is limited to the range of values that fit in an integer variable. 

Tables for other types of thermocouples may be made.  The values in the table are in μV.  Most on-line tables are mV.  The values are multiplied by 1000 to make them integer values.  Three values aside from the thermocouple potentials are included in the table:

Variable
Purpose
TableOffset Temperature corresponding to the first table value
TableType Type of thermocouple to which the table applies
TableValues Total number of enteries in the table

 

Thermocouple Type K Table
{
*****************************************************************************
*  Name    : K-type Thermocouple Table                                      *
*  Author  : Jon Chandler                                                   *
*  Notice  : Copyright (c) 2011 Creative Commons 3.0 SA-BY                  *
*          : All Rights Reserved                                            *
*  Date    : 1/7/2011                                                       *
*  Version : 1.0                                                            *
*  Notes   : email - This email address is being protected from spambots. You need JavaScript enabled to view it.                           *
*          : www.clever4hire.com/throwawaypic                               * 
*          : Home of the TAP-28 PIC Application board                       *
*****************************************************************************
}
'K-type Thermocouple Thermoelectric Values
'From -269 to 759 degrees C by degree  (1030 values) 
'Temperature offset from index = -270      
'Note - table limited to 759 degrees C to stay within the bounds of Integer variable
 
'Values are in microvolts
 
Module ThermocoupleTable
Public Const TableValues As Word = 1030        'total number of values
Public Const TableType As Char = "K"           'type of thermocouple
Public Const TableOffset As Integer = -270     'lowest temperature value (offset from 0)
 
Public Const ThermoelectricV (1030)As Integer  =(
 
-6458,
-6457,-6456,-6455,-6453,-6452,-6450,-6448,-6446,-6444,-6441,
-6438,-6435,-6432,-6429,-6425,-6421,-6417,-6413,-6408,-6404,
-6399,-6393,-6388,-6382,-6377,-6370,-6364,-6358,-6351,-6344,
-6337,-6329,-6322,-6314,-6306,-6297,-6289,-6280,-6271,-6262,
-6252,-6243,-6233,-6223,-6213,-6202,-6192,-6181,-6170,-6158,
-6147,-6135,-6123,-6111,-6099,-6087,-6074,-6061,-6048,-6035,
-6021,-6007,-5994,-5980,-5965,-5951,-5936,-5922,-5907,-5891,
-5876,-5861,-5845,-5829,-5813,-5797,-5780,-5763,-5747,-5730,
-5713,-5695,-5678,-5660,-5642,-5624,-5606,-5588,-5569,-5550,
-5531,-5512,-5493,-5474,-5454,-5435,-5415,-5395,-5374,-5354,
-5333,-5313,-5292,-5271,-5250,-5228,-5207,-5185,-5163,-5141,
-5119,-5097,-5074,-5052,-5029,-5006,-4983,-4960,-4936,-4913,
-4889,-4865,-4841,-4817,-4793,-4768,-4744,-4719,-4694,-4669,
-4644,-4618,-4593,-4567,-4542,-4516,-4490,-4463,-4437,-4411,
-4384,-4357,-4330,-4303,-4276,-4249,-4221,-4194,-4166,-4138,
-4110,-4082,-4054,-4025,-3997,-3968,-3939,-3911,-3882,-3852,
-3823,-3794,-3764,-3734,-3705,-3675,-3645,-3614,-3584,-3554,
-3523,-3492,-3462,-3431,-3400,-3368,-3337,-3306,-3274,-3243,
-3211,-3179,-3147,-3115,-3083,-3050,-3018,-2986,-2953,-2920,
-2887,-2854,-2821,-2788,-2755,-2721,-2688,-2654,-2620,-2587,
-2553,-2519,-2485,-2450,-2416,-2382,-2347,-2312,-2278,-2243,
-2208,-2173,-2138,-2103,-2067,-2032,-1996,-1961,-1925,-1889,
-1854,-1818,-1782,-1745,-1709,-1673,-1637,-1600,-1564,-1527,
-1490,-1453,-1417,-1380,-1343,-1305,-1268,-1231,-1194,-1156,
-1119,-1081,-1043,-1006,-968,-930,-892,-854,-816,-778,
-739,-701,-663,-624,-586,-547,-508,-470,-431,-392,
-353,-314,-275,-236,-197,-157,-118,-79,-39,
0,39,79,119,158,198,238,277,317,357,
397,437,477,517,557,597,637,677,718,758,
798,838,879,919,960,1000,1041,1081,1122,1163,
1203,1244,1285,1326,1366,1407,1448,1489,1530,1571,
1612,1653,1694,1735,1776,1817,1858,1899,1941,1982,
2023,2064,2106,2147,2188,2230,2271,2312,2354,2395,
2436,2478,2519,2561,2602,2644,2685,2727,2768,2810,
2851,2893,2934,2976,3017,3059,3100,3142,3184,3225,
3267,3308,3350,3391,3433,3474,3516,3557,3599,3640,
3682,3723,3765,3806,3848,3889,3931,3972,4013,4055,
4096,4138,4179,4220,4262,4303,4344,4385,4427,4468,
4509,4550,4591,4633,4674,4715,4756,4797,4838,4879,
4920,4961,5002,5043,5084,5124,5165,5206,5247,5288,
5328,5369,5410,5450,5491,5532,5572,5613,5653,5694,
5735,5775,5815,5856,5896,5937,5977,6017,6058,6098,
6138,6179,6219,6259,6299,6339,6380,6420,6460,6500,
6540,6580,6620,6660,6701,6741,6781,6821,6861,6901,
6941,6981,7021,7060,7100,7140,7180,7220,7260,7300,
7340,7380,7420,7460,7500,7540,7579,7619,7659,7699,
7739,7779,7819,7859,7899,7939,7979,8019,8059,8099,
8138,8178,8218,8258,8298,8338,8378,8418,8458,8499,
8539,8579,8619,8659,8699,8739,8779,8819,8860,8900,
8940,8980,9020,9061,9101,9141,9181,9222,9262,9302,
9343,9383,9423,9464,9504,9545,9585,9626,9666,9707,
9747,9788,9828,9869,9909,9950,9991,10031,10072,10113,
10153,10194,10235,10276,10316,10357,10398,10439,10480,10520,
10561,10602,10643,10684,10725,10766,10807,10848,10889,10930,
10971,11012,11053,11094,11135,11176,11217,11259,11300,11341,
11382,11423,11465,11506,11547,11588,11630,11671,11712,11753,
11795,11836,11877,11919,11960,12001,12043,12084,12126,12167,
12209,12250,12291,12333,12374,12416,12457,12499,12540,12582,
12624,12665,12707,12748,12790,12831,12873,12915,12956,12998,
13040,13081,13123,13165,13206,13248,13290,13331,13373,13415,
13457,13498,13540,13582,13624,13665,13707,13749,13791,13833,
13874,13916,13958,14000,14042,14084,14126,14167,14209,14251,
14293,14335,14377,14419,14461,14503,14545,14587,14629,14671,
14713,14755,14797,14839,14881,14923,14965,15007,15049,15091,
15133,15175,15217,15259,15301,15343,15385,15427,15469,15511,
15554,15596,15638,15680,15722,15764,15806,15849,15891,15933,
15975,16017,16059,16102,16144,16186,16228,16270,16313,16355,
16397,16439,16482,16524,16566,16608,16651,16693,16735,16778,
16820,16862,16904,16947,16989,17031,17074,17116,17158,17201,
17243,17285,17328,17370,17413,17455,17497,17540,17582,17624,
17667,17709,17752,17794,17837,17879,17921,17964,18006,18049,
18091,18134,18176,18218,18261,18303,18346,18388,18431,18473,
18516,18558,18601,18643,18686,18728,18771,18813,18856,18898,
18941,18983,19026,19068,19111,19154,19196,19239,19281,19324,
19366,19409,19451,19494,19537,19579,19622,19664,19707,19750,
19792,19835,19877,19920,19962,20005,20048,20090,20133,20175,
20218,20261,20303,20346,20389,20431,20474,20516,20559,20602,
20644,20687,20730,20772,20815,20857,20900,20943,20985,21028,
21071,21113,21156,21199,21241,21284,21326,21369,21412,21454,
21497,21540,21582,21625,21668,21710,21753,21796,21838,21881,
21924,21966,22009,22052,22094,22137,22179,22222,22265,22307,
22350,22393,22435,22478,22521,22563,22606,22649,22691,22734,
22776,22819,22862,22904,22947,22990,23032,23075,23117,23160,
23203,23245,23288,23331,23373,23416,23458,23501,23544,23586,
23629,23671,23714,23757,23799,23842,23884,23927,23970,24012,
24055,24097,24140,24182,24225,24267,24310,24353,24395,24438,
24480,24523,24565,24608,24650,24693,24735,24778,24820,24863,
24905,24948,24990,25033,25075,25118,25160,25203,25245,25288,
25330,25373,25415,25458,25500,25543,25585,25627,25670,25712,
25755,25797,25840,25882,25924,25967,26009,26052,26094,26136,
26179,26221,26263,26306,26348,26390,26433,26475,26517,26560,
26602,26644,26687,26729,26771,26814,26856,26898,26940,26983,
27025,27067,27109,27152,27194,27236,27278,27320,27363,27405,
27447,27489,27531,27574,27616,27658,27700,27742,27784,27826,
27869,27911,27953,27995,28037,28079,28121,28163,28205,28247,
28289,28332,28374,28416,28458,28500,28542,28584,28626,28668,
28710,28752,28794,28835,28877,28919,28961,29003,29045,29087,
29129,29171,29213,29255,29297,29338,29380,29422,29464,29506,
29548,29589,29631,29673,29715,29757,29798,29840,29882,29924,
29965,30007,30049,30090,30132,30174,30216,30257,30299,30341,
30382,30424,30466,30507,30549,30590,30632,30674,30715,30757,
30798,30840,30881,30923,30964,31006,31047,31089,31130,31172,
31213,31255,31296,31338,31379,31421,31462,31504,31545,31586
  )

 

TMP513 Module

The TMP513 uses an I2C interface.  This module handles the I2C protocol to set and read the required registers on the TMP513, and converts the register values to cold junction temperature and thermocouple temperature.  The module supports three commands:

ReadColdJuncttemp:  Returns the temperature of the TMP513 internal temperature sensor in degrees C x 10.  This value is used in compensating the thermocouple but it's built into the next command.

ReadTC: Returns the temperature of the thermocouple.  The voltage of the thermocouple junction is read, compared against the thermocouple table.  The temperature is interpolated for the nearest table values for good accuracy.  The cold junction temperature is read and added to the thermocouple value to provide the actual temperature of the thermocouple sensor,

Command
Result

Initialize

ReadCJTemp

Configures the TMP513 chip

Returns the integer value of the cold junction temperature in degrees C x 10

ReadTCTemp

Returns the integer value of the thermocouple junction temperature in degrees C x 10.  The result is compensated for the cold junction temperature.

 

Variables
Purpose
I2Cdevice The address of the TMP513 (only change if default is not correct)
TableType The type of thermocouple table being used

 

TMP513 Thermocouple Module
{
*****************************************************************************
*  Name    : TMP513 Thermocouple Circuit Module                                    *
*  Author  : Jon Chandler                                                   *
*  Notice  : Copyright (c) 2011 Creative Commons 3.0 SA-BY                  *
*          : All Rights Reserved                                            *
*  Date    : 1/7/2011                                                       *
*  Version : 1.0                                                            *
*  Notes   : email - This email address is being protected from spambots. You need JavaScript enabled to view it.                           *
*          : www.clever4hire.com/throwawaypic                               * 
*          : Home of the TAP-28 PIC Application board                       *
*****************************************************************************
}
'Module Functions
'Initialize     -   Configures the TMP513 chip
'ReadCJTemp     -   Returns the integer value of the cold junction temperature in degrees C x 10
'ReadTCTemp     -   Returns the integer value of the thermocouple junction temperature in degrees C x 10. 
'                   The result is compensated for the cold junction temperature.
 
'Variables
'I2Cdevice      -   The address of the TMP513
'TableType      -   The type of thermocouple table being used
 
Module TMP513
 
Include ("i2c.bas")
Include("ThermocoupleTableK.bas")
 
 
 
 
Dim Value1 As Byte
Dim Value2 As Byte
public Dim I2Cdevice As Byte           'I2C device address
Dim I2CPointer As Byte           'register address
Dim LookupValue As Integer
Public Dim J As Word
 
 
 
Public Dim TableType As Char
Public Dim TableValues As Word
Public Dim TableOffset As Integer
 
Public Sub Read_REG(Pointer As Byte, ByRef Val1 As Byte,ByRef Val2 As Byte)
        I2C.Start
        I2C.WriteByte(I2Cdevice)
        I2C.WriteByte(Pointer)
        I2C.Stop
 
        I2C.Restart
        I2C.WriteByte(I2Cdevice+1)
        Val1 = I2C.ReadByte
        I2C.Acknowledge(I2C_ACKNOWLEDGE)
        Val2 = I2C.ReadByte
        I2C.Acknowledge(I2C_NOT_ACKNOWLEDGE)
        I2C.Stop
End Sub
 
Public Sub Write_REG(Pointer As Byte, ByRef Val1 As Byte,ByRef Val2 As Byte)
        I2C.Start
        I2C.WriteByte(I2Cdevice)
        I2C.WriteByte(Pointer)
        I2C.WriteByte(val1)
        I2C.WriteByte(val2)
        I2C.Stop
 
 
End Sub
 
Public Sub Initialize()
    I2C.Initialize
    I2C.Start
    I2C.Stop
    I2C.Start
    I2C.Stop
 
 
    'Initialize TMP513
    I2CPointer = 0     'force a reset to default conditions
    Value1 =%10000001
    Value2 =%11100101
    Write_REG(I2CPointer,Value1, Value2)
 
    DelayMS(50)
 
    I2CPointer = 0     'PGA = 1, 16 averages of shunt voltage, continuous read of shunt voltage only
    Value1 =%00000001  '16 averages requires 10.3 mS
    Value2 =%11100101
    Write_REG(I2CPointer,Value1, Value2)
 
End Sub
 
'Sub ReadColdJuncTemp(Temperature1 As Integer)
Public Function ReadCJTemp()As Integer
    Dim Temp1 As Integer
    I2CPointer = 8                          'read cold junction
    Read_REG (I2CPointer, Value1, Value2)        
    temp1.byte1 = Value1
    temp1.byte0=Value2
    temp1 =  (temp1)/8
    result = temp1 *0.0625  *10
    'note: the result is the cold junction temperature in degrees C x 10   
End Function
 
 
Public Function ReadTCTemp()As Integer
    Dim Temp1 As Integer
    Dim Temp2 As Integer
 
    I2CPointer = 8                          'read cold junction
    Read_REG (I2CPointer, Value1, Value2)        
    temp1.byte1 = Value1
    temp1.byte0=Value2
    temp1 =  (temp1)/8
    temp1 = temp1 *0.0625
    DelayMS(10)
 
    I2CPointer=4                         'read t/c voltage
    Read_REG (I2CPointer, Value1, Value2)        
    temp2.byte1 = Value1
    temp2.byte0 = Value2
    If temp2.15=1 Then ' negative number, need 2's complement
        temp2=Not(temp2)+1
        temp2=temp2 *-10 'change sign and multiply by 10 for scaling
    Else
        temp2 = temp2*10
    EndIf     
 
    LookupValue = -6500
    J=0
    While temp2 > LookupValue
        Inc(J)
        If J > ThermocoupleTable.TableValues Then
            'out of range
            result = -9999
            Exit ' ends function
        EndIf
        LookupValue=ThermoelectricV(J)
    Wend
    'interpolation
    result  =((temp2 -ThermoelectricV(J-1))*10/(ThermoelectricV(J)-ThermoelectricV(J-1))+(J+TableOffset-1)*10 )    +10*temp1 'add cold junction temp x 10 
 
    'note: the returned value is the temperature in degrees C x 10; the cold junction temperature has been compensated
 End Function
 
 
 
'*****************************************
 
I2Cdevice = $B8     'change the default address to match the TMP513
TableType = ThermocoupleTable.TableType
TableOffset = ThermocoupleTable.TableOffset
TableValues=ThermocoupleTable.TableValues      

 

Demonstration Program

The Swordfish module makes reading a thermocouple extremely easy.  The code shown below reads the thermocouple and write the code to the PICkit UART tool using software UART code.

TMP513 Thermocouple Circuit Demonstration
{
*****************************************************************************
*  Name    : TMP513 Thermocouple Circuit Demo Program                       *
*  Author  : Jon Chandler                                                   *
*  Notice  : Copyright (c) 2011 Creative Commons 3.0 SA-BY                  *
*          : All Rights Reserved                                            *
*  Date    : 1/7/2011                                                       *
*  Version : 1.0                                                            *
*  Notes   : email - This email address is being protected from spambots. You need JavaScript enabled to view it.                           *
*          : www.clever4hire.com/throwawaypic                               * 
*          : Home of the TAP-28 PIC Application board                       *
*****************************************************************************
}
 
Device = 18f242        'set for the device used
Clock = 20             'set for the clock speed used
 
Include("suart.bas")
Include("convert.bas")
Include ("i2c.bas")
Include("ThermocoupleTableK.bas")
Include("tmp513.bas")
 
 
 
 
Dim I2Cdevice As Byte           'I2C device address
Dim CJTemp As Integer
Dim TCTemp As Integer
Dim J As Word
 
 
 
I2Cdevice = $B8     'change the default address to match the board
 
'commands for using software UART to output to PICkit 2 UART tool
UART.SetTX (PORTB.7)        'set the software UART pin to use the ICSP connector            
UART.SetMode (umTrue)       'set the software UART pin to non-inverted mode            
UART.SetBaudrate(sbr9600)
 
 
TMP513.Initialize   'set the TMP513 chip for measurements
 
UART.Write ("Table in use: ",TMP513.TableType, 13,10, 13,10)
 
 
 
While 1 = 1
 
TCTemp=TMP513.ReadTCTemp 
 
UART.Write("Thermocouple Temperature is ", DecToStr((TCTemp/10)),".",DecToStr(TCTemp,1)," degrees C",13, 10)
 
DelayMS(1000)
 
Wend

The thermocouple I'm using is a tiny bead type on the end of a wire, which cost a buck or two on ebay.  The temperature reading is very responsive since the bead is so small.  The temperatures compare favorably with those from a digital oven thermometer taking over a room temperature - 50°C range, and the results taken in an ice bath and boiling water are spot on.

For further information, check out the forum thread posted during the development of the TMP513 circuit.  There are a number of background links along with application information.


Posted: 8 years 7 months ago by andyo #6138
andyo's Avatar
Nice write-up and modules. The TMP513 looks like a good find. And I do like the "stay-where-I-put-you" Velcro board for prototyping!
Posted: 8 years 7 months ago by Jon Chandler #6398
Jon Chandler's Avatar
I just came across an article in Sensors Magazine using a similar approach using a Dallas-Maxim 1-Wire chip desired to monitor a lithium ion battery. Functionally, the chip is very similar to the TI TMP513 but it uses the 1-Wire bus instead of I2C. This is a nice option when you want to use several sensors spread over a wide area.

The 1-Wire Thermocouple, January 1, 2002 By: Dan Awtrey, Motorola Semiconductor

The DS2760 used in the article has been replaced by the DS2762.

It goes without saying that the Swordfish module for the TI TMP513 will not work with this circuit.
Posted: 8 years 7 months ago by MrDEB #6404
MrDEB's Avatar
I wonder if the module for the DS18B20 would work?
Being it uses the one wire protocol?
Posted: 8 years 7 months ago by Jon Chandler #6405
Jon Chandler's Avatar
Each 1+Wire device, just like I2C devices, has unique resisters which must be read and understood to calculate the measurement value. The 1-Wire protocol is the same for all 1-Wire devices, but the communication is unique to each device.

One other point to make in comparing these two solutions: The DS2762 is great for communicating over long distances compared to the short distances possible with an I2C interface. But you pay for this ability. The Maxim part is over $12 in small quantity, the TI part is less than $4.
Posted: 6 years 7 months ago by Jon Chandler #12901
Jon Chandler's Avatar
Dave Jones at EEVBlog has a nice video explaining how thermocouples work. Check it out for more information.

EEVBlog #419 - Thermocouple Tutorial

Forum Activity

Member Access