Search the Community

Showing results for tags 'triggering'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • News
    • New Users Introduction
    • Announcements
  • Digilent Technical Forums
    • FPGA
    • Digilent Microcontroller Boards
    • Non-Digilent Microcontrollers
    • Add-on Boards
    • Scopes & Instruments
    • LabVIEW
    • FRC
    • Other
  • General Discussion
    • Project Vault
    • Learn
    • Suggestions & Feedback
    • Buy, Sell, Trade
    • Sales Questions
    • Off Topic
    • Educators
    • Technical Based Off-Topic Discussions

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 6 results

  1. I build radar systems for a living, and I'm testing the Analog Digilent 2 as an A/D, timing control for other RF hardware, RF switch control, trigger source. Here's what I need to do: Write the software with python using the Waveforms SDK running on Windows 10. Acquire signals on 2 analog channels simultaneously. This must be triggered at a periodic rate on an input other than the two analog in channels. Generate a pulse width of p nanoseconds at an x kilohertz rate. This is a TTL signal. This pulse is used for RF pulse generation, but also as a trigger for the analog channels. All digital out signals must be synchronized. Capture n samples on both channels for a maximum of 256 triggers. Typically 128 or 256 is used -- a 2^n number of triggers is used for FFT processing. Capture to arrays (or lists in the case of python) must be real time. Rearrange the lists so that an FFT can be taken from the ith sample of each trigger event. So if I have 128 trigger events, and I capture 1024 samples on each event, then I take 128 values from index 0 of all trigger events and compute a complex FFT. Then I repeat for index 1, 2, … 1024. In radar terms, each sample relates to a range value. If sampling at 80 MSPS, each sample equates to 2 meters of range. So 1024 samples = 2048 meters of total range. The complex FFT computes the Doppler frequencies seen for each of those sample range points. Progress: A. I have successfully used the example SDK program named Digital_Duty.py to generate a x kHz pulse rate with p width in nanoseconds. I modified it to continue doing it until the program is terminated. The test values are 4 kHz pulse rate (trigger rate) and the pulse width is 300 nanoseconds. The output is on DIO Channel 1. The AD2 works great at this. B. I have successfully used the example SDK program named AnalogIn_Trgger.py to acquire signals. I modified this source to: digitize Channel 0 and Channel 1; trigger on an External Trigger, which is now the inputted by placing a jumper wire between DIO Channel 1 and Trigger 1 Channel; Continue to trigger for 128 times; Plot last set of data. C. I am using a 10 MHz and 20 MHz signal on Channel 0 and Channel 1, respectively. This is correctly plotted by the application. D. I was delighted to see the code was working...or so I thought. I added a time check to confirm 128 triggers were completed in the appropriate time. The time check came back as 0.156 seconds for 128 triggers of 1024 samples. The answer should have been (1/4000)*128 = 0.032 seconds. So my capture time was almost 5 times too long. I confirmed that even with two pulses the system cannot transfer fast enough. And even if I get down to 10 samples per trigger, there is little change in timing. I computed that the fast PRF (trigger event speed) = about 850 Hz. There is still some unexplained overhead time, but it is close to that number. So keeping under 850 Hz, the system is real time. Unfortunately, that equates to about 14 mph at usable radar frequencies. I need to get up to about 4000 Hz to be of use. See my attached Code written in python. I am using a Windows 10 Pro laptop running an i7 processor with 64 GB of RAM. I have the AD2 plugged into a spare USB port. 10 and 20 MHz signals feed the analog channels from a crystal oscillator as a test of the capture. I have available external waveform generators, oscopes, and spectrum analyzers. So given my test in D, does anyone know what I can do to improve performance? Is there something wrong in my code? Am I misunderstanding the capabilities of the AD2? If the system had a USB 3.0, I know it would be able to keep up. But given that is not available, what should I try if anything? Radar Data Capture With Internal Trigger.py
  2. Hello again! I'm trying to use the AD2 to act as both a signal source (wavegen1) and a measurement (scope1) device for the purpose of tracking conduction delay of the signal. Currently, I simply have the wavegen1 connected directly to scope1 with 3 cycles of a sine wave being put out. I am aware of the measure command to find the maximum on my scope1 but I was wondering if there was a way to find N (3 in my case) maximums AND find the corresponding times with respect to the timing of wavegen1? I plan to assume the timing of the wavegen1 is relatively accurate to my input frequency and can find the theoretical maximum thus having the initial time from which to subtract from my scope1 maximum times. Code thus far function doPing(){ print("Amplitude and Time Delay Recorded"); // User Inputs var Freq = 5e3; var Amp = 1.0; var N = 3; // WaveGen Settinngs Wavegen1.Synchronization.text = "Synchronized"; Wavegen1.States.Trigger.text = "None"; Wavegen1.States.Wait.value = 0; Wavegen1.States.Run.value = N/Freq; Wavegen1.States.Repeat.value = 1; Wavegen1.Channel1.Mode.text = "Simple"; Wavegen1.Channel1.Simple.Offset.value = 0.0; Wavegen1.Channel1.Simple.Amplitude.value = Amp; Wavegen1.Channel1.Simple.Frequency.value = Freq; // Scope Settings Scope1.Trigger.Trigger.text = "Repeated"; Scope1.Trigger.Type.text = "Auto"; Scope1.Trigger.Source.text = "Wavegen 1"; Scope1.Trigger.Condition.Text = "Rising"; Scope1.Trigger.Level.value = Amp/2; // Start instruments Scope1.run(); wait(0.1); Wavegen1.run(); // Measure var maximum = Scope1.Channel1.measure("Maximum"); print(N+" Max: "+maximum+" V"); //Want to do for 1:N and get time and amplitude with relation to time zero being the zero of the wavegen //Close out instruments Scope1.stop(); Wavegen1.stop(); } if(!('Wavegen1' in this) || !('Scope1' in this)) { throw("Please open a Scope and a Wavegen instrument"); } doPing();
  3. Hello, I think the latest waveforms software is fantastic. However, I still have a problem with triggering, specifically protocol triggering. In the enclosed screenshot, I have a UART and OneWire and a SPI protocol decoder. If I choose Simple triggering, everything is ok, but if I choose Protocol-UART-TX-GPIO1 (UART decoder form the Protocol selection button pull down menu) then the OneWire and SPI decoders trigger-selection-arrows switch too! What I would like is that I can only choose the UART OR only the OneWire OR only the SPI decoder as suggested by te Protocol selection button pull-down menu. So I can see where I am triggering on. Am I right? or is what I ask impossible? Thanks in advance, Hans.
  4. I seem to be having trouble getting the AD2 to trigger on a repeated pulse. If I trigger on the edge of DIO 7 then it triggers OK (see logic_trigger_simple), problem is that power up sends spurious signals sometimes and so I'm tring to pulse on the counter. I have the counter set up as the other screenshot but it just will not trigger like that. There is no reset so I've set reset to DIO 15 which is unused and tied to ground. How can I get this to trigger on the number of pulses. Also, in the protocol triggeringl, is there any way to trigger on a sequence of hex values, rather than just one - if not in the main software - can this be done with the SDK? Thanks, Matt
  5. Hi, I am working for an instructional laboratory where we have a number of the Analog Discovery devices that we are using as oscilloscopes. Our primary issue is triggering? We have some experiments that require at least three scope inputs and a waveform generator. We are trying to get two of the devices to sync nicely with each other using the in/out triggers, to trigger two scopes simultaneously. Much to our surprise, we found that the wavegen trigger out, is simply high when running and low when it is not as opposed to the standard TTL sync out found on most devices. Is there anyway to have the trigger out signal be TTL, similar to the Sync Out of a standard function generator? Alternatively if there is a way to make a single device act as a four input scope, that would satisfy our needs as well. Thanks
  6. Hi, I have an analog discovery with the 2015 firmware, 3.2.6 on a 64bit machine. I need to trigger on a waveform(a good solid edge, like a reset deassert), then zoom in on a glitch about 450ms post trigger. By "zoom in" I mean expand the timebase so I can see the nature of the glitch. With the single timebase setting, there is inadequate granularity to see what might be going on. See attached pic. Can analog discovery do this? If so, how? if a different product is needed, please suggest it. thanks, tim