Design Resources

Design & Integration File

• Schematic
• Bill of Materials
• Gerber Files
• Layout Files (Allegro)
• Assembly Drawing Download Design Files 675.45 K

Evaluation Hardware

Part Numbers with "Z" indicate RoHS Compliance. Boards checked are needed to evaluate this circuit.

  • EVAL-ADICUP360 ($52.97) EVAL-ADICUP360
  • EVAL-CN0391-ARDZ ($70.62) EVAL-CN0391-ARDZ
Check Inventory & Purchase

Device Drivers

Software such as C code and/or FPGA code, used to communicate with component's digital interface.

AD7124 IIO Sigma-Delta ADC Linux Driver

AD7124 No-OS Software

Features & Benefits

  • Flexible 4-channel thermocouple system 
  • Cold junction compensation 
  • 24-bit digitization 
  • Low power 
  • Arduino-compatible form factor 

Circuit Function & Benefits

The circuit shown in Figure 1 is a flexible, integrated, 4-channel thermocouple measurement system based on the AD7124-8 low power, low noise, precision 24-bit, Σ-Δ analog-to-digital converter (ADC).

Figure 1.Thermocouple Measurement System (Simplified Schematic: All Connections and Decoupling Not Shown)


The circuit can process up to four independent thermocouple channels, and the software linearization algorithms support eight different types of thermocouples (B, E, J, K, N, R, S, and T). The four thermocouples can be connected in any combination, and resistance temperature detectors (RTDs) on each thermocouple channel provide cold junction compensation (CJC). No extra compensation is needed. Thermocouple measurements using this system cover the full operating range of the various types of thermocouples.

The circuit has a standard serial peripheral interface (SPI) connection to Arduino-compatible platform boards for rapid prototyping. With a USB to UART interface and open source firmware, the EVAL-CN0391-ARDZ can be easily adapted to a variety of thermocouple applications.

Circuit Description

Temperature Measurement Introduction

Thermocouples are one of the most frequently used sensors for temperature measurements in industrial applications because of their low cost, ruggedness, repeatability, as well as wide operating temperature range and fast response time. Thermocouples are especially useful for making measurements at high temperatures (up to 2300°C for Type C thermocouples).

A thermocouple consists of the junction of two wires of different metal types, as shown in Figure 2.

Figure 2. Thermocouple Connection Showing Measurement and Reference Junctions for One Channel


The junction is placed where the temperature is to be measured, TTC, and is referred to as the measurement junction. The other end of the thermocouple is connected to a precision voltage measurement system, and this connection is referred to as the reference junction, or alternately the cold junction (CJ). The temperature difference between the measurement junction, TTC, and the cold junction, TCJ, generates a thermoelectric voltage, VTC − VCJ, that is proportional to the difference between the temperatures of the two junctions. The voltage generated is typically from several microvolts to tens of millivolts and is dependent on the temperature difference and on the thermocouple type.

Cold Junction Compensation (CJC)

The voltage generated by a thermocouple must be converted to temperature. Converting the voltage measured to an accurate temperature can be difficult, because the thermocouple voltage is small, the temperature-voltage relationship is nonlinear, and the cold junction temperature must also be accurately measured.

The output voltage of the thermocouple represents the difference between the temperature of the thermocouple and the cold junction temperature. Figure 2 shows that the cold junction temperature is measured with another temperature sensitive device, typically a thermistor, diode, RTD, or semiconductor temperature sensor. The temperature sensing device used for this circuit is a Pt1000 RTD, and there is one RTD in each of the four channels for accurate measurements.

In Figure 2, the total thermocouple voltage, VTC – VCJ, is measured with a precision ADC and converted to a digital format using the following equation:

Equation A

VTC − VCJ is the measured thermocouple voltage.
CODE is the ADC code.
N is the resolution of ADC, N = 24.
VREF is the reference used for measurement. For this circuit, the internal 2.5 V reference is used for the thermocouple measurement.
G is the chosen gain for TC mode, G = 32.

The ADC is operating in bipolar differential mode.

A constant current source, IOUT (obtained from the AD7124-8 ADC) drives the series combination of the RTD and a precision 1.6 kΩ reference resistor, R5. The IOUT setting for the CN-0391 circuit is 750 μA, which produces a nominal VREF of 1.6 kΩ × 750 μA = 1.2 V, and a drop of 1 kΩ × 750 μA = 0.75 V across the RTD. The voltage across R5 is used as a reference to the ADC. For a bipolar differential input mode, the RTD resistance, RRTD, is calculated using the following equation:

Equation B

CODE is the ADC code.
N is the resolution of the ADC, N = 24.
R5 is the reference resistor, R5 = 1.6 kΩ
G is the chosen gain for the RTD mode, G = 1.

