NI-6534 driver configuration problem

Greetings.

I've been trying to get an NI-6534 working for streaming digital acquisition. 
 As far as i can tell, the necessary modules are loaded:

$ lsmod
Module                  Size  Used by    Not tainted
ni_pcidio               5952   0 (autoclean)
mite                    4756   0 (autoclean) [ni_pcidio]
8255                    3776   0 (autoclean) [ni_pcidio]
comedi                 25108   0 (autoclean) [ni_pcidio 8255]

Running demo/info gives the expected:

$ ./info
overall info:
   version code: 0x000745
   driver name: ni_pcidio
   board name: pci-6534
   number of subdevices: 1
subdevice 0:
   type: 5 (digital I/O)
   number of channels: 32

   max data value: 1
   ranges:
     all chans: [0,5]
   command:
     start: now|int
     scan_begin: timer|ext
     convert: now
     scan_end: count
     stop: count
   command fast 1chan:
     start: now 0
     scan_begin: timer 50
     convert: now 0
     scan_end: count 1
     stop: count 2

Running demo/dio looks fine:

$ ./dio
configuring pin 0 for output...
toggling pin 0 rapidly...

But running demo/cmd hangs after this:

$ ./cmd
command before testing:
start:      now      0
scan_begin: timer    1000000
convert:    now      0
scan_end:   count    4
stop:       count    1000
first test returned 0 (success)
start:      now      0
scan_begin: timer    1000000
convert:    now      0
scan_end:   count    4
stop:       count    1000
second test returned 0 (success)
start time: 1109643988.465449

That's the first sign of a problem i found.

I slapped together a quick program to create what i expect to be an 
appropriate command for this board, and then run it through 
comedi_command_test() to correct any blatant parameter mistakes.  For some 
reason, comedi_comand_test() makes no modifications to my command, regardless 
of the flags and arguments i use.

I've retraced my steps from a year ago when i got Comedi running with a 
PCI-DAS6402, so i think i've got the drivers installed correctly.  I suspect 
that the driver is not loading properly, or maybe i'm loading the wrong 
driver.  Either way, i don't understand why the info program detects the board 
properly, the dio program runs fine, but the cmd program hangs.

I came across this unanswered post from two years ago:

Date: Fri, 14 Feb 2003 16:17:50 -0500
<snip>
I did as you suggested without attaching PCI bus and slot number.
After that, 'comedi_get_driver_name()'  outputs 'pci-dio32hs' for
'dev/comedi0' and 'pci-6534' for 'dev/comedi1'. So it looks like both
driver are recognized. But if I run /demo/cmd, program hangs for
''dev/comedi1" but works fine for "dev/comedi0".  So program doesn't work
with 'pci-6534'. Any  idea ?
</snip>

1.) Am i using the wrong driver (ni_pcidio)?

The machine i'm testing with also has another NI card in it that does not use 
the Comedi drivers.

$ lspci
( . . . )
02:01.0 Communication controller: National Instruments: Unknown device d260 
(rev 01)
02:02.0 Communication controller: National Instruments PCI-GPIB (rev 01)
02:0c.0 Class ff00: National Instruments: Unknown device 12b0 (rev 01)

2.) Could this be a conflict between cards?

I also came across this post:

Date: Mon, 20 Aug 2001 21:03:02 -0700
From: David Schleef <ds_at_schleef.org>
<snip>
> I need to be able to pick up 16 bits from ports A0 - B7 and stick them in an 
> array at speeds upwards of 30+ MB/s.  Any Ideas you'd like to toss at me?

You'll need to do some driver hacking, since the ni_pcidio driver
doesn't understand DMA yet.  Without it, you're stuck.
</snip>

3.) Has DMA support been added for the PCI-6534 in the last 3.5 years?

I would appreciate any help with this, as i am completely stuck.

Thanks in advance.

William Mallard.

Received on 2005-03-01Z03:45:16