Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16597 Discussions

SignalTap working on Windows but not on Linux

Altera_Forum
Honored Contributor II
4,384 Views

Hi! 

 

I'm having some problems when trying to use SignalTap on Linux. 

 

I'm using two different setups: 

- DE2 development board with integrated USB Blaster 

- Custom board (EP4CE15) + external USB blaster clone 

 

The thing is, on Windows I can use SignalTap on both setups with no problem. 

On Linux I can use SignalTap with the DE2 but not on my custom board. Programmer works OK though. As far as I know it's only SignalTap what it's not working. 

 

Do you know what could the problem be? Anything I can try? 

 

Thank you very much for your help! 

 

 

Information that can be useful: 

- Linux Quartus II 64-Bit Version 13.0 Build 156. I tested also 12.1sp1 with same behaviour. 

- Tested on Ubuntu 12.04 and 13.04 64 bits 

 

"lsusb -v" for DE2 and USB blaster clone differ slightly on bMaxPacketSize0 and some names and serial numbers. I don't know if that could be a problem 

 

DE2 USB Blaster 

$ sudo lsusb -v -d 09fb:6001 Bus 005 Device 003: ID 09fb:6001 Altera Blaster Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x09fb Altera idProduct 0x6001 Blaster bcdDevice 4.00 iManufacturer 1 Altera iProduct 2 USB-Blaster iSerial 3 91d28408 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 150mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 2 USB-Blaster Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Device Status: 0x0000 (Bus Powered)  

 

 

 

 

USB Blaster clone 

$ sudo lsusb -v -d 09fb:6001 Bus 005 Device 002: ID 09fb:6001 Altera Blaster Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x09fb Altera idProduct 0x6001 Blaster bcdDevice 4.00 iManufacturer 1 Altera iProduct 2 USB-Blaster-ARM???? iSerial 3 8D8C41695350 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 150mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 2 USB-Blaster-ARM???? Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Device Status: 0x0000 (Bus Powered) 

 

 

For both USB blasters, this is the udev configuration. 

 

$ cat /etc/udev/rules.d/51-usbblaster.rules# Altera USB-Blaster for Quartus FPGA Software SUBSYSTEMS=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666" SUBSYSTEMS=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", MODE="0666" SUBSYSTEMS=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", MODE="0666"# USB-Blaster II SUBSYSTEMS=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666" SUBSYSTEMS=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="0666"  

 

If you need any additional info, please let me know.
0 Kudos
14 Replies
Altera_Forum
Honored Contributor II
1,645 Views

What do you mean by "some problems"? I have some problems with Signaltap under Linux with an EEBlaster. I can use signaltap, configure the triggers, it triggers at the correct time but the waveforms reported don't look correct, as if there was a shifting between the different signals. 

AFAIK it is a problem in the FTDI driver in Ubuntu. The EEBlaster uses different FTDI chips than the USB Blaster. It shouldn't be a problem, and actually it isn't under Windows, but with Ubuntu we have this strange behaviour. From what I've heard this doesn't happen with Red Hat Linux.
0 Kudos
Altera_Forum
Honored Contributor II
1,651 Views

Oh okay... then it doesn't look like it's the same error. When you do a "jtagconfig" on the Linux machine, is the clone blaster recognized correctly?

0 Kudos
Altera_Forum
Honored Contributor II
1,651 Views

That's strange... as long as the USB blaster is seen by jtagconfig, it should be usable by Signaltap... Sorry I don't have any other ideas.

0 Kudos
Altera_Forum
Honored Contributor II
1,651 Views

I have created a USB-Blaster clone using an FT245R module (UM245R) and an FT232H module (UM232R) interfaced to a BeMicro-SDK. The FT245R works fine under Windows and Linux, but the FT232H does not ... jtagd SEGVs. If I put the FT232H clone behind a USB 1.0 hub, then it works fine. The only difference between lsusb with the UM232H behind the hub or directly connected is the wMaxPacketSize which is 64-bytes for USB1.0 and 512-bytes for USB 2.0. I believe this is the same issue the Cypress FX2 clones face, and that is why they report their interfaces with 64-byte packet sizes. 

 

Both of these clones work fine under Quartus II Windows. The hardware works fine under Linux, as using libftdi I can put the JTAG TAP in bypass mode and send 16MB of data through no problem. The issue is with Altera's Linux implementation of their JTAG server ... if only they'd just publish the source, we could fix it for them ... 

 

