Forum Discussion
Altera_Forum
Honored Contributor
8 years agoOut of curiosity, and I'm going to start with this on purpose, if you started developing for the first time with say an AVR (microcontroller), and wanted to program it, what would be the first thing you do? Personally I would acquire a programmer from the manufacturer, and verify the connections needed to wire it up based on application notes and the datasheet. In your case it seems your first step was to immediately try to engineer from scratch your own JTAG programmer starting at the lowest possible level - something which is inevitably going to lead to a lot of confusion and trouble.
The reason that I started with that is that I am hoping you can see perhaps why your are struggling to start. You've basically come to a new ecosystem - Altera/Intel FPGAs - and then figuratively thrown yourself into the deep end, into a sea of technical literature which has a lot of information with very vendor specific terminology (I do agree it is not in places well written, in fact its terrible in some places) about low level stuff you really don't need to be concerned about when starting out. My suggestion would be to start with the following steps: 1. Download and install the Quartus II software and the device support files for your FPGA (in this case the MAX 10 device files). This can be a pain in the neck, but you can make it smoother by ensuring you install into the default directory (assuming windows) of c:\altera\... (not in C:\Program Files\...!) 2. If you haven't already, acquire either a development kit for the FPGA family of interest (e.g. https://www.altera.com/products/boards_and_kits/dev-kits/altera/max-10-fpga-development-kit.html) or at the very least a programmer - typically for Altera that is a "USB Blaster II" programmer - Terasic do a clone for only $50 which is a bargin for the amount of time it will save. (*) 3a. If you do get a dev kit, starting off is much simpler. You can just install the driver, and then load "Quartus Programmer" which is a software that allows you to graphically scan the JTAG chain, select the device you wish to program, select the file you wish to program, and select where in the device you wish to program. At this point I will also dispel one of your points - "it would be stupid and ridiculous to need exclusively such tools to upgrade this FPGA" - not at all ridiculous. Every manufacture of any non-generic microcontroller, FPGA, SoC, processor, etc. has their own tools for their own devices. It's a pain I agree but it's not an Altera/Intel specific thing. 3b. If you start with just the programmer and a blank chip, you will need to build a breakout board with the necessary programmer connections. You can find information on the pinout Altera use for "JTAG Programming". For wiring it up, I would recommend using the design files and schematics provided for free with Altera dev kits (and free to download from the Altera site without purchasing a kit) as a starting point for you design. Most of these kits have a MAX II based USB Blaster implementation on them, but will usually also have a JTAG header on board for using a programmer, so you can strip away the MAX II stuff when wiring up your own and go with just the programming header. 4. Look for the code and design samples that come with the dev kits (even if you aren't using it). You can use these projects and their documentation to get started with programming. There is typically some document or other that walks through a "my first project" for a dev kit which you can use as a starting resource. --- The biggest problem you will find with any ecosystem for FPGAs is a lack of documentation which can be understood by those new to the ecosystem. You'll find the same problems with Xilinx and Lattice and others. FPGAs have never really found their way into the hobby ecosystem which means that all of the resources and knowledge that get developed either are part of university courses (how I learned), or stay with the companies that use FPGAs and who have invested time and money to decipher what is going on. --- (*) Note: Of course you can build such programmers cheaply around a PIC18F14K50 (google will find you the links), but I wouldn't start with that because if it doesn't work you won't find much support for it and you'll be left struggling as to whether it is the FPGA, programmer, or connections that are not working.