I'm developing a custom temperature sensor for a university project. One of the aspects of my work is storing a TEDS for it in a 1-Wire EEPROM, and then reading it back to be interpreted.
The best utility I found for writing the TEDS is the one available at http://sine.ni.com/devzone/cda/epd/p/id/1500, but, since it can't interface directly with USB 1-Wire (I built an adapter based on a DS2490), I had to create a virtual TEDS file, convert it to bytes, and then manually write it to the EEPROM using OneWireViewer from the 1-Wire driver.
This all goes smoothly, as well as the reading procedure I built in LabVIEW. However, when I feed the binary TEDS array to a TEDS_Parse Binary TEDS.vi block and run the program, it stops with the error mentioned in this thread's title. The rest of the error message is the following. The last line is the program I'm making.
LabVIEW: The template to decode the remainder of the TEDS bitstream cannot be found in the specified template directory.
Complete call chain:
teds_Read Binary Template.vi
TEDS_Parse Binary TEDS(bool).vi
TEDS_Parse Binary TEDS(u8).vi
I thought it could be related to not having anything connected to the block's "template file directory" input, but I analysed the TEDS writing program I mentioned above, and it doesn't have anything connected to that input, either. Oh, and I'm using LabVIEW 8.0, in case it's relevant.
So, can my problem be related to a badly-formatted TEDS bitstream, do I really need to connect something to that input, or is it something else? I scoured the Internet looking for something that could be connected there, but found nothing.
Thanks in advance!
I don't have much to contribute because I am just starting a very similar project (trying to read from DS2450 A/D converters)... I'd really appreciate hearing how you are able to solve these problems and seeing any code you are willing to share. The code you've already posted has given me a useful start.
mooseo <at> u dot washington dot edu
Unfortunately, I still haven't found any solution to my TEDS problem; however, establishing a session, reading the DS2431's ROM and EEPROM contents, and closing the session, works, and with that I can help you.
I attached the program I used as a base to make my own; instead of reading an EEPROM, it reads temperature values from a DS18B20/DS18S20 thermometre. I don't remember where I downloaded it from, so I can't credit the author. Anyway, I think this should get you started on accessing 1-Wire devices. From the original archive, I removed the ICs' datasheets and an old version of iButton Viewer to save on file size, but I'll gladly send them if you need them.
So, have you had any luck? I still haven't been able to solve my template problem, and that is snagging my whole project. If anyone has any idea about it, it would be greatly appreciated.
I know that is an old topic, but i had the same issue and in my case was related with missing templates from C:\Program Files\National Instruments\Shared\Teds\Templates.
The files are: IEEE_Legacy.tdl, NI_IEEE_Standard.tdl, Virtual_TEDS_IEEE_Templates.llb.
If Templates folder is empty, TEDS library should be installed as here:
I have the same problem and this is the only post i could foud about that problem.
Has someone found a solution yet? Or could work around this?
All the best.
iam using a half-bridge strain gage with a 1-wire Dallas 24B33 EEPROM.
An interesting fact i found out today, is that if i compile the VI to an APP the error doesnt occur anymore.
And another thing is: It seems like i have to clear the stored TEDS-Bitstream in NI MAX and then reinitialize the TEDS (reset the device (PXIe4330)).
Now i think its like that: I initialize the Hardware in MAX -> the TEDS Bitstream is somehow stored in MAX -> The VI accesses the Bitstreamdata in MAX.
I found this by pluging the Sensors to different Channels. Only if i cleared and reseted the device it worked corretly.
The picture below shows the simplified version of mine. Actually you don`t need to feed the template file path, if you have stored the .tdl files in the standard directory (c:/.../shared/teds).
So what iam asking myself now, is there an elegant way to achieve the correct hardware initialization of the TEDS 1-wire EEPROM?
Thanks for reading and your shared knowledge.