Here's some additional lsusb outputs; Altera USB-Blaster, Terasic USB-Blaster/DE2/DE0-nano, and an Arrow BeMicro-SDK. 

 

I don't see anything particularly wrong in your USB-Blaster-ARM clone lsusb output. Can you provide a link to your clone? I've never heard of that one. 

 

Daixiwen - can you post the output of lsusb for your EEBlaster - if it uses the UM232H device, then perhaps its suffering the same problem as my clone - try putting it behind a USB hub. 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
1,651 Views

Here is the lsusb for a EE-Blaster. It looks like the buffers are 64 bytes.Bus 002 Device 012: ID 09fb:6001 Altera Blaster Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x09fb Altera idProduct 0x6001 Blaster bcdDevice 6.00 iManufacturer 1 Entner Electronics iProduct 2 USB-Blaster iSerial 3 EESK5WA5 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 32 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 2 USB-Blaster Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Device Status: 0x0000 (Bus Powered)

0 Kudos
Altera_Forum
Honored Contributor II
1,651 Views

Hi Daixiwen, 

 

 

--- Quote Start ---  

 

Here is the lsusb for a EE-Blaster. It looks like the buffers are 64 bytes 

 

--- Quote End ---  

 

Ok, so it looks like they are using an FT245R inside their EEBlaster. 

 

I was wondering how they managed to get their hardware to interface to Quartus ... and I see that they have re-used Altera's USB VID/PID ... rather than something unique to their company. 

 

Thanks! 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
1,651 Views

There has been a problem with my account and I haven't been able to answer before. Also, some of my messages got deleted 

 

This is my clone blaster: hxxp://www (dot) sainsmart (dot) com/home-page-view/usb-blaster-download-cable-for-fpga-development-board.html (can't post links yet)
0 Kudos
Altera_Forum
Honored Contributor II
1,651 Views

 

--- Quote Start ---  

There has been a problem with my account and I haven't been able to answer before. Also, some of my messages got deleted 

--- Quote End ---  

 

 

Sorry to hear that. Can you try posting your questions again. Your posts are working now. 

 

 

--- Quote Start ---  

 

This is my clone blaster:  

http://www.sainsmart.com/home-page-view/usb-blaster-download-cable-for-fpga-development-board.html 

--- Quote End ---  

 

 

Ah, I've seen this one on eBay. I thought this would have been a Cypress FX2 clone. Can you open up the case and look inside? The fact that it calls itself USB-Blaster-ARM makes me wonder what is inside :) 

 

If you can recompile the software for the clone and fix up the USB info so that it looks like the ones I and Daixiwen have posted, then it should work. If it does not, then there is a problem with the USB-Blaster protocol handler in the clone ... I can send you some code that performs a JTAG loopback using the libftd2xx or libftdi code and you can probably figure out what is wrong. 

 

If that USB-Blaster does have an ARM microcontroller in it, and you can get the source code, I might have to buy one :) 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
1,651 Views

It's very very simple on the inside: 

 

- TQFP-48 sandpapered so I can't read the model. 

- 8 MHz XT  

- 74HC244 octal buffer 

- AMS1117 3.3V LDO regulator 

- 2x LED 

- Resistors and capacitors. 

 

That's all! 

 

I'm not aware of the source being released...
0 Kudos
Altera_Forum
Honored Contributor II
1,651 Views

 

--- Quote Start ---  

It's very very simple on the inside: 

 

- TQFP-48 sandpapered so I can't read the model. 

- 8 MHz XT  

- 74HC244 octal buffer 

- AMS1117 3.3V LDO regulator 

- 2x LED 

- Resistors and capacitors. 

 

That's all! 

 

I'm not aware of the source being released... 

--- Quote End ---  

 

 

Ok, so this means it is not an FTDI FT245 + MAX CPLD (USB-Blaster), and the Cypress FX2 EZ-USB  

 

http://www.cypress.com/?docid=34060 

 

doesn't come in a TQFP-48.  

 

Given the fact that they use ARM in the name, I'd guess it was a USB ARM microcontroller, eg., an NXP LPC2000 series device. 

 

Is there another header on the board for programming the TQFP-48 device? If there was a JTAG header there, you could read the JTAG IDCODE and figure out what the device is. The LPC2000 devices can also use serial ISP for programming, so the header might not be JTAG.  

 

But this doesn't help you solve your original problem with Linux ... :) 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
1,651 Views

I've done some tests with several USB hubs, but same results... 

 

