Signal Generators

cancel
Showing results for 
Search instead for 
Did you mean: 

5412 Streaming or DMA Access

I'm trying to implement streaming of a signal to a NI-5412 Arb Gen. Basically the signal don't fit in to the on-board memory.
So, naively I thought I could use one of the examples suppiled with NI-FGen 2.4, "Fgen Arb Waveform Streaming.vi", and base some code on that.....

However, I can't seem to get is working, and the documentation doesn;t point to any solutions...
The VI fails with the following error message:


Error -1074135028 occurred at Property Node (arg 1) in Fgen Arb Waveform Streaming.vi

Possible reason(s):

Attribute ID not recognized.

The parameter its complaining about is "Streaming Waveform Handle" (Label 5 in the enclosed picture)

Failing this has anyone written any DMA acces code for the Arb Gen. If this is even possible?
0 Kudos
Message 1 of 4
(7,492 Views)
Hello Shepness,
The NI-5412 does not support streaming, that's why the example doesn't run.
The NI-5421, NI-5441, and NI-5412 are higher end product that do support streaming.

Good luck!
Marcos
Marcos Kirsch
Chief Software Engineer
NI Driver Software
0 Kudos
Message 2 of 4
(7,476 Views)
I am facing the same problem.

The example cannot run because 5412 does not support 'Streaming Waveform Handle' and the 'Space Available in Streaming Waveform' property.  I modified the example to write data to 5412 without using the 'Streaming Waveform Handle'. I had to set the write position to the start of the waveform buffer with 'niFgen Set Waveform Next Write Position.vi‘ each time I reach the end. The bandwidth of the PCI bus is enough even for 40M Samples/Second according to my experiment. The only problem left is, without 'Space Available in Streaming Waveform', there is no equivalent property can tell me how many samples were generated, and when should I write the next block.

One solution I imagined is to use the marker to generate a pulse with each block of data. The pulse can then be counted with a DIO, or Counter, or even a PIN on LPT port. Thus I can know how many block of data was generated and whether there is enough available for next block. This solution is a little complicated, and I haven't tested it yet.

0 Kudos
Message 3 of 4
(7,002 Views)

Hi Weijin

 

I hope you're having a good day. I've been taking a look at this issue, and I think the idea you suggested sounds like it could be feasible, generating a pulse every time data is generated. Is there any chance you could post your modified version of the example VI? That way I can take a look at exactly what you've done so far and may be able to offer some further suggestions on ways to get round this problem.

 

Kind Regards

Jeremy T
Technical Marketing
NI
0 Kudos
Message 4 of 4
(6,953 Views)