Question about ds1620 temperature IC
russ christensen
Posts: 84
Hi all, I have a DS1620 temperature chip and it seems to be working fine except for one little thing. The temperature does not seem to be accurate at all. As of me writing this, I have the ds1620 on next to me, has been running for 5 minutes, and has displayed the temp of 74 degree's F. About 6 inches from it, i have a weather station that my dad has, and it is showing the indoor temp at 68 degree's F. this is quite a delta. Honestly i have no idea if the weather station is accurate, but the thermostat for the house is set at 68 degree's, and it does not feel as warm as 74 in here. Just wondering if anybody knows if there is something else i'm missing. Any suggestions would be greatly appreciated. It may be noted that i'm using the ds1620.spin driver to get the temp using the method getttempf and i am outputing by serial to a vfd.
Russ
Russ
Comments
You are correct. I had the same experience and I suspected that the chip was warmer than the room. I have all three solutions... the lm34, the ds1620 and the sensirion sht117... which is a bad designation for a great device. I also suspected that maybe I needed to regulate the current going through the ds1620. I actually don't know the answer to your question. But I'm sure lots of guys here do[noparse]:)[/noparse]
I hooked up the sensirion unit in about 5 minutes on my way out of town... because for some reason the last time I tried it... it didn't work...and that bothered me so much I couldn't leave the house without an answer. Thankfully, this time it worked like a charm. The SHT is so sensitive that you can hold your hand a few inches away from it and see the temperature change.
I like the 1620 because it has some nifty signals coming out of it. And while you are talking about it let me throw in another question... is there any way to permanently assign the limiting values so that once you have set the upper and lower thresholds, you can disconnect the Prop and use the signals coming out of the 1620 to make a free standing thermostat?
The next step for me is to order an infrared thermometer and point it at the 1620 and see what i get.
Great question.
Rich
I did look at the spec sheet ... gave me a headache and thats about it[noparse]:)[/noparse]
Have you checked out out if the datasheet says anything about self heating? There may be something you can do about it.
The DS1620 is just great to measure and regulate temperatures alone or in thermostat mode, too. However, the temperature it actually measures is the temperature inside of of the chip itself. You have to bring it into good thermal contact with the measured object. To measure the temperature of a room you might put some gray painted or eloxated metal sheet onto the DS1620 to distribute the heat generated by the chip itself and to get heat sensitive contact with the air of the room. (That metal sheet can nicely cover the electronics and can give place to an LCD display, as well.)
BUT the sensirion unit appears accurate to me... eyeballing the output and comparing it to a RadioShack radio-controlled clock/thermometer... not exactly a gold standard or rigorous methodology[noparse]:)[/noparse]
Even if the output of the sensirion is off slightly... the resolution is wonderful. So, exquisitely small temperature changes over short periods of time become useful.
Also... if you think of temperature change rather than absolute values then the problem mostly goes away for both units.
·
According to the information on this page under "Self-Heating Calculations" ...
·
http://www.maxim-ic.com/appnotes.cfm/an_pk/3930
·
... The "Theta JA" for an 8-pin DIP .300 is 110 causing a resulting temperature rise of 0.957 Deg C.· That's about 1.723 Deg F.· But the document also says that this would be under the worst-case scenario.···
·
Based on the data, it looks like the best package for dissipating any internal heat produced by the temperature sensor is going to be in an 8-pin SO .208 with a resulting temperature rise of 0.241 Deg C or about 0.434 Deg F.
·
This difference doesn't seem like much, but from what I gather, MUCH of the temperature increase would be caused by subtle differences of even how the package was layed out on a PCB board.· You might even be able to lower some of the over all·effects by limiting the current into the DS1620s power supply to begin with.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe
IC Layout Engineer
Parallax, Inc.
"I didn't use a capacitor of any kind... didn't think I had to... there was a big one sitting right there" - I'm not sure that you do need an additional cap, since as you say, there is one already there.
What I was referring to was regulating the current in addition to the voltage entering the DS1620, but really, there is so little of a change there that that wouldn't make much of a difference. I might think that the most effective positioning of the DS1620 would be to mount it in a way that there is adequate ambient air flow across the bottom of the IC as well as across the top of the IC. Keep in mind this is pure speculation and I have never tried it one way verses the other for any kind of comparison to see if there is an actual difference in doing it this way.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe
IC Layout Engineer
Parallax, Inc.
My intended application is monitoring the supply and return air temperatures in my heating system and I would suspect that with normal heating/cooling system airflow the effects of internal heating in the DS1620 would be minimized.
Jerry
Just curious... were you reading the sensor in High Resolution mode or in Standard Mode? The reason I ask, is that when reading in High Resolution mode, if you are not reading in One-Shot mode, then the values can be invalid.
Can you post the code that you are using, and a schematic? Perhaps even a picture?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe
IC Layout Engineer
Parallax, Inc.
How often are you sampling the DS1620? I am currently sampling at 2 samples per second and the clock signal is active only when the DS1620 is being read or written.
Jerry
jerry: i'm sampling at 1 second intervals because thats what the datasheet of the thermometer says it updates at. if you sample more than that your just getting the same temp from what i read.
I'm going to set up a side by side comparison of the 1620 and the Sensirion unit. Have limited time, so it will probably take me a day or two to get some results.
Rich
The only thing I did different (as I recall) is that this time I hooked the 1620 up to the 3.3 volts...and I left the signal pins on the right side of the chip floating; whereas, before I had them hooked up... probably not the issue here. The issue would seem to be the 5 volts vs the 3.3 volts[noparse]:)[/noparse]
And on my breadboard I am now using a power supply from SpinStudio... which has everything soldered as opposed to trusting the stability of jumpers...
My old setup measured out ok... but obviously, something was amiss.
I have some more DS1620s but I haven't tried any of them yet. I haven't connected one to a propeller breadboard yet either.
I don't know if any of this helps or not.
Jerry
I wonder if this might be a subtle software issue.
The code in the OBEX for the DS1620 has a ShiftIO routine that basically toggles the clock from what ever state it starts out·in, and states that "the user must preset the clock line to the idle state"... looking at the DS1620 datasheet, the idle clock state appears to be HIGH, however I don't see that the clock line is being preset with the code from the OBEX, which would mean that the "default" idle state would be LOW.· In most cases this would not be an issue, but further looking at the DS1620 datasheet indicates that the data is valid on the rising clock edge.· There is timing padding within the ShiftIO routine that takes care of the leading clock edge which would be from LOW to HIGH if the clock line idle state was LOW, but not on the trailing clock edge of HIGH to LOW.· This might result in bit errors when reading the data.
In other words...· The DS1620 basically expects a HIGH-LOW-HIGH clock transition with data being valid on the LOW to HIGH transition... with the current clock pin initial idle LOW state, the DS1620 is "sees" a LOW-HIGH-LOW for the clock transition.· As far as the DS1620 is concerned the data is still valid from LOW to HIGH, but it may be too early to read the data·resulting in possible bit errors.
I haven't tried this, but the simple fix to initiate the idle clock state would be something like this in the DS1620 object.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe
IC Layout Engineer
Parallax, Inc.
Post Edited (Beau Schwabe (Parallax)) : 2/9/2009 5:34:27 PM GMT
here is a rip/mod of the OBEX object...it is a lot easier to understand, but·it uses video on·pin12·rather than VGA and uses pins 8,9,10 for the 1620
It is a lot simpler and will let you test your hardware· setup.· To get actual temperatire values,·you divide the displayed value·by 100.
Vdd is 3.3V
Vss is ground
Rich