Jump to content

attila

Technical Forum Moderator
  • Posts

    6,535
  • Joined

  • Last visited

Everything posted by attila

  1. Hi @longboard The log data is stored in the application. If this is running on the computer than the log will be also on the computer.
  2. Hi @Someone Added RPM: https://forum.digilentinc.com/topic/8908-waveforms-beta-download/
  3. Hi @deathbee In the next software version it will be possible if you stop it manually. The Logger will keep data on history increase but it has to delete on function change since the data may be invalid.
  4. Hi @Anton Yes, see the latest beta version: https://forum.digilentinc.com/topic/8908-waveforms-beta-download/
  5. Hi @longboard It is possible with Protocol/I2C/Spy and make sure to increase the "Max Lines" for long capture. For performance reasons this is by default limited. However such troubleshooting could result in a very long log which may be hard to parse. I would rather recommend using the Logic Analyzer and triggering on the event or on the outcome. Depending on the problem with I2C trigger (like on a value, NAK...), or using external trigger or other DIO line, or pulse width... Then look for the pretrigger data to see what lead to or caused the issue.
  6. Hi @EzeStare As I told earlier, the CC/CV with adapter also changes the resistor automatically. In some cases this is an advantage but not in your experiment. For the next software version I will add CC/CV options for adapter without resistor change. Until this, please use the earlier mentioned Custom script:
  7. Hi @hugocoolens I don't know from which instrument you want to export. Like in Network Analyzer uncheck Magnitude and leave Phase, File/Export or Channel2 gear/Export, uncheck unneeded Options You could also use a Script for custom file saves, like:
  8. Hi @m72 I see it now... the Start does not accept negative time... It is fixed in next version. Earlier I couldn't load your workspace and tried to reproduce it with only post trigger data :) Thank you for the observation.
  9. Hi @vkristof The DC of FFT shows double of the actual value. This is the result of the algorithm.
  10. Hi @Erik Hartwig Is it working now in both modes? The Standard log looks good but I don't know if the IP is from DHCP or at least the subnet is correct for your network. Make sure the auto IP is checked in the device Network Settings.
  11. Hi @m72 If the first part of the communication is not captured (or the "start here" is set in middle of) it is normal to have error in interpretation: The start here was actually added to be able to resync continuous UART transfer but it can be used for other protocols too:
  12. Hi @Resul The Wavegen can output -5V to +5V. There is some reserve like +/-0.4V but this is not guaranteed to work on each device or with proper linearity. You may do +/-10V using +/-5V rails as reference instead of ground. - with -5V doing sweep from -5V to +5V which will be relative 0 to +10V - with +5V sweep from +5V to -5V will be like 0 to -10V Note that you could do this with minimal amplitude like 0.1V (or 0.2V) to limit the Wavegen amplitude to +/-5.1V or use +/-4V reference with 1V amplitude signal for +/-8V range. see point 3 :
  13. Hi @kang Simply use one of the trigger IOs. dwf.FDwfAnalogInTriggerSourceSet(hdwf, trigsrcExternal1) and if you want to specify the edge: rising, falling or either: dwf.FDwfAnalogInTriggerConditionSet(hdwf, DwfTriggerSlopeFall)
  14. Hi @SaschaA For Analog Discovery the 3rd device configuration allocates 16k samples for carrier signal the AM/FM buffers are 2k 9bit You could use the custom FM to generate sweep but the 2k9b limits the resolution. You could use the Play mode for unlimited streaming at up to about 1MSps. You could also stream AM/FM samples which probably highly reduces the required update rate. See WF SDK/ samples/ py/ AnalogOut_Play.py AnalogOutIn_PlayRecord.py ...
  15. Hi @VARSHA AMALE It is not supported by AD2. The Digital Discovery provides Play mode which is also available from SDK see the DigitalDiscovery_PlayRecord.py example
  16. Hi @Resul The bugs mentioned yesterday are fixed here: https://forum.digilentinc.com/topic/8908-waveforms-beta-download/ Your code will work if you use c_int in FDwfAnalogImpedancePeriodSet See the examples AnalogImpedance_OffsetSweep.py AnalogImpedance_OffsetSweepCp.py which also look for out of range conditions on Scope inputs.
  17. Hi @Resul You may need to use different AnalogIn Channel Offset or Range depending on the your DUT and AnalogOut Amplitude/Offset.
  18. Hi @mnagy34 Start WaveForms in Safe Mode This will reset the application settings, workspace history... some inaccessible network file or some setting may be the problem.
  19. Hi @Resul I got a glitch due to setting the scope offset wrongly with opposite sign and the input entered in limitation. I will have to add some function or measurement to notify such. I also notice there is bug in calculating the scope sample rate to obtain the certain amount of periods. """ DWF Python Example Author: Digilent, Inc. Revision: 2021-08-24 Requires: Python 2.7, 3 """ from ctypes import * from dwfconstants import * import math import time import sys import numpy import matplotlib.pyplot as plt if sys.platform.startswith("win"): dwf = cdll.LoadLibrary("dwf.dll") elif sys.platform.startswith("darwin"): dwf = cdll.LoadLibrary("/Library/Frameworks/dwf.framework/dwf") else: dwf = cdll.LoadLibrary("libdwf.so") version = create_string_buffer(16) dwf.FDwfGetVersion(version) print("DWF Version: "+str(version.value)) hdwf = c_int() szerr = create_string_buffer(512) print("Opening first device") dwf.FDwfDeviceOpen(c_int(-1), byref(hdwf)) if hdwf.value == hdwfNone.value: dwf.FDwfGetLastErrorMsg(szerr) print(str(szerr.value)) print("failed to open device") quit() dwf.FDwfDeviceAutoConfigureSet(hdwf, c_int(0)) sts = c_byte() reference = 1e3 freq = 1e3 start = -4.0 stop = 4.0 steps = 101 print("Reference: "+str(reference)+" Ohm Frequency: "+str(freq)+" Hz Offset: "+str(start)+" V ... "+str(stop)+" V") dwf.FDwfAnalogImpedanceReset(hdwf) dwf.FDwfAnalogImpedanceModeSet(hdwf, c_int(8)) # 0 = W1-C1-DUT-C2-R-GND, 1 = W1-C1-R-C2-DUT-GND, 8 = AD IA adapter dwf.FDwfAnalogImpedanceReferenceSet(hdwf, c_double(reference)) # reference resistor value in Ohms dwf.FDwfAnalogImpedanceFrequencySet(hdwf, c_double(freq)) # frequency in Hertz dwf.FDwfAnalogImpedanceAmplitudeSet(hdwf, c_double(0.5)) # 0.5V amplitude = 1V peak2peak signal dwf.FDwfAnalogImpedanceOffsetSet(hdwf, c_double(start)) dwf.FDwfAnalogImpedanceConfigure(hdwf, c_int(1)) # start dwf.FDwfAnalogInChannelOffsetSet(hdwf, c_int(0), c_double(start)) # set Scope C1 offset to start dwf.FDwfAnalogInChannelOffsetSet(hdwf, c_int(1), c_double(0)) # set Scope C2 offset to 0V dwf.FDwfAnalogInFrequencySet(hdwf, c_double(freq*8192/16)) # override, periods are wrongly calculated in < v3.16.35 dwf.FDwfAnalogInConfigure(hdwf, c_int(0)) # re-configure Scope time.sleep(1) # wait for the device, specially for the offsets to stabilize rgOff = [0.0]*steps rgRs = [0.0]*steps rgXs = [0.0]*steps for i in range(steps): vOff = start + i*(stop-start)/steps rgOff[i] = vOff dwf.FDwfAnalogOutOffsetSet(hdwf, c_int(0), c_double(vOff)) # adjust Wavegen 1 offset dwf.FDwfAnalogOutConfigure(hdwf, c_int(0), c_int(1)) # configure and start Wavegen 1 dwf.FDwfAnalogInChannelOffsetSet(hdwf, c_int(0), c_double(vOff)) # adjust Scope C1 offset dwf.FDwfAnalogInConfigure(hdwf, c_int(1)) # configure Scope time.sleep(0.01) # settle time depends on the circuit/DUT dwf.FDwfAnalogInConfigure(hdwf, c_int(1)) # start Scope while True: if dwf.FDwfAnalogImpedanceStatus(hdwf, byref(sts)) == 0: dwf.FDwfGetLastErrorMsg(szerr) print(str(szerr.value)) quit() if sts.value == 2: break resistance = c_double() reactance = c_double() dwf.FDwfAnalogImpedanceStatusMeasure(hdwf, DwfAnalogImpedanceResistance, byref(resistance)) dwf.FDwfAnalogImpedanceStatusMeasure(hdwf, DwfAnalogImpedanceReactance, byref(reactance)) rgRs[i] = abs(resistance.value) # absolute value for logarithmic plot rgXs[i] = abs(reactance.value) dwf.FDwfAnalogImpedanceConfigure(hdwf, c_int(0)) # stop dwf.FDwfDeviceClose(hdwf) plt.plot(rgOff, rgRs, rgOff, rgXs) ax = plt.gca() ax.set_yscale('log') plt.show()
  20. Hi @VARSHA AMALE The Toolkit VIs do not support digital pattern generator. For low rate software toggling you could eventually use the Digital VIs. See the manual for more detail. You could also use the WF SDK DigitalOut functions but this would be more work in LabView. See the SDK manual and Python examples.
  21. Hi @longboard Yes, the others are custom setups without Adapter, see the Help tab, press F1
  22. Hi @EzeStare The Constant Voltage/Current works differently with and w/o Adapter. With Adapter automatically changes the reference resistor, for your experiment it set it to 1M. Use the Custom mode and load the Constant Voltage example, specify the rms voltage in the script, "const Voltage = ..."
  23. Hi @alexplcguy The AD2 has no standalone operation. Eventually the external and internal triggering can start the instruments and the DIOs can be used in FSM mode, Patterns ROM logic. The ADP3450 has embedded Linux that can be used for wide range of standalone applications, automated tasks...
×
×
  • Create New...