From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Does the GPIB API allow programmers to force hardware to use DMA?

Solved!
Go to solution

I am in a situation in which I have to disable DMA on a GPIB card which is being used with software for which I do not have sources, and I am not  familiar with the NI API.   My question is,  could the application have been specifically programmed to require DMA, or will the NI driver (if properly configured) handle the required operations transparently to the application?

0 Kudos
Message 1 of 5
(3,201 Views)

Hi JBinTex,

 

What hardware are you using? I came across the following articles which outline the role of DMA with NI GPIB devices, as well as how DMA is handled:

 

What Are DMA and IRQ and What Are They Used for in GPIB?

Changing the IRQ and DMA settings of a GPIB-USB device

 

Take a read over these two articles and let me know if they answer your questions!

 

Best,

 

0 Kudos
Message 2 of 5
(3,189 Views)

I am using the AT/TNT board, which is ISA. The motherboard I am using does not support DMA for ISA slots, so I can't use DMA.

The  documents you found leave me with the impression that the board will use DMA only if it is configured to do so. My question involves the ability of the original applications programmer to code the application with the assumption that DMA is available, so that the application will not work without DMA.

 

0 Kudos
Message 3 of 5
(3,183 Views)
Solution
Accepted by topic author JBinTex

Hi JBinTex,

 

It's likely that this will be handled at a low-level, and that the software will not be affected. There is potentially a boolean that needs to be set/reset on the initialize function. Do you receive errors when you run the code?

0 Kudos
Message 4 of 5
(3,169 Views)

Thanks for your help, Courtney. I think I'm good on the DMA question for now - if you are interested in details, keep reading.

 

The card is in one of a couple of dozen systems running under OS/2.  I am helping an associate who has a customer who is interested in porting to EcomStation, which I believe is based on the OS/2 kernel. The older systems are using the NI version 1.2 handler for the AT/TNT, but I was unable to get the driver to "see" the card under EcomStation. Version 2.2 does see it though, and ibtest comes back successful.

 

The application communicates with two external devices, at GPIB11 and GPIB13, but upon initialization it only sees one of them (GPIB13).

In the process of trying to get the card to work, though, I had noticed that the Motherboard does not support DMA for ISA slots, so I disabled it.

I have since verified that DMA can be turned off on one of the existing, working systems with no problems, so I am no longer chasing DMA as an issue.

 

So in summary, I think you are right, DMA is being handled at a lower level. You asked about errors, and yes, there is an error, but it is coming from the application, with no GPIB-speak. It just says one of the devices is not found.

 

 

0 Kudos
Message 5 of 5
(3,164 Views)