05-16-2012 08:52 PM
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?
Solved! Go to Solution.
05-17-2012 05:36 PM
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,
05-17-2012 07:05 PM
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.
05-18-2012 03:29 PM
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?
05-18-2012 04:05 PM
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.