Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Synchronize two analog outputs with different sample sizes and rate of outputs

I am using a PCI 6321 to run a scanning microscopy setup and would appreciate some advice on a technical issue with timing the DAC for acquisition (output).

 

I have a problem synchronizing two different voltage outputs from the PCI 6321. I need to use an external clock running at ~5 kHz, meaning that hardware timed single point is not a good option since it tops out around 2 kHz (I am also not using a Real Time OS). The waveform that AO0 will output is 200 samples long and will repeat. Every 200 points from AO0, I want AO1 to output the next point of its waveform and hold this value for the next 199 points that AO0 outputs. In other words, AO1 changes 1/200 as quickly as AO0. AO1 will also output 200 unique voltages.
 
Since 200 x 200 = 40,000 unique pairs of output voltage points, the onboard memory is insufficient to hold all of the points. I tried using regenerative output, but then there is no way to make AO1 change on every 200 clock cycles while AO0 changes every clock cycle (I think). Is there a clever way to do this with just uploading the 200 points to each AO channel and then making them step separately? I understand that all outputs use the same clock, but there is an integer relationship between how many clock cycles they each need before they are each changed.
 
Alternatively, I could break the output up into 10 batches, and upload 4000 points onto the on-board memory at a time. However, I worry that the time it takes to upload each batch is longer than the 200 microseconds I have in between when I need AO0 to change. Is this the case? Or is 200 microseconds sufficient to upload and start outputting the new set of AO points?
0 Kudos
Message 1 of 1
(107 Views)