-
Posts
6,662 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Gallery
Posts posted by attila
-
-
Hi @lb8
With Analog Discovery external pullups are required for I2C.
Internal individually selectable 10k pullup/down for DIOs are available with Digital Discovery and Analog Discovery Pro 3450/3250.
-
Hi @Someone
It is not recommended to apply voltage to any unsupplied device or IC since in this case the protection diodes will have to handle it.
The Digital Discovery IOs (24-49) as input are 5V compatible with level translator. The output voltage is adjustable between 1.2V and 3.3V, this also adjusts the input threshold between ~0.5V and ~1.5V The inputs (0:23) are also 5V compatible.
The Analog Discovery DIOs are also compatible with 5V but this through protection circuit, so it will sink more current than DD's translator solution. The output voltage is fixed 3.3V The input threshold is ~1.5V and ~0.5V with the 5th and 7th configurations.
Both are protected up to +/-20V
For more details see the reference pages and WaveForms app Help
https://digilent.com/reference/test-and-measurement/digital-discovery/start
https://digilent.com/reference/test-and-measurement/analog-discovery-2/start -
Hi @Tood
I'm glad to hear that.
-
Hi @reddish
Exactly.
In "pseudo hdl" looks like this:
DIO <= Digital-Out when Digital-IO-OutputEnable = 0 and Digital-IO-Output = 0 else Digital-IO
-
-
Hi @PeterCo
For timeout trigger set max length to 0, like:
dwf.FDwfDigitalInTriggerSourceSet(hdwf, c_ubyte(3)) # trigsrcDetectorDigitalIn # DIO 7 (DIO 31 for Digital Discovery) dwf.FDwfDigitalInTriggerResetSet(hdwf, c_int(0), c_int(0), c_int(1<<7), c_int(0)) # reset on rise (low, high, rise, fall) dwf.FDwfDigitalInTriggerSet(hdwf, c_int(0), c_int(1<<7), c_int(0), c_int(0)) # count while high (low, high, rise, fall) dwf.FDwfDigitalInTriggerLengthSet(hdwf, c_double(200e-9), c_double(0.0), c_int(0)) # min, max = 0 > timeout dwf.FDwfDigitalInTriggerCountSet(hdwf, c_int(1), c_int(0)) # count 1, no restart
-
Hi @SIB-V2
I really would like to help you but I can't debug the script since I don't have the driver you use.
You should use your second AD2 as Logic Analyzer to see if the first AD2 with the script generates the expected signals.
It would be great if you could point out what it is not working, I may be able to help you.
-
You should not call FDwfAnalogInStatus again when done. This would be required only if you called it previously with argument 0 (do not read data) but this double call would increase the latency.
See the: AnalogIn_Trigger.py For maximum performance use:
... while True: dwf.FDwfAnalogInStatus(hdwf, c_int(1), byref(sts)) if sts.value == DwfStateDone.value : break dwf.FDwfAnalogInStatusData(hdwf, 0, rgdSamples, ...
I've just measure and on my laptop I get about 800 acquisitions / sec in average, 1.2ms/capture.
The latency between captures depends on the congestion of USB, other running application and services may cause periodic lags.
Connecting the AD2 directly to the computer (root hub) should give better result than with external hub, and there could be difference in computer ports too (which may use different controllers). -
Hi @ajsb85
Rates up to 50MHz are supported but at such frequency it starts to be important the cabling, like shorter, shielded or twisted wires, termination... these to reduce crosstalk and ringing.
-
Disconnecting the USB channel will loose the software connection, so the data collection will stop. After reconnect it is required to "open" and configure the device again.
I would recommend using an USB hub instead of switch.
-
Hi @reddish
The digital IO signals are shared in the device between Digital-IO, Out and In functions. The Digital-IO has priority over Digital-Out. The Digital-Out is only applied for a signal when the Digital-IO Enable and Output are zero for the respective bit.
The protocols use the Digital-In/Out device resources to create various communication protocols. Only one of the protocols can be used at a time. The Digital-Out is used to generate the output signals and the Digital-In to capture the received data. Overriding a signal used by the protocol with Digital-IO may mess up the communication.
Note:
The I2C with clock stretching uses additional signals.
The DIO channe indexing for Digital Discovery starts from 0, 0 is DIO-24, 1 is DIO-25… -
Hi @Tood
The implementation in the WF app is similar to the Python example.
In the app the data reception and decoding is done in a background thread and the display in the main.
In Python probably the loop is slower. Try replacing the prints by storing data in a buffer and print/write at the end, or use threading. -
-
Hi @tr53
Thank you for feedback.
I also wanted to ask you if you are using network mapped devices... these can take some time to load.
I recommend using workspaces to save setups (views, cursors, notes, labels...) together with data. You can add Tabs in Scope and Logic, or Reference channels in Scope, Spectrum, NA, IA...
You can also export acquisitions or raw or channel data. -
-
Hi @Stefan-F
For "infinite play" fill the entire 256Mi Byte of device memory.
See the following example: DigitalDiscovery_Play.py -
Hi @tr53
I'm wondering if you tried the latest beta version which uses custom file dialog and if this solves the problem you noticed?
-
Hi @PeterCo
I hope this works:
dwf.FDwfDigitalInTriggerSourceSet(hdwf, c_ubyte(3)) # trigsrcDetectorDigitalIn # DIO 7 (DIO 31 for Digital Discovery) positve pulse 100ns-1us dwf.FDwfDigitalInTriggerResetSet(hdwf, c_int(0), c_int(0), c_int(1<<7), c_int(0)) # reset on rise (low, high, rise, fall) dwf.FDwfDigitalInTriggerSet(hdwf, c_int(0), c_int(1<<7), c_int(0), c_int(0)) # count while high (low, high, rise, fall) dwf.FDwfDigitalInTriggerLengthSet(hdwf, c_double(100e-6), c_double(1000e-6), c_int(0)) # min, max dwf.FDwfDigitalInTriggerCountSet(hdwf, c_int(1), c_int(0)) # count 1, no restart
See the WF SDK/ samples/ py/ DigitalIn_PulseTrigger.py
-
-
Hi @Someone
I recommend using the embedded Help Tab (or Help/Browse) and SDK manual since that is most up to date and correlated to the used app version.
The online help is (or it should be) concurrent for the last public release.
-
The next beta software version will expose polarity in a new function.
Thank you for the feedback.
-
Hi @angar
The included Adept Runtime 2.21.2 and newer requires at least Windows 7.
WaveForms 3.16.3 can work with older Adept Runtimes, downgrade this 2.19.2
https://digilent.s3.us-west-2.amazonaws.com/Software/Adept2+System+Installer/2.19.2/digilent.adept.system_v2.19.2.exeNext WF versions will require newer Adept versions which don't support Windows XP.
-
Hi @Someone
The with/without acquisition refers to the Buffer data. Tabs, references... are always included.
-
Hi @longboard
Exactly, the serial interface is not available with AD2.
Triggering Analog Channels on AD2
in Test and Measurement
Posted
Hi @eradarhughes
Right, you are calling Analog and DigitalInStatus, not Analog twice.
The bottleneck is mostly with the latency and not with the bandwidth.
In my earlier test I got 1.25ms/analog-acquisition (800Hz) on average. Calling analog+digital would probably be around 2.5ms (400Hz)
I've just tested ADP3450, the analog-acquisition over USB with 32ksamples is about 8ms, 64ksamples is about 14.5ms
Over Gb Ethernet 4.4ms w 32kS and 8.3ms w 64kS.
Currently the capture data for all channels are fetched (like 32k*4Ch), I will optimize this method in the near future.
On the other hand ADP can record 128M samples at up to 125MHz on one channel.
The device can also be used in embedded Linux mode with higher transfer rate and lower latency.