Jump to content

attila

Technical Forum Moderator
  • Posts

    6,454
  • Joined

  • Last visited

Everything posted by attila

  1. Hi @AndayLe The above should work. Make sure the device opening succeeded, the function return is 0 and/or hdwf is not 0. What are you doing after starting the generator ? If your the program quits the device is closed and outputs are by default stopped. Use software wait or use: dwf.FDwfParamSet(DwfParamOnClose, c_int(0)) # continue running after close
  2. Hi @jostikas I added information to the Help.
  3. Hi @philip.mcconnell You can use the Script tool or View/Logging for this purpose. Scope.single(); Scope.wait(); var ch1 = Scope.Channel1.fftmagnitude; var ref = Scope.Ref1.fftmagnitude; var hz = Scope.Ref1.fftfrequency; var c = ref.length; clear(); for(var i = 0; i < c; i++){ if(ch1[i] > ref[i]+2.0) print(hz[i],ch1[i],ref[i]); }
  4. Hi @AndayLe You can set FDwfAnalogOutRunSet to 15.0 and FDwfAnalogOutRepeatSet to 1. You may also want FDwfAnalogOutIdleSet DwfAnalogOutIdleOffset
  5. Hi @bobql You can also use the newly added DwfParamDigitalVoltage with FDwfParamSet or FDwfDeviceParamSet
  6. Hi @jostikas The I2C master (with clock stretching) and slave mode is implemented using state machine, 'ROM logic' feature of Pattern Generator. Since both the clock and data lines are inputs for machine, these need to use the least significant bits, up to the log2 of Patterns device buffer size. The default configuration for AD3 allocates 2k samples for Patterns so DIO 0 to 10 can be used. With the 5th configuration 32k samples and DIO 0 to 15 can be used for I2C. The no clock stretching implementation is not recommended since it simply generates clock/data pattern, is is kept for backward compatibility, since this was the first implementation.
  7. Hi @Oscar A There is no interpreter in the application for this protocol, but it could be implemented with Custom interpreter.
  8. Hi @Ayesha Zaman Make sure the acquisition time / sample rate is not more than the device buffer size, 8192 for AD2, otherwise it will try to use record/data streaming which is limited to a few MHz for AD2. Time (s) - mso/1 Amplitude (V) - mso/1 0 3.97984m 10n 3.97984m 20n 3.97984m 30n -10.8283m 40n 7.68187m 50n -14.5303m 60n 3.97984m
  9. Hi @David Aurora Corrected in the latest:
  10. Hi @fr.bernardo It should be something like this: var reg = Read0(8,4); // read 4 bytes from DQ0, SISO, var ss = reg[0]>>6; var bd = ((reg[0]&0x3F)<<8) | reg[1]; var tp = (reg[1]<<3) | (reg[2]>>5); if(ss!=0) return "SS"+ss; return bd; // or scale it to unit
  11. Hi @DaniS Feel free to use the beta version. As you can see in the logs, in addition to new features, bugs are fixed.
  12. Hi @Kodeeswaran S I run the following code on Windows and Linux, and got the same result: DigitalIn_Trigger2.py record.windows.csvrecord.linux.csv
  13. Hi @KTP Yes, all functions are thread safe.
  14. Hi @Kodeeswaran S Looking at you csv files: in window the first period is 206 samples long, according the column1 0.201, and in linux 409, 0.400 The sample step of column1 is both files is 0.000979 but you mention different frequencies in windows and linux I don't recommend using this 'WF SDK'. The logic.record performs simple separate captures than should not be concatenated... See the real WaveForms SDK manual and examples here: The AD3 first/default configuration has 16ki samples allocated for Logic Analyzer so you can use acqmodeSingle, you don't have to use acqmodeRecord, to capture up to this number of samples.
  15. Hi @gcb The Play mode with Digital Discovery lets you generate 1-16 bit wide digital signals from tabs. The tab data can be an earlier capture or imported csv, txt or binary file, or generate with the embedded Script interface. This Play mode is not 'infinitely' continuous, but up to 256MB. For 'infinite' length AWG can be used on other T&M devices. These are intended for analog signals, but can also output 1 digital signal.
  16. Hi @DaniS The workspace opens with the latest software version:
  17. Hi @Aurelien Yes, that rom logic but using from SDK, see samples/py/DigitalOut_ROM_Mux.py https://digilent.com/reference/waveforms_-_rom_logic Again, this can be very complicated to code it for state machine. You can use the Scrip tool to automate tasks in WaveForms application.
  18. The Network Analyzer in this has spectral measurements, see:
  19. Hi @Eugene101 Ideally it should be flat but nothing is perfect. I think such 0.2dB deviation is acceptable, unnoticeable with common usage. https://www.ni.com/en/shop/electronic-test-instrumentation/oscilloscopes/what-are-oscilloscopes/3-hidden-oscilloscope-specs-that-really-matter.html If you take relative measurement, like it is done by default in Network Analyzer, the different between channels is lower 0.002-0.05dB, see C2 is relative to C1 For more accurate measurement a close compensation can be used, an initial close loop reference curve R1, see M1 is C1 relative to R1 (earlier saved C1 curve)
  20. Hi @fr.bernardo First see the examples in Custom and Help tab. If this is working with your sensor and you need precise ~10 nanosecond level timing you can turn to Sensor mode. Otherwise you can use Custom mode or Script tool for ~10 millisecond precision software timing.
  21. Hi @David Aurora It will be in the next build.
  22. Hi @Aurelien SPI Slave feature is not yet available with SDK. I'll port it from the application to the library later. It could be implemented using state machine with ROM logic but this is very complicated to do.
  23. Hi @David Aurora Thank you. I'll tell my boss 🙂
×
×
  • Create New...