Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

No accurate readings from a temperature sensor [TC1047A]

Status
Not open for further replies.

mmaters

New Member
Hi all,

I'm not an electronics expert, hence I guess my question on this forum.
I'm using a temperature sensor the TC1047A in my project. As A/D Convertor I'm using the H-Tronic HB628 board.

The circuit design as attached (see TC1047A) I "stole" form the documentation of the board. Although the sensor should be calibrated within 1 degree celsius, this doesn't appear to be working in my application. Besides the output not being accurate the output is also fluctuating quite a bit.

The +5V power is derived from a USB laptop connection through the HB628 board.
The distance between the sensor and my experimental board is approx. 50cm and the sensor is connected by 2x a twisted-pair. The last bit to the sensor with "winding-copper", (difficult to solder), since the device is actually an SMD device. See ConnetionSensor for a schematic lay-out how I build this connection. I'm using a mini-jack female at the end that connects to the male variant that goes with 2xtwisted pair again to the experimental-print-board that connects throught a flat-cable to the HB628 board.

I guess the diode is not really necessay, since the original design is using a TC1047 [without the A], which accepts lower-input voltage than the A version. Or does it serve another purpose?

Anyway who can help me and advise me how to improve the performance?


Regards, Martin
 

Attachments

  • TC1047A V1..jpg
    TC1047A V1..jpg
    62.1 KB · Views: 563
  • ConnectionSensor&#3.jpg
    ConnectionSensor&#3.jpg
    86.8 KB · Views: 336
You have Vdd and Vss reversed. The part is likely toast.
 
@MikeMl:
You scared me, and thus I re-checked the connections and data-sheet:
pin 3 = ground
pin 1 = supply voltage
pin 2 = output

The circuit is working only not accurate.
Any other suggestions, anobody?
 
According to this **broken link removed** (page 6) you could try adding an RC filter at the sensor output to filter any noise (probably 60Hz). Make the RC of the filter as large as possible, based upon how often you need to take a reading.
 
Last edited:
Carl et al,

Thanks for the application note and suggestions. Since I'm not an expert could you or anybody else tell me if the ommission of the RC-filter could also lead to in-accuracy or would it only resolve the fluctuations I experience.

And if it is not too much asked, could anybody out there help me with the R and C values I'd need to use.
The only thing I could find in the specs of the A/D-convertor is that the input resistance = 10MOhm.


Martin.
ps. Carl: I guess, since I life in The Netherlands, somewhere in Europe that is, that it would be 50Hz.
 
It could be you have so much noise that it overwhelms the signal, causing the noticed in-accuracies.

I would use something like 10k and 100µF (negative to ground) which gives a 1s time-constant for a 0.16Hz low-pass filter (about a 50dB reduction for 50Hz interference). How rapidly does the temperature change, and how often do you take a measurement?

Yes, I naturally think of 60Hz here in the states, but you would likely be picking up 50Hz.
 
Last edited:
Carl,
My application has a few different modes:
- in the "development-mode" I sample 3 x per second
- in the "normal operations-mode" I sample once every 3 seonds
- in any other mode the sampling will also be once every 3 seonds.

Temperature change is not that rapidly, for your information the application is a so-called "Telescope Equilibrium Manager" that ensures that the "primary mirror" of my Newtonian Telescope will become in Equilibrium [by cooling it] asap with the external [ambient] temperature. It is imporant for a Telescope for good performance that every optical element is at the same temperature as the extneral air temperature. [this is probably too much info anway]. So in short, cooling from lets say 20°C to lets say 5°C in 1 to 2 hours. I guess this boils down to "not critical" looking at the circuit set-up right? Accuracy on the other hand is important, so I'm trying to manage this within 0.3°C. This actually means that I have to calibrate the sensors anyway, since the out-of-factory accuracy of the device is around 1°C.

I guess what you're trying to say, but please correct me if I'm wrong, that if I use the proposed setting with 10K and 100uF I shouldn't sample more than once per second, right, or even once every 2 seconds?

One more follow-up question:
According to the specs [uncalibrated]: VOUT = (10mV/°C) CTemperature °C) + 500mV
thus Temperature [°C] = (VOUT - 500Mv) / 10Mv

Would that [likely] change if I add the RC-filter?

Martin
 
You can sample faster, and then average the readings in software. A ring buffer of 8 previous samples makes it easy to divide the reading by eight. There is no problem sampling faster than the signal out of the filter can change; it is the other way that can get noise aliased into the baseband.
 
Carl,
I guess what you're trying to say, but please correct me if I'm wrong, that if I use the proposed setting with 10K and 100uF I shouldn't sample more than once per second, right, or even once every 2 seconds?

One more follow-up question:
According to the specs [uncalibrated]: VOUT = (10mV/°C) CTemperature °C) + 500mV
thus Temperature [°C] = (VOUT - 500Mv) / 10Mv

Would that [likely] change if I add the RC-filter?
As Mike stated, you can sample as often as you like. It's just that any signal change will have a time-constant of 1s (time to change to 63.2% of a new value).

