Jump to content

attila

Technical Forum Moderator
  • Posts

    6,637
  • Joined

  • Last visited

Everything posted by attila

  1. 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.
  2. 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);
  3. Hi @bryan78 I'm working on it.
  4. Hi @mantoll You could perform a digital-in (logic analyzer) capture and process the samples to measure the frequency and duty.
  5. 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.
  6. Hi @Conrad2468 There is no VISA support but C-API, see the WF SDK What communication problems do you have ?
  7. Hi @arang No. I used the second device as slave to show that the first device is working as master.
  8. Hi @arang You should know better what data are you transferring. Here you can see two devices used as mast and slave:
  9. 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...
  10. 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.
  11. 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.
  12. Hi @arang For hex use 0x or h prefix, b for binary and none for decimal. The scripts are coded in JavaScript.
  13. 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.
  14. 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(); }
  15. Hi @Shalin Are you looking at 'rgRX out' ? I could not run your VI but a similar script is working:
  16. 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.
  17. Hi @ssm The earlier code should work. Note the DDiscovery buffer size is 64Mx32 and capture at 200kHz will take more than 5 minutes !
  18. Hi @Caleb Messerly You know what is more convenient for you.
  19. 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.
×
×
  • Create New...