Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
12 years ago

Altera USB-Blaster II Design

Hello,

I was given instructions on building my own USB Blaster II from altera. They gave me the required drivers, a program to program the CPLD, as well as a .pof file they created to program the CPLD. I was told to copy the schematic from page 25 of the Stratix V development board. After building the device, all seems to work until i actually run the program they gave me, and i get a warning while programming saying "Warning (210120): MAX II information is incomplete. The ISP clamp functionality will be disabled." The device then seems to program, except at the end i get an error saying something along the lines of, error: hardware not detected. I then power cycle my board, but the blaster enumeration fails, and windows says the device has malfunctioned. Any ideas? thanks

20 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    Would a .pof meant for the epm570gf100 then work for the epm570gm100?

    --- Quote End ---

    If they have different JTAG IDCODEs, then its highly unlikely.

    Looking at the BSDL files ...

    http://www.altera.com/download/board-layout-test/bsdl/max2/max2-index.jsp

    The MBGA vs FBGA files IDCODE_REGISTER entries are the same, so it might actually work.

    Try synthesizing your blink LEDs design as follows;

    1. Start from scratch and build for the MBGA device - copy it to test1.pof

    2. Start from scratch and build for the MBGA device - copy it to test2.pof

    If test1.pof and test2.pof are identical, it tells you that Quartus is consistent.

    3. Start from scratch and build for the FBGA device - copy it to test3.pof

    If test1.pof and test3.pof are identical, it tells you that the die must be the same, its just the package that changed.

    Cheers,

    Dave
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Interesting,

    Now one question. In steps 1 and 2 you are doing the exact same thing for the exact same device. why would quartus ever not be consistent?

    -ryan
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    not going to go for the cross mapping between packages and hoping it works, size is not an issue so we are going to try the circuit with the new chip and the new pinout that we believe matches the .pof file from terassic we were given for testing. I'll let you know how it goes

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    Now one question. In steps 1 and 2 you are doing the exact same thing for the exact same device. why would quartus ever not be consistent?

    --- Quote End ---

    Experience :)

    Quartus should *always* give the same synthesis result given identical files and an identical start seed. However, some versions of Quartus break this consistency as shown in my PCIe timing analysis tests;

    http://www.alteraforum.com/forum/showthread.php?t=35678

    The advice to repeat step 1 as step 2 is a good sanity check :)

    Ideally you would synthesize your design via Tcl scripts, that way there is no ambiguity as to whether or not you repeated the synthesis steps exactly.

    Cheers,

    Dave
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    hey so new issue for you, turns out that altera gave me the wrong .pof file (meant for a board based off of a different schematic) and they corrected the problem. i now have the right .pof and am able to program my byte blaster and get it recognized by the quartus programmer. yet when I try to use it to connect to another board, I hit auto detect and get the error “unable to scan device chain. On-board programming hardware is disabled. Any ideas?

    -ryan
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    hey so new issue for you

    --- Quote End ---

    Oh yippee ... :)

    --- Quote Start ---

    turns out that altera gave me the wrong .pof file

    --- Quote End ---

    Oops ... another X for closed-source.

    --- Quote Start ---

    i now have the right .pof and am able to program my byte blaster and get it recognized by the quartus programmer. yet when I try to use it to connect to another board, I hit auto detect and get the error “unable to scan device chain. On-board programming hardware is disabled. Any ideas?

    --- Quote End ---

    I don't have any USB-Blaster II hardware, so I'll relay what I have done with a USB-Blaster to debug things.

    1. Start the Quartus JTAG debugger tool (Tools->JTAG Chain Debugger)

    2. Select the "JTAG Chain Debugging" tab

    3. Shift a 32-bit data instruction with a value of 0.

    When the JTAG TAP goes through reset, it loads the IDCODE into the data register. The above procedure reads it out.

    You can now probe the JTAG TCK and TMS signals to see if they toggle. You can probe the TDO signal to see if it toggles. If you change the value to 0x55555555, then you can probe the TDI signal to see if it toggles.

    Try that to start with ...

    Cheers,

    Dave
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    as soon as i try to do anything with the tool, i get the error message: can't initialize chain. error locking chain or hardware is not set.

    -ryan
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    as soon as i try to do anything with the tool, i get the error message: can't initialize chain. error locking chain or hardware is not set.

    --- Quote End ---

    This sounds like a communications issue, i.e., the USB interface is not behaving as Quartus would like.

    Are you running Linux or Windows? If Linux, what does lsusb show? If Windows, what does USBView show?

    Is the USB-Blaster II being recognized as a USB-Blaster II?

    Does the USB-Blaster II have an LED that turns on when its initialized?

    (I forget ... do you have a known-good development kit with a USB-Blaster II on it?)

    Cheers,

    Dave
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    hey dave,I'm running windows. and the byte blaster pops up with the proper name (NAI USB DEbugger is what we programmed it as). I did not see any lights while initializing though. and currently we have only more unprogrammer boards. no working usb blaster II's -ryan

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    I'm running windows. and the byte blaster pops up with the proper name (NAI USB DEbugger is what we programmed it as).

    --- Quote End ---

    Ok, so it sounds like it is enumerating Ok. If you download USBView (a free microsoft tool) you could read all of the descriptors and confirm they match what you expect.

    --- Quote Start ---

    I did not see any lights while initializing though. and currently we have only more unprogrammer boards. no working usb blaster II's

    --- Quote End ---

    I'd recommend buying the cheapest development kit you can that contains the USB-Blaster II circuit. At least then you will have a known-good board to compare transactions to.

    I'd also recommend buying a USB logic analyzer; Total Phase and LeCroy sell them. You could then trace the USB initialization phases and traffic.

    If you can only afford one of these, then go for the development kit, and use Wireshark under Linux to trace the USB traffic (Windows Wireshark does not support tracing USB traffic).

    You can then compare your board's traffic to the known-good development kit and see where they differ.

    Cheers,

    Dave