attila

Technical Forum Moderator
  • Content Count

    2217
  • Joined

  • Last visited

  • Days Won

    142

Everything posted by attila

  1. Hi @Matt B I don't know how, what application are you using for UART reception... Is the same UART Rate specified on both sides? also verify the parity, polarity.. Do you have common ground connection between the devices?
  2. Hi @osti 1. The Sync mode on Digital Discovery uses re-sampling at 1.25ns (800MHz) resolution. This uses the device triggering mechanism, so when using Sync mode the trigger options are not available. 2. At the moment only 100MHz base frequency is supported. I'm planning to add option to be able to fine adjust this frequency, like: 50.00836820083682, 50.00985221674877, 50.01197604790419, ... 98.86567164179104, 98.87323943661971, 98.88, ... ,99.97714285714285, 100 MHz
  3. Hi @AdamB The signal should be connected to Digital IO in order the Logic Analyzer to decode it. The bit, timing, commands, OVD ... are protocol specific.
  4. Hi @mik Use F argument: gcc device_enumeration.cpp -F /Library/Frameworks -framework dwf g++ analogout_custom.cpp -o analogout_custom -F /Library/Frameworks -framework dwf
  5. Hi @Grimmers The Raspberry Pi 4 Model B is working well with the Analog Discovery 2 when connected to the USB 3 (blue) ports. It was running continuously for more than 24 hours. The connection to the device over the USB 2 (black) ports dropped after 6-12 hours.
  6. Hi @stever You are probably getting this error from FDwfDigitalOutDataSet, which expects the countOfBits max 32768 with DD.
  7. Hi @tpaulin The Scope inputs on AD2 are protected for up to +/-50V.
  8. Hi @Jivoman The Scope inputs of AD2 have 2 gain steps about 5V and 50V. See the following script: AnalogIn_Range.py # DWF Version: b'3.11.14' dwf.FDwfAnalogInChannelRangeGet(hdwf, c_int(0), byref(vr1)) # Ch1 ~5/50V dwf.FDwfAnalogInChannelRangeGet(hdwf, c_int(1), byref(vr2)) # Ch2 ~5/50V print("Ch1: "+str(vr1.value)+" Ch2: "+str(vr2.value)) # Ch1: 60.70607306692946 Ch2: 60.86322581568005 dwf.FDwfAnalogInChannelRangeSet(hdwf, c_int(0), c_double(0.3)) # Ch1 dwf.FDwfAnalogInChannelRangeSet(hdwf, c_int(1), c_double(50.0)) # Ch2 dwf.FDwfAnalogInChannelRangeGet(hdwf, c_int(0), byref(vr1)) # Ch1 ~5/50V dwf.FDwfAnalogInChannelRangeGet(hdwf, c_int(1), byref(vr2)) # Ch2 ~5/50V print("Ch1: "+str(vr1.value)+" Ch2: "+str(vr2.value)) # Ch1: 5.518196625058977 Ch2: 60.86322581568005 dwf.FDwfAnalogInChannelRangeSet(hdwf, c_int(0), c_double(10.0)) # Ch1 dwf.FDwfAnalogInChannelRangeSet(hdwf, c_int(1), c_double(0.3)) # Ch2 dwf.FDwfAnalogInChannelRangeGet(hdwf, c_int(0), byref(vr1)) # Ch1 ~5/50V dwf.FDwfAnalogInChannelRangeGet(hdwf, c_int(1), byref(vr2)) # Ch2 ~5/50V print("Ch1: "+str(vr1.value)+" Ch2: "+str(vr2.value)) # Ch1: 60.70607306692946 Ch2: 5.536143355938114
  9. Hi @mik Have you tried with "-I/Library/Frameworks/dwf.framework -framework dwf" arguments ?
  10. Hi @Jivoman In the SDK and generally in programming, 0 based indexing is used, like: 0 is channel 1 and 1 is channel 2 # set scope channel 1 range to 5V dwf.FDwfAnalogInChannelRangeSet(hdwf, c_int(0), c_double(5))
  11. Hi @tpaulin Sorry to hear this. I think you could use some zenner diodes to protect the device. Even a simple piezo tape can generate high voltage that could damage electronics. Are you referring to Scope channel 2 switch/mux ? https://reference.digilentinc.com/reference/instrumentation/analog-discovery-2/reference-manual#scope_input_divider_and_gain_selection
  12. Hi @Matt B With the Protocol.UART.SendArray(array) you are sending array for numbers. Like here [52, 50, 31] is sent, in hex [0x34, 0x32, 0x1F] If you want to send text, then convert the data to text format and use Protocol.UART.Send(string), like: var sz = Sensor1UL_CC+" "+uswavg ... Protocol.UART.Send(sz)
  13. Hi @stever This examples generates a counter and captures 100k samples at 100MHz: DigitalIn_Acquisition_8x100k.py
  14. Hi @tpaulin The AWG outputs are protected with PTC in the output amplifier loop: https://reference.digilentinc.com/reference/instrumentation/analog-discovery-2/reference-manual#awg_iv The AWG outputs should not be connected/shorted with other outputs. It is protected for rails up to +/-5V, but it could survive miss-connection to higher 10-15V rails too. Could you proved more info about the experiment?
  15. Hi @nvsdi In this post you can find more troubleshoot info:
  16. Hi @stever Here you have an example from the SDK:DigitalIn_Acquisition_8x256M.py
  17. Hi @stever It should work up to 32k with PushPull output. Here the Pattern generates a Custom binary counter:
  18. Hi @nvsdi The calibration adjusts the DC levels (amplitude, offset). It won't help in solving signal "distortion". In calibration window please select Reset/ Load Factory and provide a screenshot with the output, like here W1 is connected to 1+ and W2 to 2+; 1- and 2- gnd. The AWG outputs are protected with PTC in the output amplifier loop: https://reference.digilentinc.com/reference/instrumentation/analog-discovery-2/reference-manual#awg_iv In case the AWG output is no more working probably the IC16 got damaged. The AWG outputs (or any output) should not be connected/shorted with other outputs. All the board IOs are protected up to +/-5V at least. The AWG output could survive miss-connection to higher 10-15V rails. Without common ground connection between devices/circuits it could be 100s of V difference or kV static, that can kill electronics.
  19. Hi @Andras A. Comparing two different tools might not be the best option, it could give different results. B. At the moment the Impedance Analyzer interface takes control over the Supplies and DIO lines to control the IA Adapter. On the Adapter the negative supply and some DIO lines are unused. In the next software version I will add option to be able to control these. Having these you could use a small signal relay with ~5V control, similar to the ones on IA adapter but non-latching, to switch between the measured and control DUTs. https://reference.digilentinc.com/_media/reference/instrumentation/analog_discovery_impedance_analyzer_sch.pdf Edit: You could use the current software for plan B. First, in the Impedance interface using the Adapter option select the needed resistor value, then select "W1-C1-DUT...". This will release the Supplies and DIO lines to be used from other interfaces, and the latching relays on the Adapter will remain unchanged. Then you can use the Static IO or Negative supply for other purposes, to control the external relay...
  20. Hi @Matt B The Script tool can be started manually or by passing argument to the application. The script code can be repeated with loops, while, for...
  21. Hi @tjaplayer Such undetected device usually indicate no contact in USB plug. Please try to use other USB cables. The AD2 should show up in the Windows Device Manager as "USB Serial Converter". In case the driver is missing "unknown" or "Digilent USB Device" is shown. In case the USB controller is malfunctioning or not all the USB wires make contact it could take a minute until the OS reports "unknown device". In the following post you can find some troubleshooting information:
  22. Hi @dpekin There was a mistake in the C# wrapper. The data16 function was actually calling the data-double function. It is corrected in this wrapper: dwf.cs Thank you for the observation.
  23. Hi @Matt B var rgusw = [] var cw = 0 var sumusw = 0 Scope.run() for(var i = 0; i < 10 && Scope.wait(); i++){ var usw = Scope.Channel1.measure("NegWidth")*1e6 // us rgusw.push(usw) // array sumusw += usw cw++ } print(rgusw) var uswavg = sumusw/cw print("Average:",uswavg)
  24. Hi @chrisdoe The supported frequencies are natural divisions of 50MHz. In reception and Spy mode 10% of 1/frequency is used to filter glitches on clock signal. Select Record mode to capture more samples: The Repeated mode is intended for Scope like analysis, short captures. The number format can be selected here: