Jump to content

attila

Technical Forum Moderator
  • Posts

    6,473
  • Joined

  • Last visited

Everything posted by attila

  1. Hi @Alchematic For this the sign needs to be changed to: mag[i] = mag[i]+10.0*log10(i/c)+30;
  2. Hi @Alchematic With averaging use Execute: Manual and use Save to execute the script. Setting the magnitude generates an internal signal similar to adjusting an option and the averages reset, so setting magnitude automatically for each acquisition will prevent averaging to work. I've changed this behavior for the next sw version.
  3. Hi @AnSp You have in private message the software version for ADP3X50 and armhf which supports these newly added functions.
  4. Hi @reddish The sample averaging is happening in the device.
  5. Hi @tdeball The ADP3X50 stores the averaged samples of 16bit at 4th or less than the system frequency (50-125MHz). For any device additional capture Averaging and Oversampling is available in the WaveForms application Scope interface under the Time settings.
  6. Hi @Alchematic This is what you need ? var mag = Spectrum.Trace1.magnitude; var c = mag.length; for(var i = 1; i < c; i++){ mag[i] = mag[i]-10.0*log10(i/c)-30; } Spectrum.Trace2.magnitude = mag;
  7. Hi @Rolf_K I don't know exactly how do you want to measure it but with Spectrum you can use the Logging view or Script like this: Spectrum.run(); while(wait()){ var hz = Spectrum.Trace1.frequency; var mag = Spectrum.Trace1.magnitude; var c = hz.length; for(var i = 3; i < c; i++){ // 3 to skip DC if(hz[i]<500 && mag[i]<0.5) continue; if(hz[i]<150e3 && mag[i]<0.2) continue; if(hz[i]<500e3 && mag[i]<0.15) continue; if(mag[i]<0.1) continue; Spectrum.stop(); } }
  8. Hi @JWSunhillo 1. I may not have all the details of what you want to achieve but I think you can use the ROM logic in Patterns for such purpose. Here: DIO-0 used as input signal (a "trigger") DIO-1 is configured for a custom pattern DIO-2 outputs DIO-1 while DIO-0 is low (not high) If ms timing is sufficient you could use an additional Script to verify the DIO-0 state and stop or re-start the Patterns. 2. In repeated mode it is not possible to eliminate gaps between the captures. Use Record mode for longer captures.
  9. Hi @wencheng @Kabron It is available since 3.18.10 (2022-01-06)
  10. Hi @miv2k Triggers are not working in Demo mode.
  11. Hi @Piotr Rzeszut I hope it works. I've tested it with simulated signals since I had no CAN FD equipment.
  12. attila

    triggerIn

    Hi @Hobs See the WF SDK/ samples/ py/ DigitalIO.py dwRead = c_uint32() dwf.FDwfDigitalIOStatus(hdwf) dwf.FDwfDigitalIOInputStatus(hdwf, byref(dwRead)) print("DIO-0:", (dwRead.value>>0)&1) print("DIO-1:", (dwRead.value>>1)&1)
  13. Hi @Aye If you are using Windows (32 or 64bit) the FTDI driver should be installed automatically (from Windows Update) but (currently) the same version is also installed by the WaveForms installer. You can install it manually from: https://ftdichip.com/drivers/d2xx-drivers/ https://www.ftdichip.com/Drivers/CDM/CDM v2.12.36.4 WHQL Certified.zip
  14. Hi @EngineerAmjad I initially understood you want 500Hz sample rate. You can create with Wavegen (or Pattern) a 500Hz trigger signal. Here I generated a signal to have some input but you can also use DC... In Scope set the trigger Source to "Wavegen C1" In the Measurements select "Multiple captures" if you want averaging/stats for multiple captures. Reduce the number of samples (from the default 16Ki) if the following Script takes more than 1sec (500x2ms). The processing time depends on opened views, measurements, logging, graphics if the Scope is visible... You can use the following Script to perform 500 captures and display the time it took. Wavegen.run() Scope.Measurements.clear() Scope.run() var t0 = 0 for(var i = 0; i < 500; i++) { Scope.wait() if(i==0) t0 = Scope.Time.taken } Scope.stop() print(Scope.Time.taken-t0, "ms")
  15. Hi @wencheng You could use constant frequency in Analyzer mode and export it or Meter mode with Script for custom logging. Like here, it will make 100 measurements at approximately 1sec intervals.
  16. Hi @Stetramp I'm considering to add such wavegen to scope internal/digital loopback for ADP3X50 and future products. In AD2 the FPGA logic is full, there would be no space for this.
  17. Hi @ash The functions returns 8, 16 or 32 bit samples in which the bits represent the DIN or DIO channels. These should be masked, shifted... as needed.
  18. Hi @ash This code should capture DIN 15..0 Isn't that what you want ?
  19. Hi @DZe SDK manual pdf p33 FDwfAnalogInChannelCouplingSet(HDWF hdwf, int idxChannel, DwfAnalogCoupling coupling) 0 DC 1 AC
  20. Hi @EngineerAmjad The "Rec." is for recording raw data to file. You could do something like this:
  21. Hi @ssm The AD2 has two range steps 5/50Vpk2pk so with 8V it would use 50V range with lower resolution. FDwfAnalogInChannelRangeSet(hdwf, -1, 0.5); FDwfAnalogInChannelOffsetSet(hdwf, -1, 3.75); 3.75V +/- 0.5V/2 = 3.5V...4V To be in low range with AD2 the range should be set up to 5V and the offset +/- range/2 should be between +/-8V and trigger if specified for the channel also in this range, so for 5.5V...0.5V (3V+/- 5V/2) you could use: FDwfAnalogInChannelRangeSet(hdwf, -1, 5.0); FDwfAnalogInChannelOffsetSet(hdwf, -1, 3.0); -5.5...5.5
  22. Hi @Aye This seems to be a software issue. It can't find the USB driver library.
×
×
  • Create New...