JColvin

Administrators
  • Content Count

    2972
  • Joined

  • Last visited

  • Days Won

    87

Everything posted by JColvin

  1. Hi @zygot (and anybody else who is wondering), We didn't provide the circuitry details; we instead provided them the name of the appropriate Digilent contact to discuss licensing options of this circuitry. We'll try to be more transparent about this sort of thing in the future. Thank you, JColvin
  2. Hi @tfcb, I apologize for the delay; this is the material that I used for the Pmod ISNS20 with Digilent's uC32 and the Arduino IDE. I commented out the debugging material, so I would not consider this a formal release as of yet. Let me know if you have any questions. Thanks, JColvin
  3. As a member of the self-taught group, I will agree that it is possible to learn how to use a Zynq or any other board. However, you will absolutely run into the fact that that zygot put nicely where you will need: You can readily get an understanding of the basics, but you will also need (to loosely quote Dan) "an understanding of the formal methods" to both create and verify work. Otherwise you will run into the mentioned "I ran the demo, but tried to change one thing and now nothing works"; it's hard to know what you're doing if you don't know how it works. So is it possible to learn? Yes, but if you're wanting to do complex designs (which you only learn which ones are complex by trying to build them yourself) you'll need to dedicate more than just spare time on the weekends to learning. The phrase "reap what you sow" is applicable here I think.
  4. Hi @John Evans, I'm personally not able to find the actual part number individually, but there are some details about the microUSB connector on this thread here: Is the connector broken off entirely, or are there some instances where the cable was plugged in upside down so that the tab inside of the connector was simply bent downward slightly? If the latter is the case, you can push the tab back up with a small flathead screwdriver or something similarly sized. Thank you, JColvin
  5. Hi @VishnuChittan, Yes, that is the main drawback with the embedded AD5933 within the Pmod IA. The catch with the Pmod IA is that you already need to have some sort of idea of what impedance (or at least a general range of impedance) in order to receive and interpret accurate data. If you know (or can make an educated guess) what the approximate impedance will be, the next step would be to calculate if the output voltage range through the unknown impedance will saturate the ADC sampling this data, which as per the schematic is limited to a range between 0V and 3.0V. The equation used to figure out the gain applied (and what voltage would be presented to the ADC inputs) is as follows (as illustrated on page 18 of the AD5933 datasheet) : Gain = Output Excitation Voltage * PGA Gain * Gain Setting Resistor Impedance / Z unknown Where: Gain (measured in volts) represents the peak to peak range applied to the ADC Output Excitation Voltage is a register that is set in the AD5933 and can have a value of 0.2 volts, 0.4 volts, 1.0 volts, or 2.0 volts peak to peak. However, note that these values (listed on page 23) may actually be different as described on page 13, depending on what supply voltage you are using. PGA Gain is register that is set in the AD5933 and can have a value of 1 or 5 Gain Setting Resistor Impedance is the selected resistor value via the header J2 (sel); if left alone (sel pulled logic high), this resistor value is 20 Ohms. If pulled to a logic low state, this resistor value is 100k ohms. Note that with resistors your actual resistance may vary depending on the resistor variance (I believe 1% or better resistors were used). Z unknown (or predicted in this example) is the unknown impedance that is applied between the two SMA terminals (J3 and J4) If the calculation yields a Gain value greater than 3V (or close to it), this means that any frequency sweep applied will saturate the input to the internal ADC and provide unhelpful and incorrect results. At the same time, you do not want too small of a result in volts because the 12-bit ADC will not be able to effectively measure any changes as each difference may or may not produce a change in the LSB. If either of these things occur, either theoretically or in practice, you would likely want to change one of the settings (Output Excitation Voltage, PGA Gain, Gain Setting Resistor Impedance) to see what gain you would receive through the system. Let me know if you have any more questions. Thanks, JColvin
  6. Hi @kmesne, The Pmod COLOR does sense the color of objects; it even uses the same chip as the Adafruit part that you listed. The restriction (and perhaps I am misunderstanding your application) is that the color you are wanting to detect needs to be very close to the sensor. This is illustrated on the Adafruit page where they place an orange/apple directly on top of the sensor (link) in order to have it correctly detect the intended orange/green. Let me know if you have any more questions. Thanks, JColvin
  7. Hi @kmesne, We responded to your other question here with some detail, but I will try to elaborate a little bit more here. The Pmod COLOR is not intended to detect colors from any sort of distance, so you would need it next to the red/green light indicator and then have it transmit data to the main controller for the car as opposed to be mounted on the car (unless the red/green indicator was on the car itself). I believe the Pmod COLOR could detect the green in a green cube, but it would need to be fairly well lit up due to the limitations of the sensor itself. As a bit of perspective, this will be a large and non-trivial state machine (especially for first semester project) with a lot of conditions to be covered; is light red or green to control the enable bit on 2+ H-bridge drivers running the motor, which needs to be checked frequently in order to obey traffic laws, as well as the enable bit being toggled as appropriate when changing input directions if the vehicle can go in reverse to avoid burning out the h-bridges, pwm control over the enable pin to allow the vehicle to turn; all done over (presumably) 3 remote systems communicating with each other; the controller with the direction buttons, the color sensor detecting the light change, and the RC vehicle itself. Which system/input will have priority in the state machine and how often will you need to check each input to provide a "smooth driving experience" will all be things that you need to consider. Some good resources for VHDL basics can be found at asic-world.com and fpga4fun.com, as well as this page that discusses state machine construction in VHDL. Thanks, JColvin
  8. Hi @Bhushan021, We don't have an Arduino Due to directly test this ourselves, but I believe the ModbusMaster.h should generally be compatible with the Pmod RS485 since from what I can tell in the material available on the associated github account (link) it just uses a serial port and flow control bits which are required for the Pmod RS485 to work correctly. My understanding with the Arduino Due is that it subject to the caveat listed in the readme where you will need to disconnect the module from RX while uploading the sketch before being able to reconnect and properly use it. I am uncertain of how the other two pieces of hardware listed in the Github hardware states differ from the Pmod RS485 though. Thanks, JColvin
  9. Hi @RussGlover Ah, sorry about that; it's on ACBUS5. Let me know if you have any more questions. Thanks, JColvin
  10. Hi @Digisoles, As a quick check, is it the same exact chip as the Max32 (i.e. PIC32MX795F512L) and not a slightly different chip? I'm not sure if the bootloader would work correctly if it was a different chip. I also can't readily verify the bootloader you linked to as accurate, so it may be worth trying the one that is available on the right hand side of the Max32 Resource Center under Design Resources. Thanks, JColvin
  11. JColvin

    Pmod DA3 clocking

    Hi @Ahmed Alfadhel, "According to the manual, it must only be 0 when ~CS is 1" -- this is incorrect. As you directly highlighted in the image you attached: The timing diagram instead shows the situation presented in the previous sentence that discusses pulsing the LDAC rather than holding it low. Thanks, JColvin
  12. Hi @Denci, It's hard to say from your setup for sure; the main reason for this is that a rat trap snapping sound does not last very long (presuming it's about the same length as a snap of your fingers, this thread shows it might only last for about 5 milliseconds including the aftershocks), so during your 10 millisecond delay that you have in your main, you can very easily miss the snap happening. I presume the demo that was posted on our website presume a more continuous sound would be used so the implemented delay could be still be used and have the board be verified as working. Since the ADC runs at 1 MSPS, you can likely reduce the delay to 1 or 2 ms and hopefully get a cleaner result, though you may have to also increase your SPI clock frequency from 1 MHz to the stated maximum of 20 MHz (as per the ADC datasheet) to get this result. Let me know if you have any more questions. Thanks, JColvin
  13. Hi @RussGlover, I apologize for the delay; the details you are looking are as follows: TCK - ADBUS0 TDI - ADBUS1 TDO - ADBUS2 TMS - ADBUS3 OEJTAG - ADBUS7 OESRSTN - ACBUS4 Let me know if you have any more questions. Thanks, JColvin
  14. As a bit of further clarification, you would request any licenses from Xilinx, though it is my understanding that all of the Vivado WebPACK versions since 2016.4 or so are license free. I know that Digilent used to sell the original Arty board (now called the Arty A7) with a voucher for the Vivado Design Edition, but that was discontinued a few years ago (around the same time when Xilinx changed their own licensing policy and what was included in each edition). Thanks, JColvin
  15. Hi @Peggy, It should be as far as I can tell from my end, based on the screenshots I have attached. I was able to connect the SD card and log to it. I did have to close out of the GUI to disconnect and then reconnect to the OpenLogger before it showed that the SD card was available in the "Log to" dropdown box since it didn't dynamically update (though hot plugging is okay to do with OpenLogger). However, what I did learn (a bit unexpectedly to be honest) is that the data is sent over and logged in a binary format and would need to be parsed before it is readily readable. I know that a logging utility is being worked on and will be incorporated into the Digilent agent so that the data can be readily converted into a log file without needing to install anything else, though I do not know when this will be completed. Let me know if you have any questions. Thanks, JColvin
  16. Hi @Peggy, I asked some of the other engineers more familiar with OpenLogger and I think the problem you are running into is that the OpenLogger is only designed to work with SD cards that set up as a FAT32 (as opposed to NTFS which the larger cards you are using are probably formatted as). You will need to use a smaller SD card (32 GB or less) or partition one of the larger drives and re-format it as FAT32 in order for it to work correctly. Let me know if you have any questions about this. Thank you, JColvin
  17. Hi @oreo, I'm not immediately certain what the root cause of this might be so I have a few questions for you: - Are you an administrator or at least have appropriate permissions to install new things on the computers you referred to? - Were the other two computers you mentioned (an 1803 version and a second 1809 version) also Windows 10 Education edition computers? - To confirm, you were downloading the latest WaveForms and Adept 2 from their respective resource centers here and here? (WaveForms is on version 3.9.1 and the Adept System is on version 2.19.2) - Have you installed either of these software programs before or are these new installations to the computer? If you have installed them before, is WaveForms, Adept, or one of Digilent's instrumentation devices (such as an Analog Discovery 2) connected to the computer while you are installing the new version? - You might also try restarting the computer and re-downloading a fresh version WaveForms/Adept installer to see if that helps (since the "turn it off, turn it back on again" method works more often then it should) - If the above doesn't work, can you also try having Adept log it's installation process to an empty text document? You can do this as follows: If you have an e: drive (or something similar) create an empty text document named "adept_install_log.txt" (without the quotation marks in file name) Run the following command from the command line (it assumes that the installer executable for Adept is also located at same location as the empty text file, in this example this is at the root of the e: drive) "digilent.adept.system_v2.19.2.exe /LogFile="E:\adept_install_log.txt"" Be sure to use quotes around the file name that is specified for the log file. My understanding (based on this thread where the user also got the same error when installing Adept) is that the error doesn't say more than 3 driver packages were not able to be installed, so hopefully this will give us some more details. Thank you, JColvin
  18. Hi @Brent Gardner, Thank you for pointing this out; we will correct the image and get the appropriate resources updated. Thanks, JColvin
  19. Hi @Ali Asim, Unfortunately, none of us here at Digilent have used the Pynq Z1 with MATLAB's Simulink. You can view the list of supported devices for this on the MathWorks website here. Thanks, JColvin
  20. Hi @Peggy, The only thing I can do to reproduce this is when I do not have an SD card inserted into the OpenLogger itself as opposed to in a computer slot. Can you confirm if you have a functional micro SD card plugged into the OpenLogger? Thank you, JColvin
  21. Hi @KL-ROBOLUV, In addition to what @vicentiu said, I think one of the biggest benefit of the Analog Discovery 2 compared to a DMM with regards to this situation is that the Analog Discovery 2 provides a look of how your robot responds over time (either long or short) to inputs, such as starting or stopping motors, whereas a DMM will only give you a single point in time. This can be a nice benefit to see how fast your robot responds or be able to see how it is reacting if you view unexpected behavior. Let us know if you have any further questions. Thanks, JColvin
  22. Hi @Younammar, If you are measuring an external circuit, there is not a direct method to measure the current flowing through a different board built into the Analog Discovery 2 or WaveForms. In general, you would need to some additional setup like it is shown in this tutorial here. I believe the python script you are referencing takes advantage of a current sensing IC that is already built into the Analog Discovery 2 so it will not be of use in this case. Let me know if you have any questions. Thank you, JColvin
  23. Hi @6o{pb, The Analog Discovery 2 can certainly work with the 10 MS/s to get the data with a PWM running at a 20 kHz rate. What I do not know is how the MATLAB Data Acquisition Toolbox implements these functions as MathWorks created all of the MATLAB functionality and compatibility with the Analog Discovery 2. Let me know if you have any more questions. Thank you, JColvin
  24. Hi @Ahmed Alfadhel, The DDR3 chip on the Arty A7 (datasheet link for the MT41K128M16) is designed to only operate at either 1.35V or 1.5V and as per the Arty A7 schematic the 1.35V configuration was chosen (you would have to change resistors around to adjust this configuration as mentioned on page 11) and is what our .prj file (github link) for the Arty A7 to configure the DDR3 and MIG IP uses as well. Going over the voltage input limit for the supply and IO supply voltages are limited to 1.45V (as per Table 41 on page 52 of the datasheet I linked) and if those maximum limits are exceeded, the input levels will be governed by DDR3 specifications (as per Note 5 on page 52), which limit the maximum supply voltages to 1.575V (with respect to Vss, as per Table 7 on page 26). Either way, using a clock signal that would be fed into the DDR3 chip that will go up to 3.3V will wildly overshoot the acceptable input levels (limitations detailed on page 57 in Table 46 of the datasheet, generally limited to 0.4V for a very small amount of time), effectively frying that pin on the DDR3 chip and possibly more. I would recommend carefully following voltage limitations of both the DDR3 chip and the Artix 7 if you are going to choose to configure and constrain the FPGA pins yourself. Thanks, JColvin
  25. Hi @eskull, I heard back from one of our design engineers and learned that the IC's present on both the SMT1 and SMT2 are powered from the 3.3V and VREF pins and not VBUS (which isn't connected to anything on the module) so using a USB isolator that does not provide 5V power will be fine. Thanks, JColvin