LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

PCI-DIO32HS misbehaving clock solutions?

We have a PCI DIO32HS board which is giving us all sorts of grief in trying to
generate a simple strobing signal. The timing isn't super-critical. We just
need a reasonably regular square-wave strobe. Now, we are using all 32 regular
I/O lines for data. So I need to use the handshaking control lines. No
problem, they were designed for that. But I'm running into problems.

After some conversations with NI, they confirm that the primary clock out
signal generated on a 32-bit hardware-strobed I/0 operation is supposed to be
on REQ1. So, I attempted a 32-bit strobed transfer. It was giving only
intermittent successes. So I looked at the REQ1 line with a scope. What I saw
was a pulse train rather than a square wave, and further
more the pulses
intermittently only went to the logic threshold (1.4v) rather than to the
positive rail! So either we're not getting a good clock, or NI is giving me
bad info about which line supplies the internal clock.

So then I tried to do the operation via unstrobed I/O, generating strobing
signals on Port 4 using software. But Labview (6.0) doesn't seem to want to
let me access Port 4. All the VI's for DIO expect a channel control input, and
if I create a channel control, it won't let me set the value to 4, and it
won't accept a numeric-constant 4. So I can't seem to access Port 4 (which the
DIO docs claim you can do if running unstrobed I/O) to send a software strobe!

I called NI tech support and they confirmed this behavior but were as
mystified as me as to why or what to do about it.

So, does anyone have thoughts on a) why the signal on the internal clock is
looking so bizarre, and b) what I can do to output to Port 4 using unstrobed
I/O in Labview 6.0?

Thanks.


Alex Rast
arast@inficom.com
arast@qwest.net
0 Kudos
Message 1 of 2
(2,646 Views)
Alex

You are correct in that the REQ line will have the clock signal on it when doing Pattern I/O and using an internal clock. The pulse width of the clock is dependant on the timebase you are using. The period of the clock is dependant on the timebase and the timebase divisor. Take a look at the example below on how to change the pulse width. Use a timebase of 100 and a timebase divisor of 2 to see if you get a good signal from your REQ line. By using these values, you should have a clock period of .02ms and a pulse width of .01ms.

When you're not using Handshaking, you can use port 4 as general I/O. (4 lines for input and 4 for output.) You do not use the normal port vi's that you've been using. Instead use the 'Write to Digital Port' and 'Read to
Digital Port' vi's. Set the Channel to 4 and the port width to 4.

I hope this info is helpful.

Brian
0 Kudos
Message 2 of 2
(2,646 Views)