In the CN-0391 circuit, the thermocouple voltage and the RTD voltage are both converted by the AD7124-8 multichannel, 24-bit ADC. Note that the measurement is ratiometric and not dependent on the accuracy of either the reference voltage or the value of the IOUT excitation current.

The RTD resistance, RRTD, is then converted into the cold junction temperature, TCJ, using either a lookup table or polynomial equations. The RTD transfer function known as the Callender-Van Dusen equation is made up of two distinct polynomial equations to provide a more accurate result and is used in the CN-0391 software. See the Circuit Note CN-0383 for a more detailed explanation of these RTD equations.

The cold junction temperature, TCJ, is then converted into the corresponding thermocouple voltage VCJ using the equations in ITS-90 Thermocouple Database. The CN-0391 software uses the ITS-90 polynomial equations rather than the lookup tables to perform this conversion.

The software then sums the thermocouple voltage (VTC− VCJ) with the cold junction, VCJ, to obtain the thermocouple EMF, VTC.

The ITS-90 inverse equations are then used to convert the thermocouple EMF, VTC, to the equivalent thermocouple temperature, TTC.

For the thermocouple theory, linearization tables, equations, and cold junction compensation, refer to the NIST ITS-90 Thermocouple Database, NIST Standard Reference Database 60, Version 2.0 (available on the NIST website). For the general theory of thermocouples and temperature measurements, see Chapter 7 of Sensor Signal Conditioning.

Analog-to-Digital Conversion

The CN-0391 circuit uses the AD7124-8 multichannel, 24-bit Σ-Δ ADC. The AD7124-8 contains an input multiplexer and an integrated programmable gain amplifier (PGA) with gain options of 1 to 128. The AD7124-8 can be configured to have 8 differential inputs or 15 pseudo differential inputs.

One of the major advantages of the AD7124-8 is that it gives the user the flexibility to employ one of three integrated power modes. The current consumption, range of output data rates, and rms noise can be tailored with the power mode selected. The device also offers a multitude of filter options, ensuring that the user has the highest degree of flexibility.

The internal PGA allows amplification of the small thermocouple voltage to a level that is optimum for the internal Σ-Δ ADC. The proper gain setting is determined by the amplitudes of the thermocouple signals and the value of the reference voltage.

The CN-0391 software supports eight types thermocouple: B, E, J, K, N, R, S, and T.

Different thermocouples have different ranges and sensitivities, as shown in Figure 3. For instance, Type J thermocouples are made by joining iron and constantan and have an approximate range of −210°C to +1200°C with a sensitivity of 50 μV/°C at 0°C. The sensitivity is also called the Seebeck coefficient and is a function of the thermocouple temperature. The ranges and Seebeck coefficients for the eight types of thermocouples are shown in Table 1.

Figure 3. Thermocouple Output Voltage vs. Temperature


Table 1. Range and Seebeck Coefficients of Thermocouple Types and ITS-90 Equation Range
Type ITS-90 Equation Range
Seebeck Coefficient at 0°C
Seebeck Coefficient at 400°C
E −200 to +1000 59 80
J −210 to +1200 50
K −200 to +1372 39 42
N −200 to +1300 26 37
T −50 to +400 39 62
R −50 to +1768 5 10
S −50 to +1768 5 10
B 250 to 1820 3 (at 250°C) 4


By using the integrated PGA of the AD7124-8, the small thermocouple voltage levels can be sensed and accurately converted to a digital representation.

The cold junction temperature range is 0°C to 50°C, and the maximum and minimum output voltage range is determined by examining the voltage swings of the various types and including the cold junction voltage component that is subtracted from the thermocouple voltage. The Type E thermocouple requires the widest range, as shown in Table 2.

Table 2. Maximum Thermocouple Voltage Swing (Type E)
Output Hot Junction Cold Junction Voltage
Maximum 1000°C 0°C


The AD7124-8 ADC bipolar input range using the internal 2.5 V reference is −50 mV to VREF/G. For VREF = 2.5 V and the PGA gain set to G = 32, the bipolar ADC input range is −50 mV to 78.125 mV. This range covers the output voltage ranges of all eight types of thermocouples; therefore, no external signal conditioning circuits are needed, and the PGA can operate at a fixed gain of 32 for all thermocouple types. The 24-bit resolution allows thermocouples with small signal ranges (such as Type B) to be measured without the need for gain ranging. The thermo-couple is connected in single-ended mode to the ADC, and the negative input is connected to GND to reduce noise from the sensor.

The EVAL-CN0391-ARDZ board has four miniature Type U female thermocouple connectors (Omega PCC-SMP-U-100) for connecting to the thermocouples mating male connectors. The cold junctions are formed at the connector contacts, and the CJC RTDs are located close to the connectors.

