Catalog · How the catalog works
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.
- ★ 2 on GitHub
Anyone may press Interesting, signed in or not. It helps others find 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
- The mikroPascal and Delphi binaries are included
- USB_CDC_ProjectItems.mpas and USB_HID_ProjectItems.mpas are also included for VID and PID declarations
- 3rd party units and drivers:
- for mikroPascal: BitUtils.mcl, StrngUtils.mcl, USB_CDC_Library.mcl, USB_HID_Library.mcl.
- for Windows: usbser.sys, usbser.inf
- 3rd party units source: https://libstock.mikroe.com/projects/view/71/usb-oa and https://libstock.mikroe.com/projects/view/39/utilities
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:


