LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

DMA host to target synchronization

Solved!
Go to solution
I am using two host to target DMAs to generate two arbitrary waveforms to be output on anAO module.  I want these waveforms to be output at the same time, but it appears as if one of the waveforms leads the other by several micorseconds.  The two waveforms are in two separate arrays, passed to the DMA.  It appears as if the lag is on the host side.  I've attempted using the timing loop with the synchronization vi and adjusting the offset of the timed loops, but that seems to increase the delay more, or have not effect.  Is there a way to get these DMAs to start passing the data at the same time? 
0 Kudos
Message 1 of 4
(3,163 Views)

Hi Peter,

 

Good question. I am thinking that this may be possible using occurrences. Just before we want to write to one of the fifo's set the occurance so that the second fifo could write as well. However this may still cause a lag. As of yet there is no way to purely trigger Fifos. If they are in the same loop they should happen relatively at the same time. I will try to use occurances tomorrow, time it and see if they come back synchronously.

National Instruments
RIO Embedded Hardware PSE

CompactRIO Developers Guide
0 Kudos
Message 2 of 4
(3,133 Views)
Solution
Accepted by topic author Peter1111

Peter

 

What you can do is pack the two waveforms into one DMA and parse then at the AO.

AO's typically use I16s to represent the waveform data and the DMA bus is U32. 

 

Use the join number to combine the two waveforms, then DMA the composit signal, then at  the AO use split numbers.

 

I have used this succesfully with good results.

Visualize the Solution

CLA

LabVIEW, LabVIEW FPGA
0 Kudos
Message 3 of 4
(3,124 Views)

Thanks, the "DMA stuffing" did the job. 

0 Kudos
Message 4 of 4
(3,116 Views)