Jump to content

attila

Technical Forum Moderator
  • Posts

    6,533
  • Joined

  • Last visited

Everything posted by attila

  1. Hi @zelle The inputs are saved as user selected after leaving the field or on enter. The "Digital" button does not have focus. If you select a trigger source and press the 'Digital' button the earlier selection does not get saved and last validated selection is loaded. After selecting a source press tab, enter or click in other place. This behavior will be corrected in the next version.
  2. Hi @yattr This is a feature and not a bug. Indicates the actual starting position of the data bit.
  3. Hi @sand The easier is to use Digital/StaticIO functions. For constant with DigitalOut use Counter 0|0 and specify (initial) value with CounterInit dwf.FDwfDigitalOutEnableSet(hdwf, channel, 1) # dwf.FDwfDigitalOutIdleSet(hdwf, channel, DwfDigitalOutIdleInit) # default value dwf.FDwfDigitalOutCounterInitSet(hdwf, channel, 1, 0) # 1 = initialize with high when running dwf.FDwfDigitalOutCounterSet(hdwf, channel, 0, 0) # low/high count zero, no toggle during run, constant
  4. Hi @Danny Cote You could use the killapp argument for safe close. $ waveforms -killapp
  5. Hi @Franchis It can be done with the Script tool but it is easier and more precise to use a dummy Pattern or Wavegen for hardware timer (Run: 30min). In Scope set Trigger: Normal, Source: in the respective instrument and use the Logging tool for auto export. The next software version push the Update rate limit from 10s to 1hr.
  6. Hi @JerryM Which software version are you using? This feature was added in 3.20.26
  7. Hi @zelle In Scope Zoom view quick measurements are available.
  8. Hi @Mavitaka The BOM is not available for the public but here you can find detailed description of the device, including schematics: https://digilent.com/reference/test-and-measurement/digital-discovery/reference-manual
  9. Hi @Ronnie Unfortunately no. Industrial grade equipment would require not only the FPGA but all the components and the entire device certified for this.
  10. Hi @ZbigT Network Analyzer should be used for such purposes.
  11. Hi @Ronnie I don't see is marked on the IC but probably C are loaded. I and Q are listed as substitute. If you are concerned about temperature, you could glue a heatsink to the FPGA. Note that this voids the warranty.
  12. Hi @Martin_ Are you sure you are using an Analog Discovery 3 ? The error indicates the device FPGA ID is different from what is expected. I get the same error if I wrongly reprogram the AD2 to report being an AD3. The same should happen if an AD3 is programmed to be AD2. Got to WaveForms/ Settings/ Device Manager, under More menu select "Prog AD1,2,3...", press 'Find Devices', make sure you have one or the good Device selected, make sure you select correct Product (Analog Discovery 1, 2 or 3) and press 'Program Device'.
  13. Hi @satyakam The MISO words are returned in order starting with the first one, after each CS activation. In your case the CS is activated multiple times for one word length every time. You could set the Select to none so the words are returned in order regardless of CS.
  14. Hi @theFarmgineer Thank you for the observation. The generated number of option was limited to 200, skipping some of the 256 codes. As with all editable input fields in the application, you can type here too.
  15. Hi @CircuitNinja The interpretation is by default base 10, for hexadecimal 'h' or '0x' prefix should be used and 'b' for binary. You could use a script like this to load a text file with space delimited hex values: Protocol.I2C.WriteText.text = "h"+(""+FileRead("~/Desktop/hex.txt")).split(" ").join(" h"); To send it directly use: var rg = []; (""+FileRead("~/Desktop/hex.txt")).split(" ").forEach(function(sz){rg.push(parseInt(sz,16))}); Write(0x12, rg);
  16. Hi @Mohamed Kamal See the Help tab in WaveForms application. https://en.wikipedia.org/wiki/Network_analyzer_(electrical) https://en.wikipedia.org/wiki/Impedance_analyzer
  17. Hi @Danny Cote Do not kill but close the application or select a demo device. A device can be controlled by one application at a time. Some device information are not available when it is opened by another app, so a shared memory info table is used. Killing or crashing an app the used device can remain flagged being busy. In this case close all the apps that use Digital Adept Runtime (WaveForms app, custom app which uses WF)
  18. Hi @Clive Hayward These are signed but the MacOS policy may require the following: - System Preferences/ Security & Privacy/ General/ Allow apps downloaded from: App store and identified developers - System Preferences/ Security & Privacy/ General/ Allow anyway/ WaveForms and dwf.framework - Open WaveForms with Secondary click
  19. Hi @Torbjørn I would suggest using the digital-io functions for such relay control purpose, simple bit-bang, software sleep... Regarding you earlier code: Trigger are only needed to synchronize instrument or devices, staring one instrument is sufficient with Config. Use reset or disable earlier configured channels if you don't want these to pulse again after you configure the following and start the instrument. Calling any Set will stop the instrument, Configure is needed again to start or arm it. The control should look like this (I have not tested it) : dwf.FDwfDeviceOpen(c_int(-1), byref(hdwf)) if hdwf.value == hdwfNone.value: print ("failed to open device") quit() dwf.FDwfDeviceAutoConfigureSet(hdwf, c_int(0)) # 0 = the instruments will only be configured when FDwf###Configure is called def send5mspulse(hdwf, ch): dwf.FDwfDigitalOutReset(hdwf) # to clear previously instrument configuration, channels will be in by default in high impendance dwf.FDwfDigitalOutRunSet(hdwf, c_double(0.005)) # 5ms run dwf.FDwfDigitalOutEnableSet(hdwf, c_int(ch), c_int(1)) dwf.FDwfDigitalOutIdleSet(hdwf, c_int(ch), c_int(1)) # 1=DwfDigitalOutIdleLow, low when not running dwf.FDwfDigitalOutCounterInitSet(hdwf, c_int(ch), c_int(1), c_int(0)) # initialize with high when running dwf.FDwfDigitalOutCounterSet(hdwf, c_int(ch), c_int(0), c_int(0)) dwf.FDwfDigitalOutRepeatSet(hdwf, c_int(1)) # once dwf.FDwfDigitalOutConfigure(hdwf, c_int(1)) dwf.FDwfAnalogIOChannelNodeSet(hdwf, c_int(0), c_int(0), c_double(True)) # enable positive supply dwf.FDwfAnalogIOChannelNodeSet(hdwf, c_int(0), c_int(1), c_double(5.0)) # set voltage to 5 V dwf.FDwfAnalogIOEnableSet(hdwf, c_int(True)) # master enable time.sleep(0.1) # wait for V+ ramp send5mspulse(hdwf, 6) time.sleep(0.006) # or verify dwf.FDwfDigitalOutStatus send5mspulse(hdwf, 7) time.sleep(0.006) send5mspulse(hdwf, 14) time.sleep(0.006) send5mspulse(hdwf, 15) time.sleep(0.006) dwf.FDwfDeviceCloseAll()
  20. Hi @Torbjørn You could use the APIs like FDwfAnalogImpedanceReferenceSet This, internally uses the DigitalIO functionality to control the relays. See the examples:
  21. Hi @zelle Thank you for the observation. It will be corrected in the next version on Monday.
×
×
  • Create New...