A simple 2-wire RTD connection is used in the CN-0391 circuit; however, the AD7124-8 contains matched programmable excitation currents that can be used for 2-wire, 3-wire, and 4-wire RTDs. Details of 3-wire and 4-wire applications can be found in Circuit Note CN-0383, respectively.

System Noise Measurements and Results

It is important that the system noise be low so that the small amount of voltage from a thermocouple can be measured accurately. Figure 4 shows the histogram of 256 samples taken with the thermocouple connector shorted on one channel. The AD7124-8 sinc3 filter was on, and the data rate was 50 Hz.

Figure 4. Shorted Input Histogram for Single Channel, 256 samples, ADC Sinc3 Filter On, 50 Hz Data Rate


From the histogram, the peak-to-peak noise referenced to the input is 978 nV. For a full-scale input of 78 mV, the noise free code resolution can be calculated:

Equation C

System Thermocouple Measurements and Results

Thermocouple system measurement tests require accurate knowledge of the thermocouple temperature over a wide temperature range. Though oil baths are accurate, they have a limited temperature range and are slow to stabilize. An accurate thermocouple simulator, such as the Time Electronics 1090 temperature calibrator, offers an attractive alternative to the oil bath method. Figure 5 shows a block diagram that explains the simulator test concepts.

Figure 5. Testing a Thermocouple Measurement System Using a Thermocouple Simulator


The simulator allows the user to input the thermocouple type and temperature as well as the cold junction temperature. The simulator then uses the ITS-90 tables and equations to convert the thermocouple temperature, TTC, and the cold junction temperature, TCJ, into their respective voltages, VTC and VCJ. Then VCJ is subtracted from VTC to yield the simulator output voltage, VTC – VCJ.

The overall accuracy of the simulator depends on the thermocouple type and temperature, but is typically between 0.5°C and 2°C.

Note that the simulator does not test the accuracy of the system cold junction compensation circuit, which must be tested separately with an actual thermocouple attached.

Figure 6 shows the error between simulated and measured temperature for E, J, K, N, and T type thermocouples, and Figure 7 shows the error for B, R, and S type thermocouples. A zero-scale and full-scale internal calibration was performed on the AD7124-8 ADC before taking the measurements.

Figure 6. EVAL-CN0391-ARDZ Temperature Measurement Error for E, J, K, N, T Type Thermocouples Using Thermocouple Simulator


Figure 7. EVAL-CN0391-ARDZ Temperature Measurement Error for B, R, S Type Thermocouples Using Thermocouple Simulator


The errors shown in Figure 6 and Figure 7 are a combination of the following sources:

  • Simulator error (0.15°C to 3°C depending on type and range)
  • ADC reference voltage accuracy (0.2%)
  • System offset and gain errors that remains after internal ADC calibration (less than 10 μV)
  • ADC nonlinearity (15 ppm FSR, which is 1.2 μV for FSR = 78 mV)
  • Error in ITS-90 equations (varies from 0.001°C to 0.06°C, depending on type and range)

The reference error (0.2% for the AD7124-8 internal reference) causes a system gain error and can contribute several degrees Celsius of error at high temperatures.

The B, R, and S type thermocouples are more sensitive to offset errors because of their small Seebeck coefficients.

The AD7124-8 nonlinearity and the error in the ITS-90 equations are both negligible with respect to the other error sources.

The measured data shown in Figure 6 and Figure 7 is within the accuracy specifications of all eight standard thermocouples over their respective ranges.

For highest accuracy, especially with B, R, and S type thermo-couples, a system level zero-scale and full-scale calibration must be performed using a precision external voltage source.

A more accurate external reference, such as the ADR4525 with (0.02% initial accuracy), can also be used to minimize gain errors.

Cold junction compensation was tested by connecting a Type J thermocouple to a channel and maintaining the thermocouple at ambient temperature while cycling the EVAL-CN0391-ARDZ board under a ThermoStream or Thermonics temperature controller. The Type J thermocouple was chosen because of its relatively high sensitivity to temperature change (52 μV/°C at 25°C).

The measurements were made at cold junction temperatures of 0°C, 25°C, and 105°C, and the results are shown in Figure 8.

Figure 8. EVAL-CN0391-ARDZ Temperature Measurement Error for Type J Thermocouple at Room Temperature for Cold Junction Temperatures of 0°C, 25°C, and 105°C.


A complete set of documentation for the EVAL-CN0391-ARDZ hardware including schematics, layout files, Gerber files, and bill of materials is available in the CN-0391 Design Support Package.

System Design Tradeoffs

