Close

Low-cost (or Free) A-Series Programmer

A project log for TinyFPGA A-Series

Low-cost, open-source FPGA boards in a tiny form factor.

luke-valentyLuke Valenty 08/03/2017 at 05:390 Comments

I'm working on a low-cost (or free) JTAG programmer for the A-series boards.  There are some relatively low-cost JTAG programmers available on eBay, but it doesn't sit right with me to recommend people get those as the best available solution.  They can be an unknown quality and it's a hassle to connect the jumper cables to the JTAG header.  And the job could be done for a better price.

Here comes the A-series programmer.  Based on a low-cost PIC16F1455 microcontroller it should handily beat the cost of a FTDI-based JTAG programmer.  The downside is we lose compatibility with the official Lattice Programmer software, but this is not a big loss.  The upside is a small, easy to use, low-cost, OSH JTAG programmer.  I think that is worthwhile.

In addition to the PIC16F1455 firmware I will also be developing firmware that will work on Arduino compatible boards.  If you have an Arduino compatible board then you'll be able to save a few bucks and use that to program your TinyFPGA boards.


Above is the protoype I'm using to validate my circuit design.  The PIC16F1455 is able to calibrate its internal oscillator based on timing information from the USB host, this means no crystal is required which means a lower BOM cost.  This microcontroller requires very little extra components to function.  Awesome.

I've posted the initial PIC firmware to a new github project: https://github.com/tinyfpga/TinyFPGA-A-Programmer

I've elected to make the firmware "dumb" and the software running on the host computer "smart".  So the firmware will be more like a GPIO controller.  This way it is easy to reuse the same board for other purposes or fix bugs in the JTAG protocol by modifying some python code.

Next step is developing a nice Python library for controlling the GPIO pins, then a JTAG library on top of that, and finally a MachXO2 JTAG programmer on top of that.  When I prove that JTAG programming works well with this circuit I'll design a PCB, send it to OSH Park, and assemble a few prototypes for further testing.

Stay tuned!

Discussions