-
Posts
6,637 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Gallery
Posts posted by attila
-
-
Hi @Agouti
With Math channel the data can only be delayed. For compensation bidirectional shifting is available under Channel gear dropdown.
However with Logging you can process the data to show the exact length of each pulse.if(!Scope.Ref1.enable) Scope.Ref1.Clone(Scope.Channel1); var src = Scope.Channel1.data; var c = src.length; var dt = 1.0/Scope.Time.Rate.real; var pwm = []; var p = src[0]>0; var t = dt, j = 0; for(var i = 1; i < c; i++, t+=dt){ if(p==(src[i]>0)) continue; p = !p; for(; j<i; j++) pwm.push(t); t = 0; } for(; j<c; j++) pwm.push(t); Scope.Ref1.setData(pwm, Scope.Time.Rate.real);
-
-
Hi @mantoll
You could perform a digital-in (logic analyzer) capture and process the samples to measure the frequency and duty.
-
-
-
-
-
Hi @mantoll
It could be used but note that on digital side spi, uart and pwm are exclusive, only one function is supported at a time.
-
Hi @Conrad2468
There is no VISA support but C-API, see the WF SDK
What communication problems do you have ?
-
Hi @arang
No. I used the second device as slave to show that the first device is working as master.
-
Hi @arang
You should know better what data are you transferring.
Here you can see two devices used as mast and slave:
-
-
Hi @mowoodsiii
Yes, I tested it with 3 devices. Earlier on wsl ubuntu and now on rpi4 ubuntu20 amd64.
I modified the script a bit to automatically open an available device, to record 2M samples (for longer capture/run) and removed file writing.
I don't know why it is failing for you... -
Hi @Shalin
As you can see in the screenshot I can not run your VI since the sub-VIs are missing.
The voltage can be adjusted by FDwfParamSet (before FDwfDeviceOpen) or after with FDwfDeviceParamSet or FDwfAnalogIOChannelNodeSet.
-
Hi @arang
If you want to send two 8bit I2C word as sub address provide two values. If you enter one value only one 8bit word will be written after the address rd/wr.
Have "clock stretching" checked as it is by default. -
Hi @arang
For hex use 0x or h prefix, b for binary and none for decimal. The scripts are coded in JavaScript.
-
Hi @DavidM
The AD DIOs are 3.3V signals and the min input high for ATmega IOs at 5V Vcc is 3V but for Reset is 4.5V (0.9 * Vcc)
You could use 3.3-5V level shifter. -
-
Hi @ssm
If you specify 32bit samples you get 32bit samples. You are also using 32bit array, uint. How are you looking at the values ?
Here a 32bit walking 1 signal is connected to Digital Discovery DIN 0 to DIO 31 and captured like this:
#include <stdio.h> #include <stdlib.h> #ifdef WIN32 #include "dwf.h" #elif __APPLE__ #include "/Library/Frameworks/dwf.framework/Headers/dwf.h" #else #include <digilent/waveforms/dwf.h> #endif int main(int carg, char** szarg) { HDWF hdwf; STS sts; double hzSys; int cSamples = 100000; unsigned int* rgdwSamples = new unsigned int[cSamples]; char szError[512] = { 0 }; if (!FDwfDeviceOpen(-1, &hdwf)) { FDwfGetLastErrorMsg(szError); printf("Device open failed\n\t%s", szError); return 0; } FDwfDigitalInInternalClockInfo(hdwf, &hzSys); FDwfDigitalInDividerSet(hdwf, (unsigned int)(0.5 + hzSys / 200e3)); // 200kMHz FDwfDigitalInSampleFormatSet(hdwf, 32); // 32 bit samples FDwfDigitalInBufferSizeSet(hdwf, cSamples); FDwfDigitalInConfigure(hdwf, false, true); do { if (!FDwfDigitalInStatus(hdwf, true, &sts)) return 0; } while (sts != stsDone); FDwfDigitalInStatusData(hdwf, rgdwSamples, cSamples * sizeof(unsigned int)); for (int i = 0; i < cSamples && i < 30; i++) printf("0x%08X\n", rgdwSamples[i]); FDwfDeviceCloseAll(); }
-
-
Hi @notthetup
By default Magnitude is Relative to Ref: Channel1
C1 = c1/Source
C2 = c2/c1 and C2 phase is c2-c1
You also have Add Channel/ Math for Magnitude operations in gain unit. -
Hi @ssm
The earlier code should work. Note the DDiscovery buffer size is 64Mx32 and capture at 200kHz will take more than 5 minutes !
-
-
Hi @lordfrito
The Bus interpreter is not working correctly above 32bit sampling.
You could use 32bit sampling 'DIN-0 to DIO-31' or 'DIO-32 to DIN-15'
Thank you for the observation. It is fixed for the next version.
Digital Discovery to collect 16 bit SPI data - multiple slaves with same CS, CLK, MOSI and individual MISO
in Test and Measurement
Posted
Hi @Shalin
Try lower IO voltage. Eventual pullup which can help if the driver has some impedance.
The absolute minimum is around 0.96V but even if you try lower value it will limit to what it can. (The minimum recommended for the FPGA IO supply is 1.1V)
Here with 0.95V the threshold is 0.55V/0.65V
AD3 Wavegen is connected to one DIO of Digital Discovery and another DIO outputs the logic level of the input (with ROM Logic) which is connected to AD3 Scope 1.