HoWei

Members
  • Content Count

    26
  • Joined

  • Last visited

About HoWei

  • Rank
    Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I am triggering in sync mode, but the trigger signal is not super-clean. Sometimes it seems to trigger wrongly and I would like to change the trigger level for the DIN0..23. Is this possible in the DigitalDiscovery ? I only found the "AnalogInTrigger" functions, and when reading out they are all 0. [edit:] I found the follwing command: pfsLevelLow = c_int() pfsLevelHigh = c_int() pfsEdgeRise = c_int() pfsEdgeFall = c_int() dwf.FDwfDigitalInTriggerInfo(hdwf, byref(pfsLevelLow),byref(pfsLevelHigh),byref(pfsEdgeRise),byref(pfsEdgeFall)); print(pfsLevelLow, pfsLevelHigh, pfsEdgeRise, pfsEdgeFall) but this returns: c_long(16777215) c_long(16777215) c_long(16777215) c_long(16777215)
  2. I am able to programm the voltage to 1.8V, but whenever the instrument is reset the voltage is back at 3.3V. I need to set it permanently to 1.8V to not destroy/degrade my DUT, which has 1.8V digital inputs only. Is it possible to set the default output voltage to 1.8V permanently?
  3. Please find attached the code I am using - I am capturing 30 samples. This is working, when using the settings: line 70: dwf.FDwfDigitalInSampleFormatSet(hdwf, c_int(16)) line 113: dwf.FDwfDigitalInStatusData(hdwf, byref(rgwSamples, 2*cSamples), c_int(2*cAvailable.value)) The recorded output is : 1,0,3,2,1,0,3,2,1,0,3,2,..... (as expected because I am toggling DIN0 and DIN1, triggered by DIN23) But when changing these lines to: line 70: dwf.FDwfDigitalInSampleFormatSet(hdwf, c_int(8)) line 113: dwf.FDwfDigitalInStatusData(hdwf, byref(rgwSamples, 1*cSamples), c_int(1*cAvailable.value)) The recorded output is 1,515,1,515 ... for the first 15 samples, then it 0,0,0,0 for the last 15 samples. But I expect the same output as above. DigitalIn_Sync.py
  4. Hi, sorry but I think your answer does not help me to understand it better - yes the arguments of the commands are clear. But what does it really mean if I set the sample format to "8" (for example) ? Does it limit the captured input lines to DIN0..7 ? Or does it mean something different ? If I want to capture only DIN0..7, do I have to set: dwf.FDwfDigitalInSampleFormatSet(hdwf, c_int(8)) dwf.FDwfDigitalInStatusRecord(hdwf, byref(cAvailable), byref(cLost), byref(cCorrupted)) dwf.FDwfDigitalInStatusData(hdwf, rgdwSamples, c_int(cAvailable.value*1)) I am still confused ..
  5. Hi, I need help in understanding the difference of the following commands, as it does not what I expect in example "DigitalIn_Sync.py": dwf.FDwfDigitalInSampleFormatSet(hdwf, c_int(8)) --> I expect to apture data only from DIN0..7 dwf.FDwfDigitalInSampleFormatSet(hdwf, c_int(16)) --> I expect to capture data only from DIN0..15 dwf.FDwfDigitalInSampleFormatSet(hdwf, c_int(32)) --> I expect to capture data only from DIN0..23,DIO24..31 But only the second command (is default in the example), does work as expected. I am triggering in DIN23. I tried to limit the capture inputs to DIN0..7. Can you please help me in understanding the above command ?
  6. Just found that modifying the following line will do the correct thing: # trigger detector mask: low & hight & ( rising | falling ) dwf.FDwfDigitalInTriggerSet(hdwf, c_int(0), c_int(0), c_int(1), c_int(1)) <-- the 2 last 1s are causing rising and falling edge detection ! Outputfile will be: 7,4,3,0,7,4,3,0,7,....
  7. Hi, I am sending slow DDR data to DIN0,1,2 as DIN0 = DDR_clk, DIN1,2 = DDR_Data In Waveforms I created used "sync-Trigger" and created a bus with "either-edge" interpretation. The captured data look correct: I try to do the same thing in python3 via SDK using the example "DigitalIn_Sync.py". There I do not receive/capture the "falling-edge" data. It only capture the "rising-edge" data. The captured file looks like: 7,3,7,3,7,3,7,3,.... How can I modify the code to capture the "falling-edge" samples ?
  8. Okay thanks for clarification - in other words: SDK does not provide the "high-level-function" of bus definition, as waveform-GUI does. Interpretation of data has to be done by the user.
  9. Okay, I will try to ask more clearly. In the Waveforms GUI a bus can be set up to analyze and interpret captured bus data and export it. But I am using SDK to control the DigiDisco via python. Is this bus-setup available via SDK, or do I have to create such a bus definition from scratch when using SDK ? As far as I see from the given SDK examples, the capturing of DIN always applies to the whole DIN-Port (DIN0..23, DIO24..39) at once, and the data interpretatoin has to be done by the user-application. Is that true ?
  10. I am working myself thru the existing SDK python-examples - especially DigitalIn_Sync.py Is the "either-edge" option already available thru WaveformSDK in the beta-version ? Can I set it by using: # in sync mode the trigger is used for sampling condition # trigger detector mask: low & hight & ( rising | falling ) dwf.FDwfDigitalInTriggerSet(hdwf, c_int(0), c_int(0), c_int(1), c_int(1)) Was the either edge function added to the trigger or to the bus-decoding ? If for bus-decoding - how would I apply it via SDK - is this possible ?
  11. I found that the SPI implementation from SDK can be used, but the loose timing between SPI-Select and SPI-CLK/DATA is not adoptable to my application - thus I am trying to implement it again with tighter timing.
  12. How would I apply this sensor-mode for SPI when writing a python-script with SDK ? This long delay between SPI-Select and SPI-CLK/MOSI cannot be used in my application. I need tight timing between the SPI-Select and SPI-CLK/Data. Can you provide an python example ? Thanks
  13. Hi, I just want to cget confimation if I understood the Waveform SDK programming correctly (with python3) Supposed I do have 2 different output busses on the DIO-Lines (e.g. SPI on DIO 0,1,2 and I2C on DIO 6,7) and I want to 1. write to SPI (without doing anything on I2C) 2. write to I2C (without doing anything on SPI) I can only do it with resetting the digital-out (dwf.FDwfDigitalOutReset()) in between the 2 transmissions. It is because when starting the instrument (dwf.FDwfDigitalOutConfigure(hdwf, c_int(1))) all output setting will be applied at the same time, right ? My questions: 1. Is it possible to configure both output-busses FIRST and then start the instrument only for SPI DIO0-2, and afterwards starting the I2C on DIO6-7, without any reset in between ? 2. When starting the instrument with (dwf.FDwfDigitalOutConfigure(hdwf, c_int(1)) will the Digital input alsow be affected, or is the Digital input controlled completely asynchronous ?
  14. I received the Digi-Disco today and started evaluation. I found the following mode, which is ( I think) what I will need: - Sync-Trigger-Mode (allows 90MHz sampling rate on DIN0..23, DIO24..31) - Bus with "either" - edge sampling Apparently this setting starts when the first edge is detected and samples for a given number of samples (up to 100MSamples). 1. Do you see any issues with this settings ? 2. Is it possible to use "sync" trigge rmode with higher sampling rate ? 3. Is the "either-edge" option already available thru WaveformSDK in the beta-version - would like to programm in python ?
  15. Hi, in case the number of GPIOs used for an application is exceedig the Digi-Disco GPIO count, is it possible to operate 2 Digi-Discos on one Laptop and synchronize them somehow ?