PXI

cancel
Showing results for 
Search instead for 
Did you mean: 

How are PXI interrupts handled by VISA??

Hi,

I have been struggling badly to try to implement this feature for a custom cPCI/"PXI" system, but I can't seem to get the OS (WIN98) to "squelch" the interrupt.(WIN98 eventually crashes after about 5 sec {watchdog timer??} due to this interrupt being "stuck on")..

From the documentation, it is not clear at all how to chain together these vi's but my assumption for my simple application is:
1. Open VISA Session
2. VISA Enable Event with 0x3FFF2022 (PXI Interrupt)
3. VISA Out32 (this write function generates an interrupt)
4. VISA Wait on Event
5. VISA Disable Event
6. Close VISA session

Two problems:

1. Using a bus analyzer, I can see that the interrupt READ/COMPARE command that I called out in the PXI Driver D
evelopment Wizard is never invoked.

2. I see that I get a -1073807300 ("Insufficient System Resources to perform memory allocation") error as the result of the VISA Enable Event (set to PXI Interrupt), which is probably why #1 above never happens.

I have carefully followed "Using the PXI Driver Development Wizard and NI-VISA to Register-Level Program a PXI/PCI Device under Windows" (web enhanced version of App Note 185), but I just can't get it to work... Any hints or suggestions?? I put the *.inf file in the C:\Windows\system directory. Looks good in MAX and VISA Interactive Control (although I don't see any indications of any IRQs associated with it). Windows Control Panel sees it and reports interrupt 11...???

I have temporarily disabled the conflicting device that also uses IRQ11 (USB Controller) to prevent system crashes and I do my own READ/COMPARE to clear the interrupt.. But this is just a temporary work around...

Any help would be greatly appreciated....



Jim Spawton, P.E.
NOKIA Mobile Phones, Inc.
jim.spawton@nokia.com
0 Kudos
Message 1 of 4
(5,442 Views)
Jim:

If the "is this mine" sequence is not getting invoked (the one I believe that has the read/compare operation), then I have an idea what might be happening. It is possible that if you generated an earlier version of the INF file on your computer, one that did not have the interrupt information, then the OS is using that older INF file, not the newer one.

Go into your windows\inf directory and delete any existing instance of your INF file. Go into the Windows device manager and delete your PCI/PXI device. Then re-install your new INF file by following the instructions on the first few lines of that file. After you reboot, see if this problem is solved. The main thing to look for is whether viEnableEvent returns success or failure. If it does, then
your read/compare operation is successfully installed and will be called at interrupt time.

Dan Mondrik
Senior Software Engineer, NI-VISA
National Instruments
0 Kudos
Message 2 of 4
(5,442 Views)
Dan,
Thanks for the suggestion, but it didn't work... This is a long story.... "Jeff" at NI has been working with me for over a week (ref: 7010497), but we can't seem to find the answer... Sure would be nice to have a 2-way discussion with a VISA PXI GURU on this one... I've gone back and forth with Jeff at least 5 times on this one.. Anyway, a little info for you..

BACKGROUND: This is not really a "PXI" system. It is a CompactPCI system that normally runs under QNX (i.e., all S/W drivers are in QNX), but for the purpose of system diagnostics we are using a dual-boot and running WIN98/LabVIEW, which is why I don't have a WIN98 driver for my custom cPCI board (Hmmm.... Since I probably don't meet the PXI spec, I wonder if this is my problem??).

Have successfully been able to generate .inf file (see attached) and can open VISA session and communicate with my board (see attached Test vi file). You won't be able to run this, but it always fails at the EventEnable (see attached NI spy capture for same failure while using VISA Interactive Control). If I disconnect the error output from EventEnable to the first VISA OUT32, then the rest of the vi runs until the completion of the For Loop structure (configuring an FPGA), whereby my board will generate an interrupt (which causes WIN98 to crash within 5-10 sec unless I disable the USB port, which uses same IRQ). This is where I absolutely need the "IsThisMine" sequence to be invoked, but it does not..

OBSERVATIONS:
1. Initially, I could not find the C:\windows\inf directory (hidden - DOH!!) and put the *.inf in C:\windows\system. Made correction but no change. Now resides in the \inf directory.

2. In Windows, Control Panel --> System --> Device Manager, it is listed under "%DeviceClassString%". Doulble-click and "Resources" reports "Interrupt Request 15, Memory range F5000000-F57FFFFF", as expected.

3. However, in MAX, "Resources" reports "BAR0 Memory Range 0xF5000000-0xF57FFFFF", but says nothing about any IRQ??

4. Opened a VISA Interactive Control session with NI Spy tracking and generated attachment 2. Note that the first EnableEvent (I/O Completion) worked fine, but the next one (PXI Interrupt) fails. Not shown in the attachment, but if I DisableEvent (PXI Interrupt), it doesn't fail??

I have tried just about every combination and configuration, but they all do the same thing.... I even created a second *.inf file with a line for "HowToSquelch", but same thing...

Sorry to drone on, but I have fully exhausted all info available to me through your website and/or manuals. Have spent over 1 week and need to either get it to work, or abandon it (not good). Any additional assistance would be greatly appreciated.

Thank you very much,
Jim Spawton, P.E.
NOKIA Mobile Phones, Inc
619.993.4856
jim.spawton@nokia.com
Download All
0 Kudos
Message 3 of 4
(5,442 Views)
For the benefit of those following this thread, this problem was eventually was resolved with several phone conversations and e-mailings with NI software engineers.

It turns out that since I was running LabVIEW 6.0, I needed to install a patch to upgrade VISA to 2.6, which removed the problem. I also needed to install another patch to upgrade LabVIEW to 6.0.2. Once these patches were installed, worked fine with WIN98, 2nd edition.

LabVIEW 6.1 already has these fixes installed..
0 Kudos
Message 4 of 4
(5,442 Views)