Jump to content

JColvin

Administrators
  • Posts

    6,666
  • Joined

  • Last visited

Everything posted by JColvin

  1. Hi @Nevermnd, I apologize for the delay. I don't know if it was a typo on your part, but I think the main problem you ran into is that you have the Nexys 4 DDR (now known as the Nexys A7), but, at least based on the link you provided, you were working with the "Nexys 4" which does not have the on-board DDR memory. The correct link for the Nexys 4 DDR / Nexys A7 OOB demo (also accessible from it's Resource Center) is here: https://digilent.com/reference/programmable-logic/nexys-a7/demos/oob. The more recent releases, including 2023.1, give you a completed project that will already have the correct .xdc included, and only need you to click "Generate Bitstream", rather than making you go through the whole create_proj.tcl process. On my machine at least, I was able to generate the bitstream without errors. Feel free to let me know if you have any additional questions or feedback about the process at large. Thanks, JColvin
  2. Hi @bobql, The built-in AnalogIO_DigitalDiscovery.py example should cover everything that you are looking for; the main detail is that the AnalogIO functions handle power supplies, reference voltages, voltmeters, on-board temperatures, etc for all devices. Section 14.4 (Digital Discovery) and the Section 7 (AnalogIO) within the WaveForms SDK reference manual have some additional documentation. Let me know if you have any questions. Thanks, JColvin
  3. Hi @jostikas, I suspect that this is a software bug rather than a hardware one (I verified your experience was also present on the 3.16.3 release) since, as far as I understand, all DIO pins for both the Analog Discovery 2/3 are implemented identically on the PCB side of things. Regardless, thank you for bringing this up since I do not recall anybody mentioning this before on the Forum or otherwise. I'm not personally don't have any further information, but am hoping that Attila will have some further insight when it's no longer the weekend in his timezone. Thanks, JColvin
  4. Hi @mmessuri, The breakout setup I have uses the Pmod TPH2, https://wiki.digilent.com/reference/pmod/pmodtph2/start, which is just a dedicated test point header module, and the SD card adapter I am using is the Pmod SD, https://wiki.digilent.com/reference/pmod/pmodsd/start, but I anticipate there will be effectively zero difference between the Digilent branded SD adapter and the mikroElectronika one you have. Maybe the breadboard setup is contributing to the crosstalk happening on the CS line, but having extra long pins on the SD card to extend on both sides should take care of that. As for why the other Logic Analyzer is giving better/more consistent results, it looks like from the photo where I can see the Logic Analyzer, it appears to run at 24 MHz (or at least that is what it has labeled on the shell) and ends up missing (or maybe filtering via software? Not certain what options it has) the tiny cross talk pulses. This is what I see with the ADP2230 (has 50 MHz bandwidth oscilloscope inputs) when I probe the CS line and also treat use the Scope to Digital functionality to interpret the Scope Channel 1 as part of the SPI bus. example of spurs that I see: zoomed in on a spur: Or at least that's my theory of what the Digital Discovery also operating at a high sample rate is detecting. I'm hoping @attila may have some more insight into this when it's a more reasonable timezone hour for him. Thanks, JColvin
  5. Hi @bobql, I believe you'll only be able to get up to 40 bits wide: but otherwise I believe the protocol tool itself is limited to 32 bits per word. I haven't tried outside of direct loopback, but I believe you should be able to send 32-bit words at a time. Splitting up the transaction into multiple 8-bit words would be the way to proceed for samples larger than that though. Let me know if you have any questions. Thanks, JColvin
  6. Hi @Kevin.C, I believe the latest beta versions (3.22.14 onwards) of WaveForms are now signed as per this thread from last month: The beta versions are freely available here: The next release version of WaveForms will be signed as well, but I am not certain when the next release will be; it usually coincides with a compatible product release, but Digilent does not have anything to announce as of yet. Let me know if you have any questions. Thanks, JColvin
  7. Hi @mmessuri, None of my co-workers in my timezone had the hardware to replicate my setup, but I think got it working, including getting rid of the excessive leftover bits. I have attached the WaveForms workspace that I am using. To be honest, I'm not exactly certain what changed in terms of software, since all I had done was roll back to an older version of WaveForms to test out the SPI MOSI triggering, found it was working, and then could not get it to fail to trigger again despite having repeatedly seen it fail all morning and the fact that I had not made any hardware changes yet. I tested multiple two different Digital Discoverys and multiple versions of WaveForms (20.1 release, 22.2 release, and latest beta 22.16) and multiple known MOSI transaction values (h40, h51, h02). The main hardware change that I did was to use a twisted wire pair for the Chip Select signal with a ground signal wrapped around it, as recommended by the WaveForms developer for this thread on the same CS spikes that I was seeing: I happened to use the high speed twisted wire pair to accomplish this, which I believe I saw you also had from your photos. Otherwise the wiring is all the same. 3.3 V supply, ground, and regular SPI pins from the Arduino Uno to the SD card; DD using DIO 24 for Select, DIO 25 for Clock, DIO 26 for MOSI, and DIO 27 for MISO. I put the ground for the twisted CS pair wire on the ground line for the 3 boards and the other end into DIO 28 (since I didn't want to split that wire apart) and had DIO 28 and 24 pulled low in the Supplies instrument. Let me know if it this works for you, and I'll be more than happy to continue debugging if you are still not able to get the expected results. Thanks, JColvin DD-SPI-SD-analyzing.dwf3work
  8. Hi @mmessuri, Your wiring looks correct to me (thanks for clarifying that the ground between the 3 devices are normally all connected since only 1 out of 3 photos shows the DD ground connected), and I understand your frustration about not getting the SD card to work. I located an Arduino Uno around my office and am now in the process of debugging the built-in CardInfo example with the Digital Discovery. I can manage to get the Protocol SPI Spy to report recorded data (it reports a number of leftover bits) before each transaction, and can get the Logic Analyzer to capture data when I set the trigger to an individual pin. But attempting to trigger on a SPI MOSI value of h40 (which I can see repeatedly comes up early on in the transaction) never fires, even though if I open the Events view, I can see and have WaveForms jump to the h40 event on MOSI just fine. Interestingly, if I set the Logic Analyzer to trigger on SPI MISO, then it catches whatever trigger just fine. The clock signal also does not appear to be free running and I seem to occasionally catch a spurious(?) positive edges on the Chip Select line, which I suspect is causing the leftover bits. I half wonder if this is because the Uno runs at 5 V logic, but the Digital Discovery uses 3.3 V CMOS (albeit 5 V compatible) but that corresponding lower threshold is getting tripped. Regardless, that doesn't explain why the SPI MOSI trigger value isn't being caught as it is the second one in. I will continue to do more debugging today to get a better answer for you as, indeed, one of the primary purposes of the Digital Discovery is to debug and view different protocol transactions. Thanks, JColvin
  9. For what it's worth, I personally consider beta versions of WaveForms to be functionally equivalent to release versions. Main reason that they are called "beta versions" is because having frequent new releases would end up being confusing with regards to messaging (and a drain on psyche with needing constant updates, but maybe that's just me) and also because the other engineers tasked with testing the new releases (usually coinciding with new products) and updating external documentation can't keep up with Attila. He's too powerful.
  10. Hi @mmessuri, I don't have a SD card set up on hand to readily test this out for myself, but lets see if I understand your description correctly (a screenshot and a picture of the physical setup would help). When using either the Protocol Analyzer with the SPI Spy tab or just the Logic Analyzer with no trigger condition (or just on Auto which, as you saw, will start capturing data after a timeout period), you can still see the various lines being toggled in their expected locations. (I am presuming that you have double checked the physical connections considering that you are not using the default IO pins). I have found with the Digital Discovery that if you are not the the Spy tab and instead on the Master or Custom tab, even with the Debug with Logic Analyzer selected, the digital input lines still seem to be driven so that data reception cannot occur. If I have the Protocol tool open to Spy and then either Debug with the Logic Analyzer or use only use the Protocol tool, then I can receive and trigger on a value as expected: Digital Discovery WaveForms screenshot: Digital Discovery sniffing out the SPI data being sent between an Analog Discovery 3 communicating with a random Pmod. Probably should have not had a bunch of random other stuff underneath everything else for a cleaner picture but oh well. Let me know if you have any questions or are still experiencing problems and I'll see how I can help. Thanks, JColvin
  11. Hi @joinhairn, I do not think the Pmod BT2 can handle multiple connections as it does not support the Bluetooth 5.0 (iirc, this is the version of Bluetooth that allowed multi-pairing, at least in the sense of remembering multiple connections without having to re-authorize different pairing every time. Caveat that I'm not fully immersed in the Bluetooth technology capabilities). Regardless, for your setup with one FPGA receiving and communicating to different boards, it would need two separate Pmod BT2s on it, which of course is more hassle and more expensive. The Pmod BLE or the Pmod ESP32 may be able to support the simultaneous connections, but both of those modules would likely require firmware updates (as they came out before BT 5.x was ubiquitous) and I imagine that the host controller to properly handle the simultaneous connection would need to be created, neither of which Digilent has support for. I do not know if wireless communication is a requirement on your end, but sending data over physical wires (such as UART) between the FPGAs would almost certainly be easier and faster communication than the overhead of managing a wireless stack on an FPGA. If you are needing to do wireless communication, I do not have any specific recommendations from Digilent that will nicely meet your needs. Thanks, JColvin
  12. Hi @BLedoux, The Nexys Video FMC signals are routed with 100 Ohms differential impedance for each pair: Another post from the design engineer for the Nexys Video mentions this as well here: I am not certain what information you are looking for with regards to routing constraints, but I'll be happy to find out more information for you. Let me know if you have any questions. Thanks, JColvin
  13. Hi @Yuko Yamamoto, I asked another engineer more familiar with the JTAG SMT3 and they mentioned that if you were messing with the EEPROM through AMD, there is a chance that the tri-state buffers for the JTAG lines are no longer being properly enabled. I have sent you a PM to help reconfigure the JTAG SMT3 to its default state. Thanks, JColvin
  14. Hi @DaniS, I verified that the workspace you attached causes WaveForms to crash while attempting to open it in 3.22.2 on my Windows 10 machine. I don't know what might have changed on the software side of things, but I have been successfully running the attached workspace without apparent issues for several minutes on the latest beta version of WaveForms: Please let us know if you still encounter any issues. Thanks, JColvin
  15. Hi @KX_1, Digilent does not have such an assembly for the JTAG HS3. You may find this thread (mostly discussing the conversion of the 2 mm pitch JTAG header that Xilinx and thus the HS3 uses to a 2.54 mm pitch) of some help though: Let me know if you have any questions. Thanks, JColvin
  16. Hi @gcb, I think I understand what your confusion is and will do my best to help clear it up. "Continuous digital play is not available with any device". -- It is not possible on any Digilent device / through WaveForms to have an existing file of digital data on your host computer and then stream/play back ("reverse digital recording") that data on the 16 Digital I/O channels (or however many Digital I/O signals on a Digilent device). There are three potential alternatives that partially resolve the above inherent limitation and might help you. One is the Play function exclusive to the Digital Discovery where you can take previously captured digital data and play that captured digital data back out on different digital lines. But as you are not working with recorded data, this will not help you. The second potential work around is to use the Arbitrary Waveform Generator/AWG/Analog output channel. The AWG does support the streaming of data from a file stored on a host computer. This (in my limited understanding of the backend of WaveForms with poor terminology) loads/buffers the file into the WaveForms application which then feeds the data to whatever Test and Measurement Device output buffer in a circular manner. There are two catches with this method. The biggest one is that because you are using a single analog output channel, that is equivalent to only using a single digital channel / 1-bit digital data (on/off). The second catch is WaveForms feeds the file data to the device's analog output buffer over USB; if the device's buffer is small and the USB connection is slow, you may be at risk to lose/miss some samples while streaming the data. Regarding that second catch, the AD3 only has a 32k device buffer size and supports up to 4 MS/s for streaming out analog output data. The ADP3x50 and the ADP2230 have much larger buffers thanks to their on-board DDR memory. The 2230 also uses USB 3.0 to further help out with the streaming of data, letting WaveForms rapidly stream large chunks of data into the big buffer, putting you at far less risk of losing samples while any USB overhead/handshaking occurs before the next chunk of data is streamed over. This does not get around the fact that you are working with only a single channel output though, which might be a deal-breaker if you are wanting to stream multi-bit digital data in parallel. Third workaround is to simply load the entire custom data into the device's on-board memory for analog output or digital output. You won't have the risk of missing any samples as you are not streaming, but are, of course, limited to the buffer size for how much data you can pack in. Let me know if you have any questions. Thanks, JColvin P.S. If digital data streaming was supported, your math principle is correct. Technically you would get more samples and seconds of playback out of the deal because the all of the MS values are rounded down from MiS, meaning 64 MS is actually 67,108,864 samples, but you have the right idea regardless. There are a couple of lines in the various specification documents mentioning this, but it's definitely one of those "another sentence in a big block of text" situations.
  17. Hi @Jason Tan, I have sent you a PM. Thanks, JColvin
  18. Hi @AbdulWaheed46, How fast is the signal being toggled from the Arduino? Can you share a screenshot? If you have a single Analog input channel enabled on the default configuration, the most samples you can get per acquisition (i.e. the buffer size) is 32768 samples, which you noted and as is also mentioned in the Horizontal System for the Analog Input Specifications: https://digilent.com/reference/test-and-measurement/analog-discovery-3/specifications#analog_input_channels). I am mentioning this first because the buffer size per acquisition is a fixed value. The sample size will then dictate how large of a "slice" of time you can view/capture at different sample rates. At 100 MHz (aka, a new sample every 10 ns), the 32768 sample buffer size only allows you to view a time slice of up to 327.68 us, or correspondingly, a time base of 32.768 us/div. If you are zoomed out to a wider time scale, you would have empty space on either side of the 327.68 us block of data that was captured at 100 MHz before the buffer was filled. To help with this, WaveForms will automatically adjust the time base / sample rate when the other value is changed so that the acquired data is always taking up the entire view plot. Let me know if you have any questions. Thanks, JColvin
  19. Hi @woldes, One of your hardware boards might already have pull-ups integrated into the PCB if I2C is working on the hardware end of things. The other thing to double check is that you are connecting the correct wires from the AD2 to your circuitry (looks like it should be DIO 2 and 3 from your screenshot). Thanks, JColvin
  20. Hello, I have moved your question to a more appropriate section of the Forum where the WaveForms developer will be able to see and respond to your question with more accuracy than I can provide. Thanks, JColvin
  21. Hi @Ganesh Surampalli, Yes, a voucher to let you use a specialized version of the Vivado ML Enterprise Edition (which lets users create designs for all Xilinx/AMD devices, including the Kintex-325 FPGA present on the Genesys 2 which the ML standard edition does not support) is included with the Genesys 2. For additional information, please see my reply in this post here: Let me know if you have any questions. Thanks, JColvin
  22. Hi @mulzem, The vouchers (provided to Digilent by Xilinx, so they ultimately have the end say on how the vouchers work) have been explained to me to work as follows: For Digilent devices that use an FPGA not included with the free version of Vivado (such as the Genesys 2 with its Kintex-325 FPGA), you will receive a node-locked, device-locked voucher to be able to synthesize and generate bitstreams for designs on a single machine. You can redeem the voucher on the Xilinx Product Licensing site, https://www.xilinx.com/getlicense.html. Rather than locked to a particular version of the software (Vivado Design Suite vs Vivado ML vs HLx vs whatever branding is being used), the voucher is instead time limited for 1 year. During that one year, you will be able to update your Vivado/Vitis install to whatever newest version is available. After the one year period has completed, you will no longer be able to update to newer versions, but you will be able to freely continue to use the existing version that you do have. As for what IPs are available, I believe that all of the regular features (synthesis, ILA, base IPs like Zynq or Microblaze, Clock wizards, etc) are available in both the free Vivado ML Standard Edition and the paid (which the voucher would take of) Vivado ML Enterprise Edition, as per here: https://www.xilinx.com/products/design-tools/vivado/vivado-ml-buy.html. It is specifically the Kintex 325 FPGA that is locked behind the Enterprise/voucher. There may be some IPs that are not included with the voucher nor the free/paid version of Vivado. For the Genesys 2 specifically, this would be the Gigabit Ethernet PHY (TEMAC IP) and the DisplayPort IP licenses; https://digilent.com/reference/programmable-logic/genesys-2/reference-manual#software_support. If you wish to use these IPs beyond their own separate evaluation periods, you would need to pay Xilinx for them, same as Digilent would have to. From my understanding, all other "standard" IPs are freely included with Vivado. If you want to know the specific status of an IP, say Clocking Wizard, you can search for it on the Xilinx website and see if it is bundled with Vivado (as opposed to having an option to evaluate the IP). I believe you should be able to transfer the license to a different machine. This is covered in the last question in Section 8 in the Xilinx/AMD FAQ on licensing, https://www.xilinx.com/products/design-tools/faq.html, "What happens when a license machine "dies" or is replaced". Again, Xilinx will have the end say on how the vouchers will specifically work (though I imagine the licensing site will also explain what you are getting before it uses the voucher), so any specific functionality questions I would recommend you ask Xilinx about. I do not have a license nor a Genesys 2, so unfortunately I do not have any specific experience to share. Let me know if you have any questions. Thanks, JColvin
  23. Hi @Dniel.Schmid, This will correspond to the line item of s25fl128sxxxxxx0-spi-x1_x2_x4 The correct part is noted in the Reference Manual, https://digilent.com/reference/programmable-logic/nexys-a7/reference-manual#quad-spi_flash, but it looks like the callout for what to select in Vivado has not been updated to the names that Vivado now uses. I see about updating that. Otherwise, what I would personally do if you can't find a listed Manufacturer in the dropdown by looking up the part's official datasheet (as is the case for the S25FL128SAG since Cypress bought Spansion and apparently somewhat recently Infineon acquired both Spansion and Cypress) would be to simply start typing the letters of the module in the search bar to see what comes up to help narrow down your results. Or just do what you did and get a reply from a representative of Digilent. Let me know if you have any questions. Thanks, JColvin
  24. Hi @JPierce, I apologize for the delay. I received confirmation that, as of writing, Digilent has over 200 pieces of both the SMT3 and SMT4. I don't have any insight into the distributor side of things regarding their lead times/lack of stock; I'm not involved with that end of the business. Thanks, JColvin
  25. Hello, I have moved your question to a more appropriate section of the Forum. Thanks, JColvin
×
×
  • Create New...