Interfacing DS2760 via 1-wire to Propeller woes
![Timothy D. Swieter](https://forums.parallax.com/uploads/userpics/482/n6OIB3WNWVK0M.jpg)
I have the DS2760 Thermocouple kit that Parallax sells. I am trying to interface it to my Propeller. I haven't worked with 1-wire before so perhaps I am missing something here. So far my attempts to read the ICs address, let alone data, are not successful.
Here is what I have done so far:
-attached, through a connector/cable, the DS2760 to the Propeller Protoboard. The cable is ~3 ft long.
-wired 5V DC power and VSS to the DS2760 from the Propeller Protoboard supply.
-verified continuity and proper voltages at both ends of the cable and devices.
-wired a 1k resistor in series with the Propeller I/O pin and the data from the DS2760. I added this because I wanted the 5V signal tolerant with the Propeller, but I think this would potentially mess up the 1-wire bus since data goes both direction, no? What to do in this case of bidirectional data?
-Created a program using Cam Thompson's 1-wire software in the object exchange. The program issues a 1-wire reset, then a "Read Net" command and then reads in a byte from the 1-wire bus.
-The result is $FF. I was looking for $30 which is the ICs ID according to the data sheet and sample Basic Stamp code found on-line.
After further thought and investigation I wondered if the device could be powered off of 3.3V. It looks like the IC can operate in a wide range according to the tables in the IC's data sheet. So I did some resoldering on my Protoboard and now the DS2760 has 3.3V, GND and data connected directly to the Propeller I/O (no series resistor). I verified the voltages and continuity at both ends of the cable. I did notice that the voltage to the IC though is ~3.0V because of the SOT-23 device on the DS2760 PCB that is not shown in the schematic. I am not able to decipher what this device is - a voltage regulator? I didn't catch a reading when I had 5V DC wired to the board.
With the 3.3V DC wired, I reran the sample program and now I get $00 as the address. I see two potential reasons for this. One would be the IC is bad or not working because of low voltage or maybe the Propeller I/O pin was damaged from the first test. I suppose there are other reasons such as construction or program, but I have a higher level of confidence in those two areas than in implementing the 1-wire/DS2760 connection to the Propeller.
I would like help in ensuring I am attaching the 1-wire/DS2760 device to the Propeller properly. Once I am able to read the address correctly the next step is to write an object, if any one has written an object and willing to post it, let me know as I would love to give it a "spin". Anyone else use this particular product with their Propeller?
Thank you,
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Timothy D. Swieter, E.I.
www.brilldea.com - Prop Blade, LED Painter, RGB LEDs, uOLED-IOC, eProto fo SunSPOT, BitScope
www.tdswieter.com
Here is what I have done so far:
-attached, through a connector/cable, the DS2760 to the Propeller Protoboard. The cable is ~3 ft long.
-wired 5V DC power and VSS to the DS2760 from the Propeller Protoboard supply.
-verified continuity and proper voltages at both ends of the cable and devices.
-wired a 1k resistor in series with the Propeller I/O pin and the data from the DS2760. I added this because I wanted the 5V signal tolerant with the Propeller, but I think this would potentially mess up the 1-wire bus since data goes both direction, no? What to do in this case of bidirectional data?
-Created a program using Cam Thompson's 1-wire software in the object exchange. The program issues a 1-wire reset, then a "Read Net" command and then reads in a byte from the 1-wire bus.
-The result is $FF. I was looking for $30 which is the ICs ID according to the data sheet and sample Basic Stamp code found on-line.
After further thought and investigation I wondered if the device could be powered off of 3.3V. It looks like the IC can operate in a wide range according to the tables in the IC's data sheet. So I did some resoldering on my Protoboard and now the DS2760 has 3.3V, GND and data connected directly to the Propeller I/O (no series resistor). I verified the voltages and continuity at both ends of the cable. I did notice that the voltage to the IC though is ~3.0V because of the SOT-23 device on the DS2760 PCB that is not shown in the schematic. I am not able to decipher what this device is - a voltage regulator? I didn't catch a reading when I had 5V DC wired to the board.
With the 3.3V DC wired, I reran the sample program and now I get $00 as the address. I see two potential reasons for this. One would be the IC is bad or not working because of low voltage or maybe the Propeller I/O pin was damaged from the first test. I suppose there are other reasons such as construction or program, but I have a higher level of confidence in those two areas than in implementing the 1-wire/DS2760 connection to the Propeller.
I would like help in ensuring I am attaching the 1-wire/DS2760 device to the Propeller properly. Once I am able to read the address correctly the next step is to write an object, if any one has written an object and willing to post it, let me know as I would love to give it a "spin". Anyone else use this particular product with their Propeller?
Thank you,
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Timothy D. Swieter, E.I.
www.brilldea.com - Prop Blade, LED Painter, RGB LEDs, uOLED-IOC, eProto fo SunSPOT, BitScope
www.tdswieter.com
Comments
So here is what I found, I hope this helps you.
EDIT: NO 1k RESISTOR·IN LINE W/Comm. Sorry I must have been thinking GPS chip... Gotta test before doing things from memory.
It does say it should run at 3.3v on the data sheet, it wont it just does crazy things, I think the chip enters brown out when it tries to transmit. The 00, is effectively the same as no return I think, if I follow the whole 1-wire protocol correctly.
Ok so I have also attached my unfinished result of the pain on the ds2762. I can get the temperature reading( Chip surface ) to read correctly. Well a whole number result correctly, even though the data sheet says accurate to .125 deg, versus a IR temp gun. It works in both match net, and skip net mode.
I have yet to be able to make it correctly give me the voltage from the sense resistor pin, It always gives strange readings.
I have also included at the end of the file, my type k thermocouple look up table, it is in degree steps, from 0 to 1370 C, with the input being in thousands of mili volts. I built it from the table at
·http://www.omega.com/temperature/z/pdf/z204-206.pdf
I hope this helps at all, if you get a functioning object I would love to be able to use it. If there is anything else I can help you with, please let me know.
TJ
edit : What result do you get using the ·ow-seachdemo file, On my chips·I get complete returns for the adresses, it might help take some of the coding issues out of the question.
Post Edited (TJHJ) : 11/9/2008 7:45:37 AM GMT
I will look at the code then too. Certainly if I come up with a DS2760 object I will post it in the object exchange and forum. Right now I just want to see some life out of the device to know that I can do what I want to do with it - read a thermocouple!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Timothy D. Swieter, E.I.
www.brilldea.com - Prop Blade, LED Painter, RGB LEDs, uOLED-IOC, eProto fo SunSPOT, BitScope
www.tdswieter.com
I just dug mine up and powered it back up to confirm, using this slightly modified OW-search demo, All I did was add the return value for a ds276x. And I get a full response from all 4 chips, or a single chip hooked up to the network.
Just a thought here, I cant quite remember if it was this chip, but I think it was. There is an odd power up delay time, So try keeping the chips live and then ram loading this. If I eprom load it and flip flop the power switch sometimes I get 3 chips, sometimes 4. But if I ram load it, with the board hot, I always get 4 chips. Just did it about 10 times now.
TJ
EDIT : I just powered up this board again, and I get no response for chip tempature. But I do get a full set of responses using the seach demo file.
EDIT: MISTAKE, NO 1k RESISTOR IN LINE WITH COMM LINE.....
Post Edited (TJHJ) : 11/9/2008 7:46:07 AM GMT
I spent the last couple hours looking at my problem again. Thank you TJHJ for the help and troubleshooting. Knowing that someone has gotten something similar to work helps.
During the past couple hours I reread my posts, thought through what I was doing, the troubleshooting steps I had taken and what I could confirm worked and what didn't work. During this time I soldered and unsoldered wires and wrote simple programs for toggling I/O. I also moved the I/O wire to the DS2760 around but one thing was constant, the "00" address that was still being read. After looking at the data sheet for the Parallax DS2760 kit I realized there was a pull-up resistor on the data line. I realized the address line was being held low some how.
Now, if you will recall, I first built the circuit to run to 5V DC, gnd as gnd and a 1K resistor between the Propeller I/O and the DS2760 data line. When I did not get that to work, before I made the posts here, I "ripped" that circuit apart and rewired it to be 3.3V DC, gnd, and the DS2760 data line straight to the Propeller I/O. It was at that time that the 00 started to show up. It took me a while, but just a little bit ago I realized something was shorting to ground. After desoldering and inspection I found a place where the solder mask was nicked.
See the attached picture. In the middle of the picture are three vertical solder joints. There is a nick in between the bottom pad and the middle pad. Originally the three pads are soldered together, like the one on the right. When I changed from the 5V DC to the 3.3V DC I had to cut the 1K resistor out. My nippers must have nicked the solder mask. Then when I put the new wire in and made the solder bridge connection over the nick this caused the connection to be grounded.
So, here is where I stand now:
-5V DC is powering the DS2760
-Gnd is gnd, of course
-DS2760 data is connected directly to the Propeller I/O - no resistor (as TJHJ said he did in a PM to me) and if I trust my first test setup which didn't work, though I am still a little leery of not having one
-The test software I wrote is now working and giving me the correct address back
What is next? Next I have to write a DS2760 object that works with the Type T thermocouple I am using. Anyone else write this software already? (Can't you tell I don't want to write it the way I keep asking?) TJHJ and I would love to try out other routines if anyone cares to share.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Timothy D. Swieter, E.I.
www.brilldea.com - Prop Blade, LED Painter, RGB LEDs, uOLED-IOC, eProto fo SunSPOT, BitScope
www.tdswieter.com
As for prop input protection, According to Figure 15, pg 15. The pull up can range from 2.0 - 5.5 from the 4.7k pull up resistor. So if it was pulled up to 3.3 instead of 5v, that should eliminate any issues of over powering the prop pin.
It does make it a pain to use though, but in the way the pull up is set up, it seems the ds2760 never provides any voltage to the comm line, So its really like 5v through a 4.7k resistor which should cause no problems for the prop.
TJ