The calibration should not be changed by the filter since you are only interested in slowly changing DC and the filter does not affect DC significantly (just the voltage divider between the 10kΩ filter resistor and the 10MΩ A/D input resistance which is .999 or a 0.1% reduction).
 
Mike, Carl,

Thanks for the info and advise. I'll built the circuit somewhere next week and test with it. I'll feedback the results via this forum.
I'd already built a buffer in the software to account for the fluctuations, and 0.1% I can live with.
It's great to have internet and forums like this one!

Perhaps one last question before I run off to buy the stuff early next week:
If you go back to my original schematic drawing, does it matter if I built the RC-lowpass-filter at the sensor-end of the twisted pair or at the "board-end",
I guess it should be the "board-end", which has my preference anyway.

Martin
 
If you go back to my original schematic drawing, does it matter if I built the RC-lowpass-filter at the sensor-end of the twisted pair or at the "board-end",
I guess it should be the "board-end", which has my preference anyway.
The board-end is probably preferable to the sensor-end.

Another thing that occurred to me is to use coax (audio coax is fine) for the signal. Twisted pair wires are only effective for a differential signal and yours is single-ended (unbalanced). Coax is much better at keeping noise out of a single-ended signal.
 
Carl, Mike et al,

Today I've build the RC-filter, and guess what, it works perfectly, although the response to change is a wee bit slow this really doesn't matter too much, it actually makes life easier, since the sw-buffer is much smaller now [only 4 samples]. (I also discovered a tiny :-( error in my SW...)

Thanks again for the great advise, and keep up the good work helping all those rookies out there!!
I love this site, and have been following other threads as well, and will continue to do so in the future as well...

Kind regards,

Martin
(from the Netherlands where we have AC @ 50Hz)
 
A too hasty applaud.....

Guys,

I'm sorry my hurray was I guess too hasty since I was so thrilled it worked.
I've adjusted the circuit according to the attachment.
Now the issue seems to be when the temperature goes up the readings are ok, and it doesn't fluctuate anymore, that's the good news.

However when the temerature goes down it takes ages before I get the right reading.
I guess the capacitor has nowhere to dechange, right [need to show you guys that I have a very tiny bit of knowledge I guess]? Would a parallel resistor to ground do the trick? If so, what value should I apply, if not any other good suggestion?

Martin
 

Attachments

  • TC1047A V2..jpg
    TC1047A V2..jpg
    67.4 KB · Views: 283
Try reducing the filter cap to ~1uF. The buffer opamp inside the sensor may not like driving the huge capacitive load presented by 100uF.
 
The capacitor does discharge through the resistor to the temp sensor output amp (the amp can source or sink 100µA) so the settling time should be the same going either high or low. As I mentioned, the filter has a 1s time-constant so it should take about 7s to be within 0.1% of a new value. If that's too slow than you can either reduce the value of the resistor or the capacitor. Of course that does reduce noise rejection also, but hopefully you can find a compromise value that gives adequate rejection with acceptable settling time.
 
Carl,

7s is not too slow, but when it cooled down from about 23 to 20 it took over 1 minute to go from 23 to 22.
Perhaps something wrong with the contacts/connections to/from the sensor.
I'll run some more tests tomorrow and see.

Martin
 
The final verdict

Guys et al,

Good news, all works fine, just wanted to share some measurements with you, and a few [minor] open ends.

Please have a look at first attachment. This really looks cool and OK.
The green-line is a temp.sensor without the RC-circuit, and the blue-line with the RC-circuit installed on the board.
At around 12:35 and at 13:00 I give the sensor a kick to see how it responds.
One strange thing, I'm not so bothered about, but I'm curious anyway: look how after the kick the temperature drops, raises again, drops, raises and undershoots to finally reach it's end-value. I should probably ask a thermodinamic expert, but does anyone have a clue to why this is?


If you look at the second file, that's where the sensor has a loose contact. Blue line starts at around 18 degrees, drops to 15. I start fidling a bit on the wires, correct value comes up, starts dropping again at around 11:15, I heat up the sensor, nothing happens, fidling with the wires and the correct value comes up again and starts dropping. Now I suspect that at the point where the value starts dropping in an almost liniar way, this is because the capacitor unload via the 10M resistance in the A/D-cicruit, correct? And the tiny spikes in the values are the result of the inaccuracy of the A/D-convertor [it's a 12-bits, from 0mV-4096mV obviously in steps of 1mV, with an accuracy of 2mV, I guess it's actual accuracy is therefore 11-bits, or looking at the graph perhaps even 10-bits].

If anyone can/want to do the math for the decharge of the cap.:
So at 10:20 temp is around 17.8 degrees celsius ~ 678 mV
So at 10:50 temp is around 16.0 degrees celsius ~ 660 mV

Not really needed, just curious if it figures...

Best regards,

Martin
 

Attachments

  • Measurement03..jpg
    Measurement03..jpg
    78.6 KB · Views: 216
  • Measurement02..jpg
    Measurement02..jpg
    64.2 KB · Views: 221
Last edited:
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top