02-08-2012 07:13 AM - edited 02-08-2012 07:14 AM
Context: an AT-GPIB/TNT card running 488.2 driver ver 1.70 in Win98 from TransEra HTBasic 8.3 , GPIBNI driver. One device on the bus requires that interrupts be disabled. Doing so allows that device to work properly, but all other devices hang. Enabling NI Spy restores proper operation, suggesting a timing issue. TransEra tech support agrees with that assessment. Earlier versions of their software (non-Windows) work without error. So the problem is their driver interfacing to the 1.70 driver.
Since 8.3 is not a current version, they are not too motivated to fix it. However, they did look into the history and found this:
"One of our engineers did some digging and was able to at least narrow down the change that probably caused the problem. Apparently our GPIBNI driver was built using the DECL-32.h include file and looking online, that file has been replaced by NI with NI488.h. He wasn't able to find out exactly which version of the NI software it was replaced in, but NI may be able to help with that, or you can just try a couple of their older versions."
So the question is, what is the last NI driver version for AT/GPIB-TNT card in Windows 98 built using the DECL-32.h include file? And where can I get a copy of it? TransEra are suggesting that as the solution.
Thanks for your help.
Solved! Go to Solution.
02-09-2012 08:43 AM
In answer to your question, the last driver for AT-GPIB/TNT for Windows 98 that used DECL-32.H exclusively was 1.70 which is available at NI-488.2 for Windows, Version 1.7.
gpibtester
02-09-2012 08:58 AM
Thanks for your reply. That's the version I am using...
02-09-2012 09:36 AM
I take it you have been using the AT-GPIB/TNT with the 1.7 driver on Windows 98 and that it used to work. Is that a correct assumption?
If it used to work and now you are running into problems, what changed? Different operating system? Newer Computer?
Or is this just a new setup for you that you just started using? If it is a new setup, how is it configured?
gpibtester
02-09-2012 09:49 AM
Perhaps I didn't state it clearly in my first post. Yes, everything worked fine until I disabled interrupts, which was necessary to accomodate one new instrument. This instrument is not used or even turned on when the others are, so that is not a conflict.
Proper operation is restored if I enable NI Spy, but this isn't a viable solution. That's what led TransEra to believe it's a timing issue.
02-10-2012 09:09 AM
It's getting clearer about your setup, but there are still some questions.
This new Instrument that you are attaching to the bus, is it a GPIB Instrument? If so, why does it require that you disable interrupts? And by interrupts, do you mean the computer's ISA interrupts? If it is an ISA interrupt, is there possibly a conflict with another ISA board in the system? If there is a conflict, can you choose a different interrupt number that doesn't conflict?
With this application that is failing, is it binary code or do you have the source? If you have the source, you could check to see if there is a timing issue where the reads happen too soon after the writes because without interrupts, things are slower as the driver reverts to PIO, which is more timing dependent.
gpibtester
02-12-2012 09:24 AM - edited 02-12-2012 09:26 AM
gpibtester, thanks for your continued interest. "Disabling interrupts" refers to the ISA interrupts, as set by the jumpers and in the software. There are no conflicts; this board has been in this computer for a couple years, assigned to INT 11 and DMA 5. All I have done is remove the INT jumpers and changed the settings in the OS to reflect that. This was done because the new instrument (an HP network analyzer) requires it, as specified in its setup manual.
I use this computer at home for program development. Only one instrument is ever on the bus at a time, so no bus confliects.
The HP network analyzer operates properly with the NI 1.7 driver and AT-GPIB/TNT card with interrupts disabled.
HTBasic 8.3 operates properly with the 1.7 driver and AT-GPIB/TNT card when an interrupt is assigned/enabled, but not when it is disabled.
I replaced the AT-GPIB/TNT card with another known good one, with the same results.
I removed the AT-GPIB/TNT card, and installed a borrowed PCMCIA-GPIB card (same 1.7 driver). It works fine with both softwares.
So the problem is clearly with the combination of AT-GPIB/TNT card, interrupts disabled, NI 1.7 driver, and HTBasic 8.3 software. HTBasic and the HP network analyzer software are commercial software packages, I don't have source code for either of them.
I slowed down the timing settings in the AT-GPIB/TNT setup, and that made no difference. But as I wrote previously, with interrupts disabled, if I start the NI Spy program before running HTBasic, then HTBasic GPIB operates properly. That is what leads me (and HTBasic tech support) to believe that it is a timing issue.
02-13-2012 08:51 AM
Thanks for the detailed information! That is very interesting that the application works with PCMCIA-GPIB.
It would be interesting to see what calls are made in the HTBasic application. If the application configures things programmatically, it would override any settings that are made in the configuration utility. Normally configuring things programmatically is good practice, but not if you don't have access to the source code where you could tweak it. Is it possible that you could use Spy to capture the calls made to the instruments that hang and post the .Spy output file to this forum?
gpibtester
02-13-2012 08:20 PM
Yes, I think I can do that, it will be a day or two before I get to it.
02-14-2012 06:43 PM
gpibtester, I'm actually unable to do that. As I've described, when I enable NI Spy, the problem disappears...