Popular Content

Showing content with the highest reputation on 11/05/18 in all areas

  1. 1 point

    Arty A7 flash chip

    Hi @D@n, I believe the new part that is used in the Arty A7 boards (and other A7 boards) is now a Spansion S25FL128SAGMF100; based on old schematics, I believe this was added in Rev D of the Arty A7 (dated August 2017), though I do not know when that particular Rev was then released (or if it even was released) to the public. I confirmed that the Arty S7 also uses this part and I wouldn't be surprised if most of our other Artix 7 based boards use it now as well. I've requested that the chip name and images are updated in any appropriate tutorials and requested that the pdf version of the reference manual (updated wiki) is updated as well. Thanks, JColvin
  2. 1 point

    Diving in

    ... a slightly longer answer, if anybody is interested (analog mixing with square wave LO): One way is to look at the Fourier series of the square wave as a sum of sines at frequencies f, 3f, 5f, 7f, ... and to a lesser extent 2f, 4f, 6f from implementation imperfections. Then think of the mixer as linear multiplier, and use superposition (the distributive property of multiplication) for a*(b3+b5+b7+...) = a*b3+a*b5+a*b7+... Hint, if anybody wants to formally go through the math, it gets much less messy with cos(x) = (exp(ix)+exp(-ix))/2 aka DeMoivre. So you really get multiple frequency translations instead of one. What remains to be done is to manage the input signal energy at those frequencies I don't want, with a filter or narrow-band antenna. In the digital world, you'd always use a sine wave.
  3. 1 point

    ChipKit uc32 and Analog Shield

    Hi @vule, It took me a long while to find the error since everything compiles properly and the output voltage worked correctly, but I did find an error in the analog read function where the conversion of the data out of Two's complement into unipolar data was not working correctly. I have attached the analogShield.cpp that I used in my project (with the various debugging print statements commented out). Thanks, JColvin analogShield.cpp
  4. 1 point

    Diving in

    @That_Guy, There are many FPGA tricks for making LO's, depending upon the quality of what you are looking for. You can use just the high bit of the phase to be your sinewave output. Works great for low logic, poor for a quality sine wave since you get a square wave with this method instead. Even still, a one-bit sine wave also works great for building simple PLL's. You can use a table lookup. Depending on the quality you need, though, the table size can grow rapidly and exponentially. You can use a CORDIC. This will not only create the sine wave for your LO, but you can use the algorithm to apply the LO as well. Requires no multiplies. However, a fully pipelined implementation for a large number of bits can get quite costly. You can also apply some sort of interpolation to your table lookup. Just two multiplies, and some 128-element tables, and you can get just about all the sine wave accuracy you need. Your choice. Decide what you need for your problem, then go for it. You can find a core generator that will generate any of the above algorithms to your specifications here. Don't forget to avoid both radians and degrees, and don't get tripped up by the complexity of building an NCO (it's not hard at all--once you can generate the sine wave). Dan
  5. 1 point

    Zedboard WiFi usage

    Hi @Sandokan, I was able to get the HTTP Server example working with the Zedboard. The one major difference from the video is I use the SD card reader on the Zedboard. Here is the complete project. I have attached a screen shot of the block design. With the zynq core you run block automation without changing anything and then click into the zynq core. You select interrupts->fabric interrupts-> PL-PS interrupt ports->IRQ-F2P[15:0] . Connect the WF_interrupt on the Pmod WIFI IP core to the IRQ-F2P[15:0] on the ZYNQ core. Then I dragged the LED from the board tab on to the block design. Next I then added the switches to the same GPIO IP block. You need to then run connection automation and create a wrapper. Next you generate a bitstream. Export the hardware including the bitstream and launch SDk from Vivado. In SDk you create an application making sure to select c++. Copy the files as directed in the video. You can look at the deWebIOServerSrc.cpp in my project to see how I added the leds and switches. All that you should need to do then is add your modem login and password to the HTTPServerConfig.h. cheers, Jon