- From: William Mallard <wjm_at_berkeley.edu>
- Date: Mon, 28 Feb 2005 19:45:16 -0800
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