Bipolar analog output timed sample clock Glitch on zero

With the help of a card PCI-6221, calling in the DAQmx 8.6 with a stand-alone C application DLL.

I create and fill a buffer as follows:

volts1 float64 [2048];

for (int x = 0; x)< 2048;="" x++)="">

volts1 [x] = (-0.320) + (x * (0.640 / 2048));

}

My task is created and began as follows:

TaskHandle t;

DAQmxCreateTask ("WaveTask", &t);)

DAQmxCreateAOVoltageChan (t, "PCI-6221/ao0", NULL,-5, 5, DAQmx_Val_Volts, NULL);

DAQmxCfgSampClkTiming (t, NULL, 30000, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps, 2048);

DAQmxWriteAnalogF64 (t, 2048, false,-1, DAQmx_Val_GroupByScanNumber, volts1, NULL, NULL);

DAQmxStartTask (t);

DAQmxWaitUntilTaskDone (t,-1);

DAQmxStopTask (t);

DAQmxClearTask (t);

The foregoing, less creating and by disabling the task runs in an infinite loop.  It generates a very good approximation of a rising wave of saw (see complete.png).

Unfortunately, when you zoom in on the time axis, a glitch becomes apparent to the point where the wave crosses zero (see glitch.png).  The glitch, as shown, is about 80 mV in amplitude and 2.5 U.S. (microseconds) in duration.

It is very short, but could be the source of trouble.  Is there something that can be done programmatically to fix it, or makes it look like a hardware problem?

Thank you very much!

~ Brian

If you see the Specifications for the PCI-6221, you will see that there is a specification on page 3 of the energy of glitch on the analog output of this Committee.  It is a result of the CAD on the tray and is not something that can be corrected in software.  The specification is:

So what you see is under the specification, so your advice is really better than the spec run.

Hope that clarifies,

Tags: NI Hardware