The EVAL-CN0391-ARDZ board is designed to provide maximum flexibility for any combination of four independent thermocouple input channels, and the circuit design uses a minimum of additional components.

The AD7124-8 ADC can provide higher accuracy if a system level zero-scale and full-scale calibration is performed before making measurements.

The AD7124-8 is also capable of improved noise performance if the inputs are configured for differential operation and an input anti-aliasing filter is added to each channel. A typical filter arrangement is shown in Figure 9, where R1 + R2 and C3 form a differential mode filter (bandwidth of approximately 800 Hz) and R1/C1 and R2/C2 form common-mode filters (bandwidth of approximately 16 kHz).

Further design techniques for achieving optimum performance with the AD7124-8 ADC can be found in Circuit Note CN-0383, and Circuit Note CN-0384.

Figure 9. Optional Differential and Common-Mode Input Filters for AD7124-8


Another major advantage of the AD7124-8 is that it provides the user with the flexibility to employ one of three integrated power modes. The current consumption, range of output data rates, and rms noise can be tailored with the power mode selected. The device also offers a multitude of filter options, ensuring the highest degree of flexibility.

Common Variations

The AD7124-8 has 15 pseudo-differential or 8 differential ADC inputs. For fewer channels and lower cost, the AD7124-4 is available, which has 7 pseudo differential or 4 differential inputs.

The AD7124-8 internal 2.5 V reference has ±0.2% initial accuracy. For higher accuracy and reduced full scale gain error, the ADR4525 2.5 V reference with ±0.02% initial accuracy can be used.

Circuit Evaluation & Test

This circuit uses the EVAL-CN0391-ARDZ Arduino shield board and the EVAL-ADICUP360 Arduino-compatible platform board. The two board easily stack together, with the EVAL-CN0391-ARDZ on the top and the EVAL-ADICUP360 on the bottom. The thermocouples plug into the P1 to P4 sockets of the EVAL-CN0391-ARDZ board.

The system connects to the PC through the USB interface on EVAL-ADICUP360 board. Both boards are powered from the USB 5 V supply. The RTD sensors are already assembled on the EVAL-CN0391-ARDZ board.

Equipment Needed

The following equipment is needed:

  • PC with a USB 2.0 port and Windows® 7 (64-bit) or later
  • EVAL-CN0391-ARDZ Arduino-shield compatible circuit evaluation board
  • EVAL-ADICUP360 development board or compatible Arduino platform board
  • Any combination of B, E, J, K, N, R, S, and T type thermocouples (four total), or a Time Electronics 1090 temperature calibrator or equivalent
  • ADICUP360 software (IDE), see the CN-0391 User Guide
  • Serial terminal software such as PuTTY or Tera Term
  • USB A to USB micro cable
  • EVAL-CN0391-ARDZ demo code (see the CN-0391 User Guide)

Getting Started

  1. Select the correct jumper settings on both the EVAL-CN0391-ARDZ board and the EVAL-ADICUP360 board. The jumper settings are described in detail in the CN-0391 User Guide.
  2. Plug the EVAL-CN0391-ARDZ Arduino shield board into the EVAL-ADICUP360 Arduino-compatible platform board.
  3. Connect the thermocouple sensors to the EVAL-CN0391-ARDZ board.
  4. Connect the user USB port to the PC.
  5. Each of the four channels uses an omega style connector for the thermocouples, which simplifies plugging in and out different thermocouple types. The Type U connector was selected so that all the channels on the board (P1 to P4) are universal and interchangeable.
  6. Drag and Drop the demo_cn0391.bin file onto the MBED Drive
  7. The software must be configured for the thermocouple types on P1, P2, P3, and P4 as described in the CN-0391 User Guide.
  8. When the program is running, the output data is calculated and displayed in the terminal window.
  9. Information regarding the Arduino form factor-compatible ARM Cortex™-M3 development platform (EVAL-ADICUP360) is available in the EVAL-ADICUP360 User Guide.

Functional Block Diagram

A block diagram of the test setup is shown in Figure 10.

Figure 10. Test Setup Functional Diagram (Both Boards Powered from PC USB 5 V Supply)



After the sample code is built and loaded onto the EVAL-ADICUP360 and the EVAL-CN0391-ARDZ is mounted on top, the device communicates with the PC and continuously updates and displays the following for each channel:

  • Channel number and thermocouple type
  • RTD resistance
  • Linearized RTD temperature (cold junction temperature)J
  • Linearized thermocouple temperature

Warning messages display if the final linearized temperature for the selected thermocouple is out of the range defined by the ITS-90 equations. Other programming options are described in detail in the CN-0391 User Guide.

Figure 11 shows a photo of the EVAL-CN0391-ARDZ board.

Figure 11. EVAL-CN0391-ARDZ Board Photo