Jump to content

attila

Technical Forum Moderator
  • Posts

    6,471
  • Joined

  • Last visited

Everything posted by attila

  1. Hi @PPPlllld See the AnalogIn_Record...py examples You can use the FDwfAnalogInFrequencyGet to know the exact sample rate. The FDwfAnalogInFrequencySet may be rounded to the most appropriate supported value, integer division of system frequency, like 100MHz/N You can use trigger IO for synchronization or with ADP3X50 FDwfAnalogInStatusTime returns the device timer at trigger point. This is probably more useful for single/repetitive captures.
  2. Hi @CharlesB If this is with 10x probe then it is excpected. With 10X it can have 50/500Vpk2pk range, 3/30mV resolution and due to higher impedance more susceptible to noise radiation. With 1X 5/50Vpk2pk 0.3/3mV C1 10X average + noise 50Vpk2pk R1 1X average 5Vpk2pk
  3. Szia @Andras I wanted to say: The cAvailable zero can be expected/accepted, specially at lower rates.
  4. Hi @CharlesB 1. I'll leave this for @JColvin 2. See the following post. Please attach some screenshots to have more information, to see what you saw.
  5. Szia @Andras The record in the WF app is similar to the SDK/ samples/ py/ AnalogIn_Record_Trigger.py but it also includes mixed mode (analog+digital) recording. The occasional data loss may be to some hiccup in the system, like other application or services blocking the computer (cpu,dma,bus...). Try removing the Thread.Sleep(5); EDIT: The cAvailable zero can be expected/accepted, specially at lower rates.
  6. Hi @BobA Use the manual from the WF SDK folder and see the examples like /samples/py/DigitalOut_Pins.py If it suits your project, the digital-out could be triggered with the trigger-io dwf.FDwfDigitalOutEnableSet(hdwf, c_int(0), c_int(1)) # 0 is DIO-0 or DIO-24 for Digital Discovery dwf.FDwfDigitalOutDividerSet(hdwf, c_int(0), c_int(1)) # use the 100MHz/10ns system frequency dwf.FDwfDigitalOutCounterSet(hdwf, c_int(0), c_int(10), c_int(10)) # 10x10ns low 10x10ns high, 200ns dwf.FDwfDigitalOutRunSet(hdwf, c_double(600e-9)) # run for 600ns, 3x200ns dwf.FDwfDigitalOutTriggerSourceSet(hdwf, trigsrcExternal1) dwf.FDwfDigitalOutRepeatTriggerSet(hdwf, c_int(1)) dwf.FDwfDigitalOutRepeatSet(hdwf, c_int(0)) # inf dwf.FDwfDigitalOutConfigure(hdwf, c_int(1))
  7. Hi @mnorth No. These are kind of synonyms.
  8. Hi @H_M I saw the 60-270 Ohms in the CD74HC4067 sheet. I'm not an EE but from experience the relays are the best for such purpose. The analog switches have lower consumption and are more reliable but have horizontal/vertical ( bw/voltage) limitations. Edit: Feel free to correct me if I'm wrong.
  9. Hi @Adam1973 Are you using the newer beta version, like v3.18.58 ? These functions were added in v3.18.21
  10. Hi @H_M If you are using such makes sure to set proper offset to have positive signal. The 60-270 Ohm switch resistance and capacitance may affect the measurements but the open/short compensation should correct this.
  11. Hi @Adam1973 You can also use the FDwfSpectrumWindow/FFT/Transform (CZT) functions, see:
  12. Hi @tdeball The demo on git probably requires newer WaveForms version, uses newly added features, see:
  13. Hi @pfprojects I've tried to reproduce the problem by disconnecting the wires while running. I got temporal bad data or "timeout error" if the I2C bus got stuck. I suspect due to some ringing, crosstalk or external noise your I2C device receives a bad command and this causes protocol error or bad data reading. Try using short wires, twisted with ground, stronger pull, series resistors... to reduce the chance of such glitches. Verify with Scope the signal quality. I don't know which software version you are using but in newer the I2C states (for clock stretching) use internal DIO loopback to eliminate state crosstalk between long flying wires. You are currently using the Sensor tab which uses hardware timer to repeat the loop. You could try using the Custom tab or Script tool with software loop to have more control and debug info, like if a Read call does not return the requested number of bytes back, or use Logic record to inspect the protocol and data.
  14. Hi @proyo AD2: Bandwidth 10 MHz+ https://digilent.com/reference/test-and-measurement/analog-discovery-2/start https://digilent.com/reference/test-and-measurement/analog-discovery-2/hardware-design-guide#scope_spectral_characteristics
  15. Hi @David Aurora The direct Scope to AWG or audio out is not supported but you can use the Audio view in the WaveForms application like this to stream to the computer/attached speaker.
  16. Hi @Albertu95 The .taken (hardware trigger time for ADPs) was added in newer software version. For older versions you can use "new Date()" software time.
  17. Hi @Alessandro See the WF SDK/ samples/ py/ AnalogInDigitalIn_Acquisition.py dwf.FDwfDigitalInTriggerSourceSet(hdwf, trigsrcAnalogIn) # trigger digital-in on analog-in # recommended to configure the same rate, trigger position but it is not mandatory dwf.FDwfDigitalInConfigure(hdwf, c_int(1), c_int(1)) # start digital-in dwf.FDwfAnalogInConfigure(hdwf, c_int(1), c_int(1)) # start analog-in # loop # dwf.FDwfDigitalInStatus(hdwf, c_int(1), byref(sts)) # dwf.FDwfAnalogInStatus(hdwf, c_int(1), byref(sts)) # dwf.FDwfDigitalInStatusData(hdwf, ... # dwf.FDwfAnalogInStatusData(hdwf, ...
  18. Hi @David Aurora 2. Sure, the Wavegen outputs on the W1/2 pins as well on the stereo R/L audio output of the AD2. https://digilent.com/reference/test-and-measurement/analog-discovery-2/hardware-design-guide#audio
  19. Hi @EH2 Unfortunately I can't give exact number since it depends on many factors. The reference resistors on the IA Adapter are 0.1% Use open compensation specially to improve the measurements at high frequencies (higher resistor values) and short compensation for lower frequencies (lower resistor values). You can also use average/averaging.
  20. Hi @David Aurora 1. Yes, set trigger None and press Single (F4) 2. I'm not sure if I understand exactly what you want but the trigger IOs can be configured to output internal trigger signals, like "Scope Detector" although this will be a 10ns pulse with AD2, the "Scope" the post-trigger length of each capture. You could also cross-trigger the Patterns to generate a longer pulse and on multiple DIOs to have stronger drive (for a speaker) or the Wavegen.
  21. Hi @PPPlllld See WF SDK/ samples/ py/ AnalogIn_ShiftScreen.py
  22. Hi @Albertu95 You could use the following: print(Scope.Time.taken.toISOString()); print(Scope.Time.taken.toISOString().replace('-','').replace('-','').replace(':','').replace(':','').replace('T','').substr(0,14)); var dt = Scope.Time.taken; print(dt.getUTCFullYear()+""+ (dt.getUTCMonth()<9?"0":"")+(dt.getUTCMonth()+1)+ (dt.getUTCDate()<10?"0":"")+dt.getUTCDate()+ (dt.getUTCHours()<10?"0":"")+dt.getUTCHours()+ (dt.getUTCMinutes()<10?"0":"")+ dt.getUTCMinutes()+(dt.getUTCSeconds()<10?"0":"")+dt.getUTCSeconds()); // or yyyy-MM-ddTHH.mm.ss.fffZ Scope.Export("~/Documents/albertomeasure/output/"+(Scope.Time.taken.toISOString().replace(':','.').replace(':','.'))+".csv");
×
×
  • Create New...