Driver Development Kit (DDK)

cancel
Showing results for 
Search instead for 
Did you mean: 

(Reference#7101436) Interrupt removal in Visa driver development wizard for PCI-6052E

Problem Description :

I am going to generate the ini files using the Visa driver development wizard. But I don't know how to create the sequence for interrupt removal, simply because I don't know where I should write to and what I should write. Could someone please tell me something about this?

By the way, I wrote 0x80000000 into BAR0+0x14 for the interrupt detection.

It works and I can see the "invoking callback..." message in NI SPY, but can not stop it, system got stuck.

Thanks a lot!

George

0 Kudos
Message 1 of 7
(8,216 Views)

Have you checked out Chapter 8 of the STC manual?  http://www.ni.com/pdf/manuals/340934b.pdf   Are you using NI-VISA on Windows?  If so, why are you writing your own driver?  Could you just use NI-DAQmx? 

0 Kudos
Message 2 of 7
(8,200 Views)
Hi,

The STC is in BAR1 not BAR0.  So it should be BAR1+0x14.  I haven't checked the STC manual to determine if that's the register you need to use.  Also,  keep  in mind that you need two operations:  Checking the interrupt status to detect if the device is interrupting and writing to acknoledge the interrupt.

Diego.



0 Kudos
Message 3 of 7
(8,194 Views)

Thanks for your help.

Our project needs two channels of AO and one channel of AI at the same time. The three channels have to be synchronized quite well. We tried use the one DMA for output (AO) and the other DMA channel for one of the AI channels, another AI channel has to use interrupt, since even though PCI-6052E has three DMA channels, but people can't use two DMA channels for AI at the same time.

In order to implement the interrupt for the PCI-6052E DAQ card, we have to generate the driver using Visa Driver Development Wizard. We know what to tell the driver to detect the interrupt of PCI card from the DAQ RLP Manual (page 4-57), but don't know how to "squelch" the interrupt after the ISR responds the interrupt. The information for the interrupt removal page in the Wizard is unknown. I know for removing the interrupt request after the application detects and jumps to the isr, the driver has to "write" some thing into some register address of the miniMite ASIC. We don't know what the register's address and what we have to write into it.

We are going to dig to that deep into the miniMITE. Only thing we have to know what address and what bits in the mite register are for the interrupt removal.

Any idea about this?

Thanks

0 Kudos
Message 4 of 7
(8,164 Views)
You cannot use two AI channels independantly at the same time.  There is only one timing engine and ADC for all AI channels.  Setting up one ai channel for DMA and another for interrupts simply won't work.  You should just read two channles at the same time.  Unless I'm misunderstanding your application ... 
0 Kudos
Message 5 of 7
(8,148 Views)

Sorry, I made a mistake, it should be one AI channel and two AO channels. I am going to use a DMA channel for the AI, other DMA for one of the AO channels and interrupt for the other AO channel. Will it work?

Thanks for the reply 

Best regards,

George

0 Kudos
Message 6 of 7
(8,138 Views)
Hi,

You don't need to set anything in the mite.  You can acknoledge the interrupts in the STC.  Chapter 8, Interrupt Control, talks about interrupt handling.  What interrupt are you trying to use?

Diego.
0 Kudos
Message 7 of 7
(8,123 Views)