-
Posts
6,471 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Gallery
Everything posted by attila
-
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.
-
AD2 Issue - Noise in Scope Display of Generated Wave Form
attila replied to CharlesB's question in Test and Measurement
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 -
Lost And Corrupted Data - Analog discovery Pro
attila replied to DroneGuru's question in Test and Measurement
Szia @Andras I wanted to say: The cAvailable zero can be expected/accepted, specially at lower rates. -
AD2 Issue - Noise in Scope Display of Generated Wave Form
attila replied to CharlesB's question in Test and Measurement
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. -
Using the Waveforms SDK to capture analogue data at 20Mhz
attila replied to Alanf's question in Test and Measurement
-
Lost And Corrupted Data - Analog discovery Pro
attila replied to DroneGuru's question in Test and Measurement
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. -
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))
-
Hi @mnorth No. These are kind of synonyms.
-
Connecting Impedance anlyser to multi channel multiplexer
attila replied to H_M's question in Test and Measurement
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. -
Hi @Adam1973 Are you using the newer beta version, like v3.18.58 ? These functions were added in v3.18.21
-
Connecting Impedance anlyser to multi channel multiplexer
attila replied to H_M's question in Test and Measurement
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. -
Hi @Adam1973 You can also use the FDwfSpectrumWindow/FFT/Transform (CZT) functions, see:
-
AttributeError: module 'dwfconstants' has no attribute 'DwfWindowRectangular'
attila replied to tdeball's question in Test and Measurement
Hi @tdeball The demo on git probably requires newer WaveForms version, uses newly added features, see: -
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.
-
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
-
Analog Discovery Pro Logger with script
attila replied to Albertu95's question in Test and Measurement
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. -
Synchronous acquisition of digital and analog signals through AD2
attila replied to Alessandro's question in Test and Measurement
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, ... -
About measure Impedance range of Network Analyzer (AD2)
attila replied to Paul Chang's question in Test and Measurement
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. -
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.
-
-
Analog Discovery Pro Logger with script
attila replied to Albertu95's question in Test and Measurement
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");