Now I've got an official Altera USB Blaster and "sudo lsusb -v -d 09fb:6001" shows exactly the same that DE2. 

 

I think I'll contact my clone vendors to ask them to check/correct this. The only difference shown in lsusb between the clone and the original is: 

 

bMaxPacketSize0: 8 (altera) vs 64 (clone) 

iProduct and iInterface: USB-Blaster (altera) vs USB-Blaster-ARM???? (clone) 

iSerial: 91d28408 (altera) vs 8D8C41695350 (clone) 

 

bMaxPacketSize0 might make the difference. Do you think that iProduct, iInterface or iSerial might have any influence? 

 

Do you want me to go on revere-engineering my clone? 

 

Thanks a lot!
0 Kudos
Altera_Forum
Honored Contributor II
1,651 Views

 

--- Quote Start ---  

I've done some tests with several USB hubs, but same results... 

 

Now I've got an official Altera USB Blaster and "sudo lsusb -v -d 09fb:6001" shows exactly the same that DE2. 

 

I think I'll contact my clone vendors to ask them to check/correct this. The only difference shown in lsusb between the clone and the original is: 

 

bMaxPacketSize0: 8 (altera) vs 64 (clone) 

iProduct and iInterface: USB-Blaster (altera) vs USB-Blaster-ARM???? (clone) 

iSerial: 91d28408 (altera) vs 8D8C41695350 (clone) 

 

bMaxPacketSize0 might make the difference. Do you think that iProduct, iInterface or iSerial might have any influence? 

 

Do you want me to go on revere-engineering my clone? 

 

Thanks a lot! 

--- Quote End ---  

 

 

Wow, I'm having the same problem as you.. on Win8 it runs fine, on Linux.. It doesn't. It recognizes my cable, I'm able to run once jtagconfig, then it doesn't work anymore and I have to remove and insert back the cable. I'm able to program my device, but to call a tcl with Signal trap doesn't work.. please can we try to reverse engineer it? 

 

the output from my dmesg: 

 

[20062.358849] usb 3-2: new full-speed USB device number 8 using xhci_hcd 

[20062.370796] usb 3-2: New USB device found, idVendor=09fb, idProduct=6001 

[20062.370807] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 

[20062.370812] usb 3-2: Product: USB-Blaster-ARM技术论坛 

[20062.370817] usb 3-2: Manufacturer: Altera 

[20062.370821] usb 3-2: SerialNumber: 8D77536E5655 

 

 

it is a sainsmart, rev.C, like the one listed on their website. from the spec you can read something like: 

 

 

  • ALTERA USB ByteBlaster 

  • USB interface 

  • FPGA/CPLD download 

  • SignalTap II embeded logic analyzer 

  • NIOS II debug 

 

 

Any difference between Blaster I and ByteBlaster?
0 Kudos
Altera_Forum
Honored Contributor II
1,651 Views

 

--- Quote Start ---  

please can we try to reverse engineer it? 

--- Quote End ---  

 

 

Ok, lets see ... 

 

 

--- Quote Start ---  

 

the output from my dmesg: 

 

usb 3-2: new full-speed USB device number 8 using xhci_hcd 

usb 3-2: New USB device found, idVendor=09fb, idProduct=6001 

usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 

usb 3-2: Product: USB-Blaster-ARM技术论坛 

usb 3-2: Manufacturer: Altera 

usb 3-2: SerialNumber: 8D77536E5655 

 

it is a sainsmart, rev.C, like the one listed on their website. 

 

--- Quote End ---  

 

 

Ok, what is inside the Sainsmart device? 

 

http://www.sainsmart.com/home-page-view/usb-blaster-download-cable-for-fpga-development-board.html 

 

Remove the outer shell and read the part numbers on the devices (perhaps your version does not have the TQFP part number removed). 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
1,651 Views

 

--- Quote Start ---  

Ok, lets see ... 

 

 

 

Ok, what is inside the Sainsmart device? 

 

http://www.sainsmart.com/home-page-view/usb-blaster-download-cable-for-fpga-development-board.html 

 

Remove the outer shell and read the part numbers on the devices (perhaps your version does not have the TQFP part number removed). 

 

Cheers, 

Dave 

--- Quote End ---  

 

 

Well I think my version is exactly like the first one posted here: 

 

- TQFP-48 I can't read the model. 

- 8 MHz XT  

- 74HC244 octal buffer 

- AMS1117 3.3V LDO regulator 

- 2x LED 

- Resistors and capacitors.
0 Kudos
Reply