02-02-2016 10:57 AM
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?
02-02-2016 11:14 AM
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.
02-02-2016 11:25 AM
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.... )
02-02-2016 03:02 PM
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.
02-02-2016 04:37 PM
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.
02-03-2016 01:32 PM