USB Based Temperature Monitor Using the ADuC7061 Precision Analog Microcontroller and an External RTD
In the source code, an ADC sampling rate of 100 Hz is chosen. When the ADC input PGA is configured for a gain of 32, the noise free code resolution of the ADuC7061 is greater than 18 bits.
Figure 1: ADuC7061 As a Temperature Monitor Controller with an RTD Interface (Simplified Schematic, All Connections Not Shown)
The following features of the ADuC7061 are used in this application:
|•||Primary 24-bit Σ-Δ ADC with programmable gain amplifier (PGA): The PGA is set for a gain of 32 in the software for this application.|
|•||Programmable excitation current sources for forcing a controlled current through the RTD: The dual current sources are configurable in 200 μA steps from 0 μA to 2 mA. For this example, a 200 μA setting was used.|
|•||External voltage reference for the ADC in the ADuC7061: For this application, we used a ratiometric setup where an external reference resistor (RREF) is connected across the external VREF+ and VREF− pins. Alternatively, an internal 1.2 V reference is provided in the ADuC7061.|
|•||ARM7TDMI® core: The powerful 16-/32-bit ARM7 core with integrated 32 kB flash and SRAM memory runs the user code that configures and controls the ADC, processes the ADC conversions from the RTD, and controls the communications over the UART/USB interface.|
|•||UART: The UART was used as the communication interface to the host PC.|
|•||Two external switches are used to force the part into its flash boot mode: By holding S1 low and toggling S2, the ADuC7061 will enter boot mode instead of normal user mode. In boot mode, the internal flash may be reprogrammed through the UART interface.|
The RTD used in the circuit is a platinum 100 Ω RTD, model number Enercorp PCS 1.1503.1. It is available in a 0805 surface-mount package. This RTD has a temperature variation of 0.385 Ω/°C.
Note that the reference resistor, RREF, should be a precision 5.62 kΩ (±0.1%).
The USB interface to the ADuC7061 is implemented with an FT232R UART to USB transceiver, which converts USB signals directly to the UART.
In addition to the decoupling shown in Figure 1, the USB cable itself should have a ferrite for added EMI/RFI protection. The ferrite beads used in the circuit were Taiyo Yuden, #BK2125HS102-T, which have an impedance of 1000 Ω at 100 MHz.
The circuit must be constructed on a multilayer PC board with a large area ground plane. Proper layout, grounding, and decoupling techniques must be used to achieve optimum performance (see Tutorial MT-031, Grounding Data Converters and Solving the Mystery of "AGND" and "DGND," Tutorial MT-101,
Decoupling Techniques, and the ADuC7061 Evaluation Board layout).
The source code used to test the attached circuit can be downloaded as a zip file at www.analog.com/cn0075_source.
The UART is configured for a baud rate of 9600, 8 data bits, no parity, no flow control. If the circuit is connected directly to a PC, a communication port viewing application such as HyperTerminal can be used to view the results sent by the program to the UART. See Figure 2. The source code is commented to make it easier to understand and manipulate.
For details on linearization and maximizing the performance of the circuit, refer to Application Note AN-0970, RTD Interfacingand Linearization Using an ADuC706x Microcontroller.
Figure 2. Output of HyperTerminal Communication Port Viewing Application
|ADP3333||High Accuracy Ultralow IQ, 300 mA, anyCAP® Low Dropout Regulator||
|ADUC7060||Low-Power, Precision Analog Microcontroller, Dual Σ-Δ ADCs, Flash/EE, ARM7TDMI||
|ADUC7061||Low-Power, Precision Analog Microcontroller, Dual Σ-Δ ADCs, Flash/EE, ARM7TDMI||
|ADP7102||20 V, 300 mA, Low Noise, CMOS LDO||