Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

USB_FPGA_Programmer

The project is a Xilinx Spartan-3(E) and Spartan-6 FPGA programmer, made with PIC18F4550 using USB. There are two host applications: a HID one and a CDC one, written in Delphi.

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

USB FPGA programmer

The project is a Xilinx Spartan-3(E) and Spartan-6 FPGA programmer, made with PIC18F4550 using USB. There are two host applications: a HID one and a CDC one, written in Delphi. There is also a PIC32 version, with custom board. This is in work.

Features:

  • Xilinx Spartan-3(E) and Spartan-6 FPGA programmer
  • PIC microcontroller for USB communication and FPGA configuration
  • USB protocol: CDC or HID
  • Uses PIC ports for JTAG communication (only 4 pins)
  • Separate Delphi projects for CDC and HID communication
  • Tested on XC3S100E and XC6SLX16 FPGAs
  • Tested with PIC18F4550 and PIC18F46J50

Project - libraries requirements

JTAG cable

  • 1 x SN74HC04 IC
  • 3 x (220R to 2.2K) resistors
  • If JTAG power supply voltage is less than 3.3V for a 5V PIC, a voltage translator is needed from last device to PIC microcontroller.
  • A 3.3V PIC does not need any voltage translator if connected near the JTAG chain, e.g. the same board.
  • If using a 5V PIC, the TDO (input) pin must be TTL to recognize the logic "1" state from 3.3V FPGAs.

Warnings

  • There is no handling for USB connection interruptions, hardware failures or other kind of failures.
  • Do not plug out the USB cable while the Windows host app is running! This can block the app.
  • Do not use USB mice at the same time you use the FPGA programmer on HID version! (the provided Windows application is not compatible with USB mice on some computers)
  • The user should manually modify USBprotocol library to include only one of the two HID or CDC libraries.

Miscellaneous

  • The CDC version is 4 times faster than the HID one.
  • The PIC microcontroller is powered from USB.
  • The JTAG cable (with its HC04 chip) is powered from FPGA board. If the voltage for this power supply voltage is below 3.3V (e.g. 2.5V), a voltage translator (to 5V) is needed from last device in the JTAG chain to the microcontroller TDO line. Since a PIC18F4550 can drive only 25mA on a pin, the number of JTAG devices is limited (TMS and TCK lines are common to all JTAG devices).
  • Two hex files are included (one for HID and the other for CDC).

Other:

Initially uploaded to LibStock: https://libstock.mikroe.com/projects/view/81/usb-fpga-programmer

Photos:

Alt text