So if Altera USB Blaster is not working with OpenOCD for you, it is not coming from the USB kernel driver (libusb libftdi or d2xx driver) but coming from the USB Blaster driver api in openocd/jtag/driver, learn OpenOCD, get the debug -d3 output file, correct the driver and give a patch to OpenOCD project. Altera USB Blaster Driver Installation Instructions To install the driver for your USB Blaster cable, follow the instruction for your particular operating system. Learn how to install the Altera usb Blaster drivers on Windows 10, this same method will work for Windows 8.1, Windows 8, Windows 7, Windows VisaFor written.
Before you begin the installation, verify the USB-Blaster II driver is located in your directory: drivers usb-blaster-ii If the driver is not in your directory, download the USB-Blaster II driver from the Altera Cable and Adapter Drivers web site and follow the directions for installation. # USB-Blaster II.
Reproduced From: http://www.fpga-dev.com/altera-usb-blaster-with-ubuntu/
I was having the problem: unable to program the Altera FPGA board with USB-Blaster, and even failed to auto-detect.
Auto-detect gave me a message: 'Unable to scan device chain. Please check the hardware setup.'
Thanks to the fpga-dev.com
blogger so I got it solved, and here is the article.
With some work, I got Alteras on-board USB-Blaster working on my Ubuntu 14.04-64 installation with Quartus II 13.1.0 64-bit. I was connecting to a Terasic SocKit board. In this article, I'll describe how I got it working.
To facilitate working with the Altera software, I suggest adding the bin/
folder of the Quartus installation (/opt/altera/13.1/quartus/bin
on my system) to $PATH
. This gives command-line access to the commands jtagd
and jtagconfig
which I use in this post.
Verify USB connection and check Product ID
At first, connect the cable and make sure the USB device is recognized. These are the commands I used and the output I got:
Take note of the Product ID listed - 6010 in the above example.
Fix USB driver permissions
The Quartus software will use the Linux built-in usb_device
drivers. By default, only root has access to these so we must make sure the user is allowed to access them as well.
jtagd
, part of the Quartus tools, is a deamon that provides the interface between the Altera tool accessing the JTAG chain and the USB driver. If not already running, jtagd
will be startetd automatically when the Quartus software or jtagconfig
is run. You'll usually run these as a user, which means jtagd will also run as a user. That is why edited permission for the usb_device
is necessary.
Create a file /etc/udev/rules.d/51-usbblaster.rules
, make sure it has read permissions for root, and fill it with this content:
Edit the value for ATTR{idProduct}
to match the Product ID determined before.
If you have more than one Product ID you want this to work for, simply repeat the above lines in the same file and use the other Product IDs for ATTR{idProduct}
.
For the changes to take effect, reboot the machine or run:
Copy devices data for jtagd
Make sure jtagd
has access to the list of devices:
Also make sure this file has read access for the user.
This file allows Altera tools to translate Device IDs (left column of terminal listing below) to device names (right column) for found devices.
Test that it's all working
To test that the connection works, execute jtagconfig and hope for an output giving the board and the devices:
The cable should now be recognized as a valid hardware by the Quartus tools. From Quartus, select Tools, Programmer, Hardware Setup... and then select the board from the drop-down list. Now, the Programmer, JTAG Chain Debugger and System console should all recognize and use the USB-Blaster device.
Trouble-shooting and common error messages
For general problems, start trouble-shooting by making sure jtagd
is not started, then start it as root and then run jtagconfig
. This should eliminate all possible permission problems, and should work also without the udev rights.
Other trouble-shooting includes verifying that the usb device is found (dmesg|tail
and ps aux|grep Altera
). Also check that jtagd runs, and if it runs as user or root:
If an Altera tool started jtagd
, it will typically be started with some command-line options:
For some reason, as can be seen above, the Altera tool has provided a specific Device ID file as command-line argument, however, even if this file doesn't exist, at least on my system jtagd
will also check /etc/jtagd/jtagd.pgm_parts
. It can also be noted that the Altera tool has started jtagd
with a --user-start
argument. In this case, jtagd
will terminate two minutes after the last client has disconnected from it. The next Altera tool needing to use it will simply start it again.
Typical permission problems will yield this message from jtagconfig
:
If you get an error message like Unable to lock chain (Insufficient port permissions)
, this is due to the driver permissions.
It can also be useful to try to start jtagd
with some debug options for verbose output:
(Still, at least on my system, jtagd
will also check /etc/jtagd/jtagd.pgm_parts
although it says otherwise in the output above.)
An error message about not being able to bind to port 1309 typically means jtagd
is already running:
If jtagconfig
indicates that the connection is OK, but using the Quartus Programmer fails and is giving this message in the Quartus console:
Drivers Altera Usb Blaster
...then restarting jtagd
will usually work. This goes for any application occupying the target device. If the applicatoin in question is System Console
, then this is usually the Nios console window in Eclipse. Terminate its connection to Nios (icon with red square).
Work-around for driver permission problems
If you don't manage to fix driver permission problems, you can run jtagd
as root instead. This is also an alternative solution to creating the udev rules as described above. However, you should be aware that this is not typically regarded as a 'good' solution due to security issues.
If starting jtagd
manually, start it as root with sudo jtagd
. You must make sure jtagd
is not running in prior to this - if it is, it will continue to run as the user that started it previously.
For a permanent solution, start jtagd
as root at each boot. That can, for example, be done by adding a call to the jtagd
executable in /etc/rc.local
. Add the line and make sure the file has execute permissions (that is for some reason not always the case for a standard Ubuntu installation). Reboot the machine and check that jtagd
is started, and that it runs as root. (A more correct, but more complicated, way to do this is to add init.d
scripts for jtagd
. Then shutdown and restart can also be handled correctly.)
ModelSim Altera Edition
Most other Altera tools I've used has worked without problems (QuartusII, Qsys, SBT/Eclipse, Programmer, System Console and others). However, ModelSim typically won't run without tweaking on Ubuntu 14.
Trying to lauch ModelSim from within Quartus gave the following error message:
Altera Usb Blaster Drivers
However, the problem is not about the licensing in this case. Trying to lauch from the command line gave a more informative error message:
Remedy: install the 32-bit version of libXft:
When any missing packages are installed, expect a segmentation fault when trying to launch ModelSim:
This is due to ModelSim being incompatible with the latest version of the libfreetype package.
I got this problem working by following the instructions here:
The same instructions can also be found here:
This solved the problems for me and ModelSim is now runnning fine.
References
USB Blaster Download Cable is designed for ALTERA FPGA, CPLD, Active Serial Configuration Devices and Enhanced Configuration Devices, USB 2.0 connection to the PC and JTAG, AS, PS to the target device.Official reference can be found here.
Contents
- Wiring Connections
You can configure debugging tool using debug_tool option in“platformio.ini” (Project Configuration File):
If you would like to use this tool for firmware uploading, please changeupload protocol:
More options:
Please install official drivers.
Altera Driver Usb Blaster Windows 10
USB-Blaster JTAG 10-Pin Connector | Board JTAG Pin | Description |
---|---|---|
1 | TCK | JTAG Return Test Clock |
2 | GND | Digital ground |
3 | TDO | Test Data Out pin |
4 | VCC | Positive Supply Voltage — Power supply for JTAG interface drivers |
5 | TMS | Test Mode State pin |
9 | TDI | Test Data In pin |
Name | Description |
---|---|
GigaDevice GD32V | The GigaDevice GD32V device is a 32-bit general-purpose microcontroller based on the RISC-V core with an impressive balance of processing power, reduced power consumption and peripheral set. |
Nuclei | Find professional RISC-V Processor IP in Nuclei, first professional RISC-V IP company in Mainland China, match all your requirements in AIoT Era. |
Name | Description |
---|---|
Arduino | Arduino Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences |
GigaDevice GD32V SDK | GigaDevice GD32VF103 Firmware Library (SDK) is a firmware function package, including programs, data structures and macro definitions, all the performance features of peripherals of GD32VF103 devices are involved in the package |
Nuclei SDK | Open Source Software Development Kit for the Nuclei N/NX processors |
Note
For more detailed board
information please scroll tables below by horizontal.
Name | Platform | Debug | MCU | Frequency | Flash | RAM |
---|---|---|---|---|---|---|
GD32VF103V Evaluation Kit | Nuclei | External | GD32VF103VBT6 | 108MHz | 128KB | 32KB |
GD32VF103V RVStar Kit | Nuclei | On-board | GD32VF103VBT6 | 108MHz | 128KB | 32KB |
GD32VF103V-EVAL | GigaDevice GD32V | External | GD32VF103VBT6 | 108MHz | 128KB | 32KB |
Sipeed Longan Nano | GigaDevice GD32V | External | GD32VF103CBT6 | 108MHz | 128KB | 32KB |
Sipeed Longan Nano | Nuclei | External | GD32VF103CBT6 | 108MHz | 128KB | 32KB |
Sipeed Longan Nano Lite | GigaDevice GD32V | External | GD32VF103C8T6 | 108MHz | 64KB | 20KB |
Wio Lite RISC-V | GigaDevice GD32V | External | GD32VF103CBT6 | 108MHz | 128KB | 32KB |