TOP Contributors

  1. MIKROE (2752 codes)
  2. Alcides Ramos (372 codes)
  3. Shawon Shahryiar (307 codes)
  4. jm_palomino (118 codes)
  5. Bugz Bensce (90 codes)
  6. S P (73 codes)
  7. dany (71 codes)
  8. MikroBUS.NET Team (35 codes)
  9. NART SCHINACKOW (34 codes)
  10. Armstrong Subero (27 codes)

Most Downloaded

  1. Timer Calculator (139067 times)
  2. FAT32 Library (71594 times)
  3. Network Ethernet Library (56989 times)
  4. USB Device Library (47330 times)
  5. Network WiFi Library (43006 times)
  6. FT800 Library (42297 times)
  7. GSM click (29777 times)
  8. mikroSDK (27874 times)
  9. PID Library (26858 times)
  10. microSD click (26129 times)
Libstock prefers package manager

Package Manager

We strongly encourage users to use Package manager for sharing their code on Libstock website, because it boosts your efficiency and leaves the end user with no room for error. [more info]

< Back
Project

USB FPGA programmer

Rating:

5

Author: VCC

Last Updated: 2024-03-31

Package Version: 1.3.0.0

Category: Bootloaders

Downloaded: 2679 times

Followed by: 4 users

License: MIT license  

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.
Added support for Delphi XE5.

No Abuse Reported

Do you want to subscribe in order to receive notifications regarding "USB FPGA programmer" changes.

Do you want to unsubscribe in order to stop receiving notifications regarding "USB FPGA programmer" changes.

Do you want to report abuse regarding "USB FPGA programmer".

  • Information
  • Comments (2)
DOWNLOAD LINK RELATED COMPILER CONTAINS
Other PIC Compilers
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc

Project Blog

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
Features in v1.3:
- Recompiled with mikroPascal v6.0.1
- The programmer ignores FPGA revision number
- FPGA constants are moved into FPGAConsts.mpas unit
- Added "Read ID code" feature
- Added "Blink LED" feature for debug purposes
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 (not included in archive):
- for mikroPascal: BitUtils.mcl, StrngUtils.mcl, USB_CDC_Library.mcl, USB_HID_Library.mcl.
- for Delphi: WinCom.pas
- for Windows: usbser.sys, usbser.inf
- 3rd party units source: http://www.rosseeld.be/DRO/PIC/ and http://www.libstock.com/
- The included binaries are generated by mikroPascal v6.0.1 for mpas files and Turbo Delphi 2006 for WinCom.pas.
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).

FPGA programmer with PIC18F4550 on breadboard

FPGA programmer with PIC18F4550 on breadboard

Notice the HC04 chip near the FPGA.

View full image

ALSO FROM THIS AUTHOR

PIC32MZ EF Osc Calc

1

This is a calculator for PIC32MZ EF oscillator frequencies.

[Learn More]

Memory Statistics

0

This is a remake of "PIC32 Memory Statistics". In addition to displaying the memory allocation and comparing multiple hex files, this tool provides a simulated memory, which accepts Erase/Write commands, coming from a physical MCU. It is used to avoid overwriting the physical memory and instead, display what would happen to it.

[Learn More]

Misaligned Address Finder

1

Misaligned Address Finder is a tool used to generate a report on variables and constants, which are not Word or DWord aligned. Some variables / constants are required to be allocated at even addresses (16-bit architectures) and at multiple by 4 addresses (32-bit architectures), so users can be notified about that allocation.

[Learn More]