LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

time reference for analog pulse generation

Hi, i want to create a vi that can send a fixed number of pulses with their duration and amplitude controled by the user. So far i created something that could work but i need a way to measure time so i can use it as a reference for the pulses. For example i set a delay time and the vi would sent 0 voltage until it reaches a certain time and sends the first pulse, then the process is repeated for the next pulse. Also i would like to have a 1ms resolution on this vi. I was wondering if it was possible to make pulses in the range of nanoseconds using some kind of software, not necessarily LabView.
 
Thanks for reading,
Alexis Vega
0 Kudos
Message 1 of 4
(2,987 Views)
 

Hi Coolvar. What is what you are doing in your application is it PWM? For example in a train of 3 pulses does each one has different amplitude or size? What hardware do you have? Here there are 2 things in tat determine the outcome you program and the card you are using. If you are using the card in On Demand Mode, every time your program goes into the loop it will write the value, here the minimum timed loop you can achieve in Windows is 1ms, if you are using Real Time device for example a PXI in RT you can get 1us minimum loop.

 

 

Now if programatically you want really fast loop you need a FPGA device as de R Series Intelligent DAQ Devices or the cRIO, with this you can achieve loops of hundreds of nanoseconds.

 

 

But this Software timing doesn’t mean you can send faster signals here can for example build you waveform (even if it changes faster than 1ms) and sent it to the Analog Output with N samples o continuous, and you feed several point into the DAQ each loop so it will be able to give you the signal that you need.

 

 

Even if you need more accurate signals you could use an Arbitrary Waveform Generators

 

Creating a Delayed, Retriggerable and Finite Pulse Generator

 

Complete Data Acquisition Tutorial

 

Best Regards

Benjamin C
Principal Systems Engineer // CLA // CLED
0 Kudos
Message 2 of 4
(2,943 Views)

Hi BeCeGa, my application is an analog pulse in which I control its amplitude and duration. For example I can send a 1 volt pulse of 100 ms then a 3 volt pulse of 200 ms and then a 5 volt pulse of 50 ms. I made a vi that generates a waveform of what I want to send using a loop tunnel and then sending it at the desired rate but it continuously sends it as if it were a period of the waveform. My aim is to only send one period (the one i made using the loop tunnel) at the highest sample rate of my NI-6025 E card but i constantly get memory underflow error at relatively high sampling rates. Also I would like to know if this kind of vi could work in a FPGA device so that with the latest tecnology I can send my pulse at a nanosecond rate. Thank you for your time and attention. Tell me if you need a copy of my vi for evaluation.

Alexis Vega

0 Kudos
Message 3 of 4
(2,927 Views)
 

Hi Colvar the trouble you are having with the underflow is that you are not generating enough point for the waveform to the card to send. It send 100 per second and you only have 80 so you would have to reduce the time the generating loop takes or create more points than you are creating. Also if you just want one pulse you have to generate the waveform like that with the pulse and everything else in 0 so the card will be constantly writing zeros.

 

To program the FPGA you can do it with LabVIEW but you need the FPGA module. Basically you can program as in Normal LabVIEW but you have to use the pallet specific for FPGA as it doesn’t support floating point. You can find many examples and tutorials in ni.com

 

For example in this link: Developing a PWM Interface using LabVIEW FPGA, you can see how to program a PWM in FPGA.

 

 

Best Regards

 

 

 

Benjamin C
Principal Systems Engineer // CLA // CLED
0 Kudos
Message 4 of 4
(2,921 Views)