This circuit shows how to use the precision analog microcontroller ADuC7060 / ADuC7061 in a precision thermocouple temperature monitoring application . The ADuC7060/ADuC7061 integrates dual 24-bit Σ-Δ ADC, dual programmable current sources, 14-bit DAC, 1.2 V internal reference, ARM7 core, 32 kB Flash, 4 kB SRAM, and various digital peripherals such as UART, timers, SPI and I2C interfaces, etc.
In this circuit, the ADuC7060/ADuC7061 are connected to a thermocouple and a 100 Ω Pt RTD. RTD is used to perform cold junction compensation.
In the source code, the ADC sampling rate is selected to be 100 Hz. When the gain of the ADC input PGA is configured to 32, the noise-free resolution of the ADuC7060/ADuC7061 is greater than 18 bits.
Application Note AN-0970, RTD Interfacing and Linearization Using an ADuC706x Microcontroller This application uses the following features of the ADuC7060/ADuC706:
Thermocouples and RTDs produce very small signals, so a PGA is required to amplify these signals. The auxiliary ADC of the ADuC7060/ADuC7061 does not contain a PGA, so both are connected to the main ADC, and switching between the two is done through software.
The thermocouple used in this application is a copper-constantan type, which has a temperature range of −200°C to +350°C and a sensitivity of approximately 40 μV/°C, which means that the ADC operates in bipolar mode and 32x PGA gain The complete temperature range of the thermocouple can be covered under the settings.
RTD is used to perform cold junction compensation. The RTD used in this circuit is a 100 Ω platinum RTD model number Enercorp PCS 1.1503.1. It comes in a 0805 surface mount package and has a temperature change rate of 0.385 Ω/°C.
Note that the reference resistor R REF should be a precision 5.62 kΩ (±0.1%) resistor.
The USB interface of ADuC7060/ADuC7061 is implemented through the FT232R UART to USB transceiver, which converts USB signals directly to UART.
In addition to the decoupling shown in Figure 1, the USB cable itself should use ferrite beads for enhanced EMI/RFI protection. The ferrite beads used in this circuit are Taiyo Yuden #BK2125HS102-T, which has an impedance of 1000 Ω at 100 MHz.
This circuit must be built on a multilayer circuit board with a large area ground plane. For optimal performance, proper layout, grounding and decoupling techniques must be used (refer to Tutorial MT-031 - "Grounding Data Converters and Solving the Mysteries of AGND and DGND ", Tutorial MT101 - "Decoupling Technology" and ADuC7060 / ADuC7061 Evaluation Board layout ).
Figure 2 shows the EVAL-ADUC7061MKZ PCB.
Code description
The source code used to test this circuit can be downloaded from the following URL (zip file): http://www.analog.com/CN0214-SourceCode
The UART is configured for baud rate 9600, 8 data bits, no polarity, and no flow control. If this circuit is directly connected to the PC, you can use a communication port viewing program such as "HyperTerminal" to view the results sent by the program to the UART, as shown in Figure 3.
To obtain a temperature reading, the temperatures of the thermocouple and RTD must be measured and then added to give the absolute temperature value of the thermocouple.
First, measure the voltage (V1) between the two wires of the thermocouple. The RTD voltage is measured and converted to temperature via a lookup table, and this temperature is then converted to its equivalent thermocouple voltage (V2). V1 and V2 are then added to give the overall thermocouple voltage, which is then converted into the final temperature measurement.
Initially, this conversion was based on a simple linear assumption: the thermocouple temperature was 40 μV/°C. As can be seen from Figure 4, the error caused by such a conversion is only acceptable for a small range of temperatures around 0°C. A better way to calculate the thermocouple temperature is to use a 6th order polynomial for positive temperatures and a 7th order polynomial for negative temperatures. This requires mathematical operations, resulting in increased computation time and codeword size. A suitable compromise is to calculate the corresponding temperatures for a fixed number of voltages and then store these temperatures in an array with values in between using linear interpolation of adjacent points. As can be seen from Figure 5, the error is significantly reduced when using this method. Figure 5 shows the algorithm error when using ideal thermocouple voltages. Figure 6 shows the error obtained when measuring 52 thermocouple voltages over the entire thermocouple operating range using ADC0 on the ADuC7060. The worst-case total error is less than 1°C.
The RTD temperature is calculated using a lookup table and is used with RTDs in the same way as with thermocouples. Note that the polynomial that describes the relationship between RTD temperature and resistance is different from the polynomial that describes the relationship between thermocouples.
For more information on linearization and achieving optimal RTD performance, please refer to application note AN-0970: "RTD Interface and Linearization Using ADuC706x Microcontrollers . "
Blockdiagram
All reference designs on this site are sourced from major semiconductor manufacturers or collected online for learning and research. The copyright belongs to the semiconductor manufacturer or the original author. If you believe that the reference design of this site infringes upon your relevant rights and interests, please send us a rights notice. As a neutral platform service provider, we will take measures to delete the relevant content in accordance with relevant laws after receiving the relevant notice from the rights holder. Please send relevant notifications to email: bbs_service@eeworld.com.cn.
It is your responsibility to test the circuit yourself and determine its suitability for you. EEWorld will not be liable for direct, indirect, special, incidental, consequential or punitive damages arising from any cause or anything connected to any reference design used.
Supported by EEWorld Datasheet