Starting Electronics Needs Your Help!
It is that time of the year when we need to pay for web hosting and buy new components and equipment for new tutorials. You can help by making a donation. Contribute to this website by clicking the Donate button. The total will be updated once daily. (You may need to clear your browser cache to see the updates.)
Target Amount: $2000
Amount Raised: $1883.10
Top Donor: C.C. $100
Created on: 16 November 2012
This parallel port JTAG programmer can be built at home on a single sided PCB using through-hole mounting components. The programmer is for Xilinx CPLD and FPGA programming using the free Xilinx ISE WebPACK software, e.g. Vivado and ISE Design version 14.
The source files for the project (schematic and PCB files) are available in KiCad format - the open source EDA software.
The home-built JTAG programmer described here relies on the host PC having a parallel port. If your PC does not have a parallel port then you will need to use a device such as the Amontec JTAGkey (see also JTAGkey CPLD programming) or other Xilinx compatible USB programming device. The official Xilinx USB programming cable is the Platform Cable USB II.
See a short video of the Xilinx Parallel JTAG Programmer cable.
The programmer is based on the JTAG/Parallel Download Cable schematic provided by Xilinx as shown on page 3 of this document from Xilinx.
Here is the programmer schematic from KiCad in PDF format. The KiCad source files for this schematic as well as the PCB can be found below.
Besides building the PCB for the project, two cables are also required. A 14-way ribbon cable with a IDC connector on each end is required for connecting the programmer to the target CPLD or FPGA board. A cable for connecting the programmer to the PC parallel port is also required.
The parts listed in this table are needed for building the parallel programmer:
|7||100Ω||R1, R2, R3, R4, R5, R6, R9||¼W 5% resistors||Resistors|
|5||300Ω||R10, R11, R12, R13, R14||¼W 5% resistors|
|1||1k||R8||¼W 5% resistors|
|1||5k1||R7||¼W 5% resistors – A 4k7 will also work|
|4||100p||C1, C2, C3, C4||Ceramic capacitors||Capacitor|
|2||1N5819||D1, D2||Schottky diode – 1N5819 or similar will do||Semiconductor|
|2||74HC125N||U1, U2||Quad 3-state buffer/line driver|
|1||7 × 2 IDC male header||P1||14 pin (7 × 2) IDC male connector, 2.54mm pin spacing||Connectors|
|1||Solder connection||P2||Wires from cable are soldered directly to the PCB, no connector needed|
|1||DB25 male plug with shroud||-||25 pin male parallel port plug to plug into PC female parallel port socket|
|2||7 × 2 IDC female plugs||-||14 pin (7 × 2) IDC female connectors, ribbon cable mounting, 2.54mm hole spacing.|
|1||8-core cable||-||8 core screened cable||Cable|
|1||14-way ribbon cable||-|
Download the KiCad source files for the Xilinx parallel cable. This download contains the source files for the KiCad project with circuit diagram and PCB in KiCad format.
Assembly of the circuit board is straightforward – solder the resistors and two diodes to the board first, followed by the two ICs. Add the capacitors and connector P1 to finish the board.
Two cables will need to be made. One to connect the programmer to the PC parallel port and the other to connect the programmer to the target board.
A length of 8 core screened cable (e.g. 1.8 m (6 feet) long) and a 25-pin male D-type connector is required to connect the programmer to the PC.
Solder the different coloured wires from the cable to the circuit board's P2 connector holes as shown below.
If the cable that you are using does not have the same coloured wires as the wiring diagram, write down which colour wire you are connecting to which hole of connector P1. Now solder the wires to the 25-pin male connector shown in the diagram.
Before screwing on the plastic shroud of the connector, join pins 8, 11 and 12 together as shown in the wiring diagram.
A short length of 14-way ribbon cable around 18cm (7 inches) long with a 7 × 2 IDC female connected to each end must be made up to connect the programmer to the target circuit board.
Heatshrink tubing can be used on the cable as shown in the above image. Glue from a hot-melt glue gun can also be used to provide strain relief for the wires from the cable where they connect to the PCB. This will prevent the wires from flexing and breaking.
The cable will need to be tested by plugging it into a working CPLD or FPGA board and loading a configuration file to the board using the Xilinx programming software.
You may also be interested in:
Home built Xilinx CPLD board project.
Amontec JTAGkey CPLD programming.
VHDL CPLD course – learn VHDL.