Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

delay between lines on 6008 output port?

Is it possible to set up a delay between two lines on an indvidual output port?

 

I have a USB-6008 OEM. It has been set up so that port 0 line 1 drives a clock line to a shift register on a UUT, and port 0 line 2 drives the serial data line to the same shift register. I need to account for a set-up and hold requirement on the shift register. Right now the data and clock edges line up on top of each other - the hold time for the data = 0 with respect top the clock edge. The software only seems to have the capability to write to the entire port at once, I can't see how to generate a delay on one specific line. Is this doable?

0 Kudos
Message 1 of 6
(3,872 Views)

You just need two writes to the port.  Assuming P0.1 and P0.2, you first write 0x02 and then write 0x06 to the port.  I am pretty sure the 6008 only has software timed DIO.  So your timing will not be exact.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 2 of 6
(3,870 Views)

Thank you Crossrulz,

I was considering that if there was no delay control on the lines. Is it safe to assume then, that once the 0x02 is written that the subsequent 0x06 write will not toggle or glitch line 1? (I guess I could just try it....Smiley Happy )

0 Kudos
Message 3 of 6
(3,867 Views)

Turns out not to be an option. We need to write serial data streams, so having one cycle to write data then one cycle to and clock (and the previous data) means doubling the whole write cycle. This is turn causes other timing dependencies in the system to fail. We either need to find an NI module that allows delays on specific port lines or insert a hardware delay (such as cascaded buffers). We're going for the latter. 

 

0 Kudos
Message 4 of 6
(3,852 Views)

You really should be looking into a high speed DIO board.  That way you can create digital waveforms and clock them out at a specific rate.

 

Another alternative is to use an FPGA board to do the DIO at a high rate.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 5 of 6
(3,845 Views)
6008 is definitely the wrong tool for the job if you're looking for reliable and accurate timing.
0 Kudos
Message 6 of 6
(3,823 Views)