attila

Technical Forum Moderator
  • Content count

    1677
  • Joined

  • Last visited

  • Days Won

    104

attila last won the day on October 11

attila had the most liked content!

About attila

  • Rank
    Prolific Poster

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

4683 profile views
  1. Hi @RAN The AD2 can't really be used in standalone mode. It has no static memory to configure a startup operation, like to generate signal. When USB cable is disconnected, the VBUS drops and this stops the AUX supply through IC48/IC26 https://reference.digilentinc.com/reference/instrumentation/analog-discovery-2/reference-manual#power_supplies_and_control A solution would be by powering the AD2 from USB hub, configuring it from software, then disconnecting the PC USB cable. The AD2 powered from HUB will continue the operate, to output the configured, AWG, Pattern Generator signals, including modulation, triggering options... positive/negative power supplies
  2. Hi @jma_1 The "Debug" mode is in the upper right corner of the Protocol window. In case you need DIO lines for other purposes, uncheck the Clock stretching since this option would use by default DIO 0-9 on Analog Discovery.
  3. attila

    Documentation on "plot1" in Scripts

    Hi @AndrewK Thank you for reminding this... You configured the color like: plot1.Y1.color = "red" // name plot1.Y1.color = "#FF0000" // hex RRGGBB plot1.Y1.color = "#F00" // hex RGB
  4. attila

    Lock-in Amplifier/ Phase shift

    Hi @Nurseda The filter can be set programmatically using the Scope#.Math#.customFilter property. This Logging/Script adjusts the filter based on frequency: var hzSig = Scope.Channel1.measure("Frequency") var hzRate = Scope.Time.Rate.value var cFilter = round(hzRate/hzSig/2) if(cFilter>200) cFilter = 0 var rg = [1] for(var i = 0; i < cFilter; i++) rg.push(0) Scope.Math1.customFilter = rg In Script tool use Scope1 to identify the scope window.
  5. Hi @Vanko2 I'm in the middle of implementing other improvements but I will try to do a beta release Monday or Tuesday. You could use the Scope to analyze the I2C signals, connect the negative input (1-) the AD2 ground and positive (1+) to the SCL. With very long ground, 3 meters of USB cable between I2C device and AD2, some external noise time to time hits the SCL edge which causes glitch on the digital reading.
  6. attila

    Documentation on "plot1" in Scripts

    Hi @AndrewK The name and label are not useful for Script/Plot. The Script exposes almost all the objects/functions/properties behind the user interface, like the X, Y1 are objects which have a name and label. The Script is intended to automate some processes, but the general configuration like name, label, units, configuring channels.. are easier to be done in the user interface. You can save and load the Script together with all the other instruments in one workspace. The plot has the following useful Script options: plot# plots in Script tool .X() X axis .Y1-4() Y axis .Units.text set/get axis unit .AutoScale.checked set/get auto scaling option .Range.value set/get range value .Offset.value set/get offset value .data set/get data array Setting data for the X axis the plot will become an XY plot
  7. attila

    Import Saved Logic Data into Patterns

    Hi @Kabron The data can be exported from Logic Analyzer under File menu or automated withView/Logging. Export source can be acquisition, which stands for each added signal/bus/other interpreters, just on of these, or raw captured data... In patterns you can import data for individual signals or entire bus. You can also use Script to set the custom pattern from logic data like this: Patterns1.Channels.Bus.custom = Logic1.Channels.Bus.data In default device configuration the Analyzer has 4k sample buffer and the Patterns 1k. You can select the 4th device configuration to have 16k for both, Settings/Device Manager
  8. Hi @bobby You have the application in private message.
  9. Hi @Vanko2 I think I managed to reproduce the problem you are describing, by using long wires or having ground connection only through USB. Such setup could cause ringing/glitches which are interpreted as clock pulses. Make sure to use short wires and have ground connection between the AD2 and the analyzed circuit. In the Logic Analyzer, for 100kHz I2C use at least 400kHz to make sure to capture I2C low/high correctly. For the next software version I have enabled the Frequency in Protocol/I2C/Spy which will be used to filter such glitches, less than 10% of the specified frequency. With noisy signal having specified 10MHz, only filters 10ns glitches: Filtering 250us glitches: You are right, too much captured text can slow the application down, leading to losing data. I will have to add some history limitation.
  10. attila

    Documentation on "plot1" in Scripts

    Hi @AndrewK There are not too many option for the Script/plots. You can configure the offset, range, units in the interface and the data can be set programmatically. plot1.Y1.data = myarray plot1.Y1.Units.text = "A"
  11. Hi @spri The offset has a settling time, it is not intended to be used to generate signal, but only to establish a static offset level. The DC function outputs just the offset level. To generate some signal you need other function than DC. In your previous code you have first configured the offset to be 0 then overwritten it with 3V, so the output was constant 3V after this.
  12. Hi @spri This will output 3V for xduration after each trigger event. self.dwf.FDwfAnalogOutEnableSet(hdwf, c_int(0), c_int(True)) self.dwf.FDwfAnalogOutTriggerSourceSet(hdwf, c_int(0), trigsrcExternal1) self.dwf.FDwfAnalogOutTriggerSlopeSet(hdwf, c_int(0), c_int(1)) # rising edge self.dwf.FDwfAnalogOutRepeatTriggerSet(hdwf, c_int(0), c_bool(True)) # arm after each run cycle, with false it would wait only at start self.dwf.FDwfAnalogOutRepeatSet(hdwf, c_int(0), c_int(0)) # unlimited repeat self.dwf.FDwfAnalogOutRunSet(hdwf, c_int(0), c_double(self.active.xduration)) # set run duration self.dwf.FDwfAnalogOutWaitSet(hdwf, c_int(0), c_double(0)) # no wait self.dwf.FDwfAnalogOutIdleSet(hdwf, c_int(0), c_int(1)) # DwfAnalogOutIdleOffset self.dwf.FDwfAnalogOutOffsetSet(hdwf, c_int(0), c_double(0)) # offset value = 0v self.dwf.FDwfAnalogOutFunctionSet(hdwf, c_int(0), funcSquare) # self.dwf.FDwfAnalogOutSymmetrySet(hdwf, c_int(0), c_double(100)) # 100% duty, only +amplitude while running self.dwf.FDwfAnalogOutAmplitudeSet(hdwf, c_int(0), c_double(3)) # offset + amplitude after trigger = 3v self.dwf.FDwfAnalogOutFrequencySet(hdwf, c_int(0), c_double(1.0/self.active.xduration)) # not really needed here, but it could be used for burst signals print("starting") dwf.FDwfAnalogOutConfigure(hdwf, c_int(0), c_bool(True)) # start analog output #1
  13. attila

    Analog Discovery Troubleshooting

    Hi @jonathanmartin2020 Are you using the latest version of the software WF v3.8.2 or even newer beta version? What do you mean by "no response"? In case you get error message please post a screenshot. Like this is shown on disconnect:
  14. Szia @Andras The Network Analyzer by default takes controls over the Wavegen channel 1 and configures the required frequency for each step. You could select NA/Wavegen/Channel/External but to be able the control the Wavegen manually, but in this case the previous Script solution won't work. The Insert/Local lists specific variables and is available in other scriptable places, like scope custom math, measurements, logging, network analyzer custom plots In each script editor including the Script tool you can use the Ctrl+Space to list available objects, variables... or child objects, properties, functions..
  15. attila

    Tablets software

    Hi @Thuff The WaveForms application supports: 32bit Windows XP and 64bit Windows 7 or higher; x86 (32bit), amd64 (64bit), armhf (32bit) with libc6 >=2.14 Linux; and MacOS. Currently phones and tablets (Android, iOS, ChromeOS) are not supported, due to the USB driver.