Similar Questions

  • Generating analog output signals 4 with different frequencies

    Hi all

    I was trying to say to generate 4 different signals at different frequencies

    1. first waveform is a sine wave with 5000 Hz,

    2. other with 8000Hz,

    3. third, one is a square with 25 Hz waveform and

    4. fourth one with triangular waveform 50 Hz

    all waveforms must be generated simultanoeusly.

    I tried to generate with the task unique analog output and sample clock (clock rate is 100000). Cross in scope that I see only 5000 and 8000 Hz we generated correctly and the rest two waveforms show the incorrect frequency.

    I guess that's due to the frequency of high clock to sample for more low frequencies for ex 25 Hz and 50 Hz. If I reduce the clock rate to get the lower frequencies properly so I can't generate frequencies higher correctly. (there's a clsh between frequencies and the clock frequency)

    Is it possible to use DAQ board master sample clock and its magnitude downward revision (everywhere where it is necessary for each waveform separately) to generate all the signals at different frequencies at the same time in a single task?


  • the time of acquisition of data - how to calculate the rate of analog output

    I want to calculate an acceptable rate of analog output, one that is taken in charge by material (PCIe6353), without the rate being changed by the VI DAQmx Timing (sample clock). The final objective is to have a rate of analog output that is an integer multiple of the analog input for precise frequency, since the sinusoid AO's amplifiers, which have a ringtone when AO updates occur.

    According to 27R8Q3YF of the knowledge base: how the actual scanning speed is determined when I specify the rate of scanning to My d..., the rate is revised as needed by calculating the rate of clock / asked for advice, divide the result rounded downwards and upwards in the clock of the Board and use the one that is closest to the requested speed.

    If 'Embedded clock' is selected, which is the result "Council clock.  DAQmx sample clock timebase Timing node - SampClk.Timebase.Rate says 100 ms/s. However, for a rate resulting from the update of 2.38095MS / s, the divisor of the time base timing node - "SampClk.TimebaseDiv" gives a value of 42. 42 x 2.38095 M = 99, 999, 990, where it should be 100 ms/s.

    How to calculate an acceptable rate of analog output is supported by the hardware? I have other plates, in addition, a general method would be appreciated.

    I haven't worked all the details yet but noticed a few things that may be relevant.

    Req AI rate isn't a whole ditch 1E8. It is used to determine the rate of the AO.

    There is no check to ensure that the rate of the AO is an integer division.

    It seems that you have the right idea, but the implementation is not yet there.

    Lynn

  • Synchronization of analog and digital output with the external sample clock

    Hello

    First of all sorry for my English, I will try to explain what I want to do.

    I want my PCIe-6321 to send two custom signals (modification sawtooths) on a mirror controller. I would also like to generate output with my card at the beginning of each tooth of saw. Everything must be synchronized with an external k-clock signal of 100 kHz. The idea is that whenever the PCI receives a trigger to external clock, it sends two analog output voltages and when he received 1024 clock ticks it will also send a pic of triggering TTL. What I do is first prepare the map and after that in a loop sending and modifing the output values of the two signals and at the same time send a digital signal Boolean in each arch, so when's done it 1024 iterations of the loop I send an event to the digital port. Attached you can see.

    The problem is that I don't know how to synchronize both. Can I use the sample clock just to the analog output? I can use sample for the two outputs clock, or do I need to use the output of the meter? If don't know how to use it here.

    If I do nothing else bad/wrong, I would be grateful for feedback.

    Thanks in advance,
    Pablo

    I don't know how but I find the solution. I'm generating more than a positive value (as I was triggered maybe very fast the oscilloscope has been absent there). If I put the sample clock of digital output to use the sampling/ao/Dev1 clock that it doesn't, but if I put to use the same source as the OD (terminal where my external clock is connected), but the trigger to start the DO to be Dev1/ao/StartTrigger this works. I don't really know why, but it does.

    Thank you for your patience and your help. I put here the final code.

  • 6259 analog integrated Output error with the sample clock

    I run into some problems outputing a sinusoid of analog output with my acquisition of data using the sampleclock aboard. At one point, I was able to get the vi works pretty good and repeatable. When revisited however, I started to see error that the driver could not provide the unit with the points quickly. I was running at 250 k 1 k sampling rate a tone to one, but it seems only to be able to get about 20 k, sampling frequency. This creates a pretty rough signal, expecially when the rate fell to 8 k. I produce only 1 second of data.

    See attached bmp. The I/O moved references aren't channels of tasks. Could be the problem? I'm a little frustrated because he has to be a very simple to create vi and I'm having all sorts of problems with it.

    Hi klessm1,

    I want to stress that the behavior you're seeing is atypical - under normal circumstances, DMA transfers must take place fast enough to keep the data in the FIFO embedded permanently until at least the max (2.86 MHz single channel) sampling rate.  After saying that the error you receive indicates that we get no data for the 6259 fast enough for some reason - there are a few options at this point, it should get you operational:

    Remove the need to transfer data to the device.  As Sarah suggested, you can do so by regenerating the on-board FIFO.  The FIFO output on the 6259 is 8 191 samples (shared between the channels), so if you build a periodic signal and this is a sufficient number of samples to characterize a period then this should be a viable option.

    Try using interrupts instead of DMA.  This may seem paradoxical since DMA is generally the fastest method of data transfer on our DAQ hardware, but something rings the Bell with the DMA transfer from your computer to the 6259.  I imagine that you will actually have a faster rate using interrupts if that is the case.

    You can configure the appliance to use only the quantity of memory onboard or interruptions using a channel property node DAQmx (Analog Output > General Properties > advanced > memory and data transfer)

    Implement a delay between the start of the task and the first sample.  If the problem is with the first DMA transfer latency (and not the total throughput on the PCI bus), then adding a delay before attempting to write the first sample should solve the problem.  Some motherboards have been found to have a latency higher than the others (so the question of Sarah #3).

    You can configure the delay with the property node Trigger DAQmx (start > more > Delay / delay units).  This applies even if you do not explicitly have a configured start trigger.

    I think the three above are good ideas to try depending on what you need exactly.  I would also check for updates to the BIOS available for your motherboard that could address the issue (but it would be something that the manufacturer would be more known).  I hope this help - made - know us how it goes!

    -John

  • Buffer the output AO, refresh rate is different from the sample clock frequency

    Hello

    I am an AO output in the buffer using a single channel. I have a stamp with a ripple of 200000 points with a triangular waves of a 1000pts each repeated 200 times. If I want a frequency of 1 Hz, I simply update this waveform 1000pts and if I wanted to 5 Hz, then 5000pts and so on. But there is some frequency that I won't be able to use like the refresh rate (the number of samples that I ask to update) is different from the sample clock frequency, which makes synchronization with the other difficult to trigger (incomplete cycle).  Frequency 3 Hz (update 3000pts), as (update 7000pts) 7, 6 Hz (update 6000pts), 9 (update 9000pts)... 11Hz at 15 Hz and is not valid in the sense that the refresh rate is different from the sample clock frequency. That makes a whole lot of inaccessible CONFIGURED!  Can someone tell me what determines the banned frequency?  Is this something to do with the material?

    concerning

    One thing you can try is to change the number of samples per cycle. This cannot give the precise frequency accurately, but can reduce the average error.

    120 Hz, the error is currently about 400 parts per million (ppm). The accuracy of the time base is 50 ppm, then this error is less than 10 times the inherent error due to the time base.

    Consider this configuration: the closest nominal sampling you rate, you can get is 120048 Hz (1000 samples per cycle at 120 Hz). If your buffer contains 1200 samples per cycle, 100 copies of it would produce 1 second of data to 120,048 Hz. But if the buffer contained an average of 1200,48 useful Samper by cycle, you get the exact frequency.  Of course getting 0.48 of a sample is delicate. But the kind of feasible. If you use 48 cycles in the 1201 samples per cycle and the cycles of 52 to 1,200 samples per cycle, the total number of samples per second = 120048. Average frequency will be exactly what you want. Instantly, the frequency is slightly higher or lower than the exact value.  By an alternation of 1200, 1201, 1200, 1201... 1201, 1200 100 cycles that the Jig is fast.  If you group all 1200s whole and all 1201 s frequency hopping may be more sensitive.  If this kind of jitter is acceptable depends strongly on what you do with the release.

    This technique is used in some systems of frequency synthesizer.

    Lynn

  • Generate analog output with the software "Timing" on 6009

    I see that the 6009 does not support the synchronization of the internal clock.  We need to generate an analogue waveform which changes very slowly, it performs a cycle every 10-20 minutes.

    I saw an old post on the use of calendar software, but can not find a way to do this using SignalExpress.

    Any ideas or references to examples of messages, etc. are greatly appreciated.

    Analog output clocked by the software (DAQmx) in SignalExpress

    I hope this helps.

  • Sampling frequency of adjustment for the analog output of sine

    Hello

    I tried to do something very simple: using an analog output card PCI 6221 to produce a frequency 50 Hz sine curve. For this I used a Vi to create a curve sinus and different screws DAQmx. But I have trouble understanding the principle of virtual channel and I think I do an error of adjustment of the sampling frequency and number of samples: once for the vi, second time sine "DAQmx - synchronization. Can I use the same values for both of these screws?

    On my oscilloscope, with frequency = 50 Hz and the sampling frequency = 1 kHz, I get a null signal. Then according to two values, I'm differently evaluated signals. For example, with f = 1 Hz and sr = 10 kHz, a frequency 0.7 Hz sinus.

    Make sure that the start for the analog input task occurs after the analog output.  By plugging in the wrong thread to an analogue output start task first, and then to the start task, you guarantee that the AI cannot start until after the startup of the AO.

  • Strange analog output of USB-6211

    I just got USB-6211 to replace USB-6001 to set the clock to external sampling on analog output for LED lighting control. The part of external clock example works fine, but the analog output voltage is strange. To do self-monitoring, I connected control pin LED to AO0 & AI0 of surveillance in the NI MAX test panel and LED control on the ground at AO - GND & GND HAVE since I have both USB-6001 and USB-6211, I conducted tests on two of them with the same setting of wire. When I generate sine wave - 5V to 5V to AO0 (from NI MAX test panel), USB-6001 can monitor the same signal AI0, but watch USB-6211 - 3, 4V to 3.4V voltage truncated. I did the test separately (wiring one device at a time), so there is no interference between the two devices. USB-6211 past self-calibration and self-monitoring. Also, I did reset devices. I don't know why they would behave differently with the same configuration, and I hope that someone could help with this question. Thank you.

    Hi skuo1008,

    The USB-6001 can support + / 5 output current my from terminals to analog output, while the USB-6211 box can provide only +/-2 my current output.  It is likely that the load impedance is too low, causing the 6211 to hit its current compliance and thus cut the tension.  If you try to exchange your load with a resistance of at least 5 v/.002A = 2500 Ohms, you should be able to see the full +/-5V sine wave.  I suspect that your DUT has a words 3.4V/.002A = 1700 Ohms impedance.  You could use a device with higher output current or use a more current source buffer circuit.  If you do not need a bipolar output, you might also consider using digital lines to control the LEDs.

    Kind regards

  • Simple examples of analog output USB-6343

    I've tried passing by 'find' examples and does not know how to find what I want.

    I'm doing a simple analog output on a USB-6343.  Examples of waveforms say they work with the USB-6343, but I really don't want a waveform, just analog of output does not exceed 10 Hz speed of renewal.  Some of the more simple examples show that they work with the pcie-6343 but do not list USB-6343.

    I worked with USB-6009 in the past, but when I try to use an analog output task that uses 1 sample on request, I get the error "not buffered operations clocked by the hardware are not supported for device and channel type.»  Set the size of greater than 0 buffer, do not set up the timing of the sample clock or the value Type of sample On Demand time"

    I tried samples N, 100 samples to write to 10 Hz - the same error.  Samples of continuous - same error.  1-sample - timed HW - same error.

    There is a series of examples of I/O for the X series?  Is it possible to search the device examples rather than go through all the examples and by checking the list of devices individually?

    Is 'size of the buffer' the 'writing samples"in MAX?

    After contacting the support I was provided with the names of the more simple examples for analog i/o:

    Analog output-Gen power Update.vi

    Analog Input-Acq & chart voltage-Int Clk.vi

    They are found in the getting started screen of

    Click 'Find examples' near the lower right corner

    Filter the results to material by clicking on the menu drop down for the material in the lower left corner and selecting USB-6343 (only connected equipment will be displayed)

    Don't forget to check the box "limit results to material" below.

    In the center pane, double-click 'Material Input and Output'

    Double-click DAQmx

    Path for the analog input - double-click Acq & chart analog measures - double click on tension - tension-Int Clk.vi

    Double click on analog generation - double click on Power - Gen Update.vi of analog channel output voltage

    The examples are for the single data point.  Samples and exit multiples are produced by putting the writing or reading VI inside a loop.  The beginning and the clear functions should be out of the loop.

    Additional information, I need technical support was how material-filter results and identification of more simple examples which were not obvious from the examples of names.

  • How to write constantly to analog output and read from analog inputs

    Hi all -

    I had a question about writing continuously to analog output reading simultaneously an analog input.

    It's my first time to post a message to the community, so please let me know if I made mistakes.

    I use Labview 2011 with a NEITHER-DAQ USB 6215.

    I'm looking to generate a waveform and write it continuously in an analog output. It is then connected to an entry on the acquisition of data, where I am trying to sample the analog signal. (I realize, there is a system of trivial, but I'm hoping to build on it once I have run).

    The task of reading from the analog input works fine, as I tested it in several other cases. I have a problem writing to the analog output.

    For this task, I tried to follow the "Gen Cont Wfm Clck Int' VI to generate the wave form and start the task. I then try to write to the output of the analog timed loop. However, it does not seem to transmit a signal and doesn't give me any errors.

    I have attached the VI but also a screenshot.

    Please let me know if anyone has any ideas. I would really appreciate the help!

    Thank you

    Peter Borgstrom

    We will review your tasks one at a time.  First of all, the task of generation/Analog output Waveform.  Generate you a waveform (I'm unsure of your VI if it is a fixed waveform or not) and send it to a defined output function to produce a waveform continuously, using N-channel and samples of N (where you set not these previously).  You should not put this inside has timed loop, as the DAQ hardware has its own clock - if you simply put it in a while loop (with a stop to break out of the loop), the loop will call the function for the first points of N, wait until all N have been taken out, then call it again to another N points (up to what you press Stop).

    Now, suppose that you have the output connected to a load voltage (say a decent resistance).  You can wire the input terminals of your A/D converter through the same load and set up a similar analog input loop, running in parallel (i.e. in its own independent of the OD loop, while loop).  You pourriez start together (with, say, a merged error since the initialization code line loops HAVE and AO become lines of error in "loops of sampling" described above), but you might want to delay loop (a little) the AI so that the OD has a chance to set the voltage before the bed.

    I hope this helps.

    BS

  • How can I check if the counter entry is synchronized with the analog output?

    Hello

    I'm working on an application for counting photons.  I use two channels of analog output on a PCI-6713 card to send a frame model to a set of XY scan mirrors.  I then a photon count unit that emits a TTL signal when the photons are detected as a result of this raster analysis.  I then use a surfboard USB-6211 to count the edges on this TTL signal.

    I have problems that seem due to synchronization problems.  I use the sample AO on the PCI-6713 card clock like the door of my meter on the map USB-6211.  I use a trigger to start digital to analog output and a trigger of arms for the entrance to counter early. Is there a way to check that the analog output and counter entry of start of operations at the same time and are are synchronized?  I basically want to monitor and compare the ao real sample of the PCI-6713 card clock door signal used by the jury of the USB-6211.  I was able to export the sample AO clock and watch it on my oscilloscope, but not the signal from the door of the USB-6211.

    Thanks for your help,

    Brian

    Update... It turns out that there is no problem of synchronization between my meter input and the analogue output.  There was a difference of impedance when I connected my unit of counting photons to my USB-6211.  This caused an error variable count rate.  After accouting for this shift, the problem disappeared.

  • How can I pause and resume the analog output using DAQmx?

    I use a DAQ hardware to produce an analog waveform.  I would like simply to break the output of the wave and then resume where it left off.  I use DAQmx and LabVIEW 2011.

    I've seen examples that use a digital or analog break trigger, but I would take a break in the software only.  How can I do this?

    -Joe

    Hi Joe!

    I spent some time thinking about it and I realized that you can technically use a fundamental mission of the analog output, as you previously wrote that runs continuously. However, the generated output samples are controlled by the sample clock pulses, and can be manipulated to fit our needs "suspension."

    To do this, we will need another counter task that generates a pulse train (see our examples of shipping under material input and output > DAQmx > generating digital pulses > generate dig Pulse Train - Continuous.vi) that stops and starts the user to choose. This can be in another quite VI or controlled by software. We will use this as the task of our output sample clock.

    Then, the task of the AO, wire a constant to the sample clock source and select ' DevX/CtrXInternalOutput"based on the counter that you specified in the task of counter. You will need to choose "I/o name of filtration" and check the box that says "include advanced terminals' and right-click of the constant. See picture attached as a reference. In this way, the task of the AO is constantly running, but it generates only actually all data when the meter running task.

    Let me know if you have any questions!

    Have a great day!

  • poor performance analog output (error 200018)

    Hello.  I have a 6124 SMU Board with controller real time SMU-8102.  the Council is speced to MECH 4 analog outputs. / s (one lane), but I have problems to operate at anything beyond about 500 kech. / s.  I enclose my example below program.  If I put the rate at 500 k, it works.  If I put 1 m, it does not work and I get the error 200018 (DAC conversion attempted before Conversion data were available).  I use the DMA transfer.

    I also tried to increase or decrease the number of samples written by loop (between 50 and 300) and using a loop timed in labview real-time.  That essentially gives the same result (sometimes I get error 200016 instead, "exceeding accuracy onboard device memory").

    Because the controller is a dual core controller that do literally anything else (what I showed is the whole program, nothing else running), I don't know that I have some setting wrong software.  I can't believe that this controller is unable to deal with this card.  Does anyone have any suggestions on what I might try?

    Version of LabVIEW is 2010 and DAQmx version is fairly recent.

    Ok. I thought about it.  Here's an interesting fact.  At the rate of 1 MECH. / s, tries to write to 4096 samples each microseconds 4096 works perfectly well.  But any attempt to write to 4095 samples fails!  4095 course is 2 ^ 12-1.  It seems that DMA was running only transfers of 4 k at a time, so when he got 4095 samples, he was waiting for a sample more start the transfer, but at the time where he got this sample, it was too late.  I changed DataXferReqCond property for "almost complete."  Now, I can write about 150 samples at a time instead of 4096.  Greatly improved!

    Moreover, it would be really good to put in the text of the error message for the error 200018 so that others live several days tearing their hair like I did...

    Thanks for the help

    Daniel

  • Redeclenchables/continuous to a custom waveform analog output?

    Hello

    I try regular output an analog signal using the box USB-6211 and Labview2009. I looked at various examples of waveform, including the retriggerableAO.vi example, but I can't seem to understand how to send a 'waveform' custom stamp (terminology is perhaps the question). In all the examples (including waveformbuffer), I ran across the single waveform, the options are sine, square, etc.  Previously, I posted on this forum looking for hardware suggestions (link here) and explained what I try to do and got the big help. To sum up, I would like to read a 'waveform' from a text file, send it to the usb-6211 buffer and then continue to an analog channel. At the same time, I'll use the beginning of the analog task to trigger a digital signal once per cycle as well.

    I got in what concerns the establishment of the waveform, but am stuck to figure out how to get into the buffer and setting the frequency, etc.

    Thank you

    Gabe

    Hi Gabe,

    Dennis is correct that it will take some room to modify the existing screws to fit your need.  As he says, the Con Gen tension Wfm - Int Regeneration.vi Clk - no example provided with LabVIEW.  In the example, it can be shown that there is a custom VI used to explain the problems that arise when a waveform of a given frequency to a frequency of sampling and outputs analog specified.

    With all that said, it seems you want to read from an existing waveform file that you created and this waveform to an AO output channel.  There are a few things that will be needed to know before proceeding:

    -What is the waveform as you try to output (5000 samples, 10 k, 100 k, etc.)?

    -What pieces of the size of the wave you want output (100 samples at a time, etc.)?

    -you want to again and again, or simply run through once the waveform looping?

    Assuming that you already have the waveform and will only step by step, here's what I would like:

    -break the large waveform into smaller pieces of waveform of standard size

    -import the waveforms in LabVIEW and create an array of waveforms

    -bring the waveform in the example Dennis mentioned previously with automatic indexing enabled on the tunnel

    -Remove the generator of wave functions existing the while loop

    -wire your indexed table of waveform for the data of the VI DAQmx of analog output terminal

    It is possible that you will have to play with the settings of your waveform and timing of your VI, but this should be a good starting point.  Please let me know if something is not clear or if I have misunderstood your original message.  Have a beautiful reast of the day.

    Best,

Maybe you are looking for

  • Qosmio X 770-119 - N2230 driver installed but does not, Bluetooth uninstalled.

    It is a very strange problem. After a reinstall of the Toshiba N2230 WiFi driver while the investigation into a problem connecting WiFi (in uninstalling and reinstalling in Device Manager), I find now that the WiFi card is totally disabled, although

  • Automatic duplex printing

    I can't get my officejet 6480 to automatically duplex, it stays on manual printing two-sided. Can someone explain how to reset manual for automatic printing with?

  • How the face Hermes remains unique to the Hermès watch?

    I know that the watches are preloaded with the software (or firmware, whatever it is), but I wonder how the Hermès watch is capable of holding the Hermes face exclusively, and the other watches are not able to use as well as the face.  Of course, you

  • Satellite P10 554: what does "removable devices" on average of start menu?

    Hello My DVD burner does not work, so I have no chance to install Windows XP from the recovery disks. I tried to boot from external DVD writer, but the device is not recognized. Similarly a bootable USB key. That means Toshiba with "removable devices

  • Windows 7 free

    When the free Windows 7 program will be sent to people registered for it when they bought a new PC in this "window of opportunity lapse of time"? i, e, it was proposed in the months before the official release on 22 October. syd73ney