Close
0%
0%

Spartan Mini

A flexible, simple, yet powerful FPGA development board.

Similar projects worth following
As is the case with many things, the Spartan Mini was born out of a need I had when developing an FPGA project. I looked around at the development boards in the market, but I didn't see anything that met all of my requirements, so I decided to design one myself. There were many requirements for this board, which I will go into more detail about in the details section below, but my general requirements were as follows. I wanted a board I could hand solder fairly easily. This meant no bga. I wanted a board that was easy to program, containing both a JTAG port as well as USB. I wanted a board I could power with a wall wart and a barrel jack. The power needed to be switched. There needed to be plenty of GPIO, brought out to connectors that were preferably of a standardized format. I wanted some onboard RAM, preferrably SRAM or PSRAM for ease of use. Other than that I just wanted access to the bare metal of the FPGA, without a lot of fluff.

Continuing from the requirements stated in the description, here is a more in depth look at those requirements and how the Spartan Mini meets them:

1. A board that could be hand soldered fairly easily.

It seems like 90% or more of the FPGA's out there are in a BGA package. This made things difficult when considering this spec. I finally settled on the Spartan 6 FPGA because it came in a 144 pin TQFP package. The Spartan 6 is a well known and well supported FPGA among hackers and makers, making it a perfect candidate for the job.

2. A board that could be programmed easily with either JTAG or USB.

For the USB portion of this requirement, I decide to use the FT2232H chip by FTDI. This chip gave me both a USB to JTAG channel, as well as a USB to UART bridge that I could use later on to facilitate transferring data to the FPGA over the USB connection. I also wanted to include a full size 14 pin JTAG connector on board, to facilitate the use of a Xilinx Platform Cable USB programmer. This took a little more board space, but provides an easier interface to connect to the Xilinx programmer.

3. A board that could be powered with a wall wart and barrel jack.

This requirement was fairly simple to implement. The voltage requirements for the board fall between 3.7-6 volts dc. In addition to the barrel jack, the board provides jumpers to optionally be powered over USB, or a JST-PH connector and 3.7 volt lithium battery, as well as a voltage input pin.

4. The power needed to have a hard on/off switch.

Again, this requirement was not hard to implement. I just needed to select an adequate switch, capable of handling the current demands of the board.

5. No IO pin of the FPGA should be wasted. All pins should be brought out to standardized connectors on the edges of the board.

Many FPGA boards today seem like they waste a lot of IO on providing connectors on board that likely aren't needed by every project such as SD cards, VGA, HDMI, etc. Instead of using up the IO on peripherals that may be unneeded I opted to instead route all GPIO lines out to PMOD connectors. These connectors seem to be picking up in popularity and there are already tons of sensors/peripherals to choose from in the marketplace that can be plugged into the board if/when they're needed. In addition to the GPIO, I also wired GPIO pins to 8 user programmable LED's, 2 tactile buttons, and 1 slide switch. The addition of the 8 LED's aids greatly in debugging, but it also allows for precisely one byte of data to be represented in binary.

6. Access to onboard SRAM or PSRAM

This requirement is simply for the ease of use of SRAM over DRAM. The downside to SRAM is of course the price, which is why I settled on PSRAM instead. Essentially PSRAM provides an interface to the outside world that looks like SRAM, while internally it is made up of DRAM. As such, it is much cheaper than SRAM, but way less work to interface with than DRAM. This particular board provides 8Mb of PSRAM, which is adequate for my needs.

    Adobe Portable Document Format - 3.11 MB - 04/25/2017 at 12:52

    Preview Download

    Adobe Portable Document Format - 332.03 kB - 04/25/2017 at 12:51

    Preview Download

    Adobe Portable Document Format - 14.42 MB - 04/25/2017 at 12:50

    Preview Download

    Adobe Portable Document Format - 3.16 MB - 04/25/2017 at 12:49

    Preview Download

    Adobe Portable Document Format - 3.20 MB - 04/25/2017 at 12:49

    Preview Download

    Adobe Portable Document Format - 2.07 MB - 04/25/2017 at 12:49

    Preview Download

    Adobe Portable Document Format - 3.91 MB - 04/25/2017 at 12:49

    Preview Download

    Adobe Portable Document Format - 4.31 MB - 04/25/2017 at 12:49

    Preview Download

    View all 8 files

    • new files

      Jon Thomasson2 days ago 0 comments

      I uploaded a new schematic file as well as several other Spartan 6 related documents. These resources proved to be a great aid in designing the Spartan Mini board. FPGA's in general often have many documents describing configuration and requirements. These are just a few of the ones I found helpful for the Spartan 6. Enjoy!

    • seed funding

      Jon Thomasson2 days ago 0 comments

      Hello Hackers,

      If you like where this project is going, please help me gain some funding to purchase boards and components by liking this project. I get $1 for every like, and that money will go directly into purchasing what I need in order to create a finished board.

      Thank you!

      Jon Thomasson

    • added a second expansion template

      Jon Thomasson2 days ago 0 comments

      I added a second expansion template, this one provides access to the power pins as well as the gpio. This would be used when the daughter board was providing power to the fpga board by some means. The template can be found here and can be installed in the same way as the previous template.

      The finished expansion board template will look like:

    • Added Kicad expansion template

      Jon Thomasson3 days ago 0 comments

      To facilitate the easy creation of shields, I created a Kicad template project with the board outline and gpio connectors in place. The project can be found here. To use it all you need to do is copy the spartanmini-shield folder into the template directory of your Kicad install. After that you can create a new template project in Kicad by going to File > New Project > New Project from Template. In the dialog box that appears select the folder that you want to contain the project and click the Select Folder button. Next you should see a screen similar to this:

      Select the Spartan Mini icon from the list of templates. You should see a brief description of the board as well as an image of what the board looks like. Click OK. The template file will then be copied over to the containing folder that you specified. From there you can just open up the project and modify it to suit your needs. Here is what the blank board will look like:

    • rev 1.d design modifications

      Jon Thomasson4 days ago 0 comments

      In my rev 1.d board revision I made a few modifications to make the development board more suitable for daughter boards. Here was my original rev 1.c board:

      You can see that the power switch, although located on the side, wasn't optimal for shields since it was protruding upright instead of at 90 degrees to the board. The user programmable switch was also not optimally positioned, as it would also be unreachable if a shield was used. Instead, in rev 1.d I added a new power switch and user programmable switch that was flush with the edge of the board, and was angled at 90 degrees in order to be accessible if a shield was present. I also got rid of the smd buttons and opted for the through hole variety that could be mounted either on the front or the back of the board if need be to provide more flexibility in prototyping. Finally, in rev 1.d I added a VIN pin, so voltage can be input either from a shield, or through some other means. You can see the changes made in the current rev 1.d of the board:

      And here is the rev 1.d board with straight pin headers to accept a shield:

    View all 5 project logs

    Enjoy this project?

    Share

    Discussions

    mohsenabbasiarbeit wrote 18 hours ago point

    I am thinking about making a board too, but you will need a software for the USB programming, right?
    How will you do that?

      Are you sure? yes | no

    Jon Thomasson wrote 6 hours ago point

    That's a good question. There's a couple ready made command line tools that support the ft2232 ftdi and Spartan 6 fpga. There may be more, but these are the ones I know of: xc3sprog, and fpgaprog. I haven't been able to test them out yet, but they should fit the bill for what I need. Once I get a prototype board built I'm planning on writing up a little log post about how to program it over USB.

      Are you sure? yes | no

    Similar Projects

    Does this project spark your interest?

    Become a member to follow this project and never miss any updates