• Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by JColvin

  1. Hi @B SULLY, In the end, Xilinx will be the ultimate authority on their license policies, but my understanding is that a "node locked license" (as per this Answer Record) restricts the software to only be used with one computer/machine/dongle. It doesn't matter what board is used so long as it is inherently supported by the software. As for the "Device locked license" (as per this Answer Record), you are then limited to the chip that the software targets, so if the software targeted a XC7Z010, you will be able to target that same FPGA, even if it's not the same physical copy of the board. So yes, if you got a replacement Zybo it should work with your existing software. I personally don't have any advice for your other questions though as I don't have any experience on DSP or SDR applications. Thanks, JColvin
  2. Hi @[email protected], Hmm, I didn't know WaveForms could do that; I learned something new today! Looking through the file, my understanding is that analog signal is just the aggregate of the signals detected on the Bus. Personally, I wasn't able to get the Logic Analyzer to show a nice sine wave like the one shown in the help file. I will defer to the creator of the WaveForms software (@attila) for more details on that particular demo. Thanks, JColvin
  3. Hi @dvg, You will be using a "delay" function to emulate the sleep function. If you are in an Arduino environment, the delay function will already be defined for you, otherwise if you are in MPLAB X you will need to define the function for yourself; I'm not aware of a way to directly import the linux functions otherwise. The Basys MX3 Library pack implements some of these functions already, such as this one. As noted in the function description for the example, if you are looking for exact times, you will need to use timers instead to calculate the delay. Let me know if you have any questions. Thanks, JColvin
  4. Hi @Moes, I'm not certain what you mean by "showing any waveform", but the WaveForms software in the Logic Analyzer does allow you to trigger based on the Identifier for the CAN protocol and the value sent by the UART protocol. Thanks, JColvin
  5. Hello, I would recommend checking out this thread with a very similar question here. Thanks, JColvin
  6. JColvin

    Vivado HLS

    Hi @PhDev, I have moved your question to a different section of the Forum where some of the other engineers on the Forum with knowledge (or at least thoughts) on HLS will be more likely to see it. Personally, I haven't used Vivado HLS and from my understanding Digilent has almost no material on it aside from potentially a couple of SDSoC platforms (which I haven't looked into so I don't know this for certain). In terms of using HLS itself (again, having not used it), I imagine it will (unsurprisingly) boil down to a blend of personal taste and design requirements. It certainly seems attractive if you are experienced in C code and not HDL but want to use FPGA/SoC resources. But if you have some pretty strict requirements in terms of how the process goes and can already do it in HDL, is it worth putting the time in to learn a new design flow? On the mature side of the tools, Xilinx felt comfortable enough releasing them as part of the WebPACK edition of Vivado last year rather than as a separate tool, so there is that in terms of maturity; not a guarantee obviously, but something to consider at least since it would be easy enough to try out with minimal financial obligation. Xilinx does have Design Hub with a lot resources on HLS. Thanks, JColvin
  7. Hi @[email protected], I have moved your question to a more appropriate section of the Forum. I do not believe it is possible to view analog waveforms (such as a sine wave) in the Logic Analyzer tool. In general though, as long as the signals on the IC are following LVCMOS standards (as per section 9.3 on the AD2 reference manual), which I imagine most 555 timers do. If your timers are providing a sine wave, I would use the Oscilloscope channels of the AD2 to view those sine waves directly; the logic analyzer pins aren't equipped (from my understanding) to readily view analog signals. Out of curiosity, which tutorial/instruction set are you looking at? I'm not finding the quoted phrase in the Using the Logic Analyzer tutorial, the AD2 reference manual, or the WaveForms 2015 reference manual. Thanks, JColvin
  8. HI @pappastech, I talked with our engineer and learned that there isn't a true and tested way to do this as the library was intended for the chipKIT/Arduino crowd, so the full functionality of the stack was not exposed to the deIP layer. What he recommended for what you are looking for is the following: //before calling DEIPcK::secondsSinceEpoch(IPSTATUS * pStatus) //if he calls // define his list of servers. uint8_t const * const rgHisNTPServers[] = {(uint8_t const * const) "0.us.pool.ntp.org", (uint8_t const * const) "1.us.pool.ntp.org", (uint8_t const * const) "2.us.pool.ntp.org", (uint8_t const * const) "3.us.pool.ntp.org"}; // then init the SNTP application SNTPv4Init(_LLGetDefaultAdaptor(), rgbSNTPv4Mem, SNTPv4MemSize, hDhcpDnsNtpPMGR, rgHisNTPServers,sizeof( rgHisNTPServers)/sizeof(uint8_t *), NULL); // then call deIPcK.secondsSinceEpoch(IPSTATUS * pStatus); However, his final note about this is "Untested, never tried, good luck", so be aware that we will be of limited help in terms of providing further functionality for SNTP within the DEIPck library that isn't already built in. I can try to provide some additional help, but I am personally not versed in this WiFi stack so I will be of limited help. Thanks, JColvin
  9. JColvin


    Hi @PIERRE L, You can download the RoHS II file here and the REACH file here. Let me know if you have any more questions. Thanks, JColvin
  10. JColvin


    Hi @PIERRE L, I have asked the appropriate person at Digilent for this information. Thank you, JColvin
  11. Hello, I have moved this thread to a more appropriate section of the Forum. Let me know if you have any questions about this. Thanks, JColvin
  12. Well, if you have enlarged your fonts, just seeing the top half of a character in a single byte space would be what I would expect to see. Again, I haven't done anything like this before with the Pmod OLEDrgb, so I'm not certain if my assessment is accurate though. Thanks, JColvin
  13. Hello @wowden, What you are running into is that the DACs on the AnalogShield use the SPI communication protocol, which uses pins 10, 11, 12, and 13 on microcontroller boards. Pins 11 and 13 are both outputs for the SPI protocol (specifically, the master-out-slave-in data line and the clock line), so if you switched them to inputs the two DAC chips would no longer receive any information from the host board. Let me know if you have any more questions. Thanks, JColvin
  14. Hi @ER-OLEDM024-1, Unfortunately, we're not familiar with that microcontroller or that OLED display, so we don't have any code specific to them to offer. Thanks, JColvin
  15. Hi @Yacov Cohen, Ah, I see. No, removing JP1 will not compensate for changing bit 20. JP1 is only there to help prevent any conflicts between voltage sources. The reference voltage (by default internal to the Pmod AD5) restricts what range the ADC can measure, limited to +/-Vref/gain, as shown on page 5 in the datasheet in the specifications table. So if you wanted to measure any value greater than 2.5 V (or less than -2.5V) you will need to change the bit 20 so that you can use pins 10 and 11 on header J2 as your external reference voltage. Thanks, JColvin
  16. Hi @flexible111, What do you mean by "showing half and rotated by 180 degrees"? Are the characters upside down, flipped about the vertical axis, or something else? I'm also not certain what sort of alterations you made to the print functions or which functions in particular you are referring to. Thanks, JColvin
  17. JColvin

    Pmod Ad5

    Hi @flexible111, Whether or not you are doing something wrong depends on what you have attempted to do so far. Could you provide us some more information on what (presumably) HDL you have tried to implement, what board you are using, the .xdc file you are using, and what you are attempting to accomplish with the Pmod AD5? Thanks, JColvin
  18. Hi @pappastech. I got it working with the deWebIOServer in the Arduino IDE 1.6.9. In the deWebIOServerSrc.cpp file that opens up with the HTTPServer example, I adjusted the loop function to say the following: unsigned long status = 0; unsigned long epochTime = 0; void loop(void) { // process the HTTP Server ProcessServer(); epochTime = deIPcK.secondsSinceEpoch( &status ); if ( status != ipsTimeSinceEpoch ) { //do nothing since it'll be printing for awhile while everything gets connected } else{ Serial.print( "EpochTime: " ); Serial.println( epochTime ); } } Let me know if you have any questions. Thanks, JColvin
  19. Hi @Yacov Cohen, The 2.5V is a reference voltage used by the ADC, it is not the main power source of the ADC. Based on the image you provided, you are providing 5V to both the digital pins and to power the embedded ADC. Thank you, JColvin
  20. Hi @pappastech, The big thing that you will need to ensure is that you are connected to the internet with your board, otherwise you will never connect to a time server. The deWebIOServer under the HTTPServer example connects you to a WiFi network (after you change the the username and password in the HTTPServerConfig.h file, explained more in this tutorial here), though I am still working on getting the secondsSinceEpoch function working in that particular demo. Thanks, JColvin
  21. Hello @dvg, The _ISR macro is handled by the XC32 compiler; you can learn a bit more about it here. My understanding of the ISR function in the rgbled.c file is that once it is initiated it will continue to update itself as the timer completes and triggers the interrupt; no further action from the user is needed. If you want to have the LCD change something based on an interrupt, my understanding is that if you wanted to use Timer5, you will be limited to only one update rate (currently the 300 microseconds that is being used to update the RGB LED). What I would recommend would be to set a new global variable in the "void __ISR(_TIMER_5_VECTOR, ipl2) Timer5ISR(void)" function that you can then check in the main.c file to then call another function to update the LCD screen. The thing not to do here would be to update the whole LCD screen inside of the interrupt function since you would then be blocking all other processes of the PIC32. I'm not certain why you would need to change the rgbled.h file at all, but you may be able to adjust the TMR_TIME to 1 to change the interrupt to every second, although I don't know for certain what values that register accepts, though it won't hurt to try. Let me know if you have any more questions. Thank you, JColvin
  22. Hi @CharlieO21, Could you attach a picture of your physical set up on how you measuring the impedance? When I measured the output impedance of a pin on the pattern generator set to constant with an output Z, I measured. Here is a picture of my setup. Thanks, JColvin
  23. From the album: Forum photos

    Setup of pin 7 (brown) on the pattern generator at a constant Z value to measure the resulting impedance with a black ground pin for reference.
  24. JColvin


    Hi @peepo Digilent has not done any designs for our Pmods on the Lattice Semiconductor iCEstick. Thank you, JColvin