Forum Discussion

AAAAAAAAAA's avatar
AAAAAAAAAA
Icon for New Contributor rankNew Contributor
5 years ago

JTAG error (Unexpected error in JTAG server -- error code 35 and Can't access JTAG chain)

I have to program a 10M04SCE144C8G FPGA that was already programmed (I have to update the program). For this I got a new computer and installed Ubuntu 20.04, after this I downloaded Intel Quartus Prime Lite 20.1.1 and installed it successfully. I also received a brand new Terasic USB Blaster. After connecting everything and compiling my code with no errors I tried to download it to the FPGA with no success. I have no previous experience with Intel FPGAs, Quartus or the Terasic USB Blaster.

When I open the programmer to download the ".pof" file and hit "start" I get this error:

Error (209053): Unexpected error in JTAG server -- error code 35

After googling for a while I arrived to this link and in FAQ #6 they show exactly my problem. So I tried, as is suggested there, to upload the ".sof" file instead. This time I got a different error

202940 Can't access JTAG chain

Any idea on how to make this work?

14 Replies

  • AAAAAAAAAA's avatar
    AAAAAAAAAA
    Icon for New Contributor rankNew Contributor

    I discovered that if I use an Altera USB-Blaster II it works perfectly fine. If, after this, I replace the Altera USB-Blaster with the Terasic one, it keeps working until something that I don't know happens, and then it stops working again (this "something that I don't know" is not closing/opening Quartus, it is not logging out and in in Ubuntu). Now it will fail until I program the FPGA once with the Altera USB blaster, then I can go back to the Terasic blaster but I know it will fail at some point and I will have to go back to the Altera blaster.

  • YuanLi_S_Intel's avatar
    YuanLi_S_Intel
    Icon for Regular Contributor rankRegular Contributor

    I’m glad that your issue has been solved by changing to USB Blaster II.


    I now transition this thread to community support. If you have a new question, feel free to open a new thread to get the support from Intel experts. Otherwise, the community users will continue to help you on this thread. Thank you.


  • I have got the same problem on Ubuntu 20, Quartus 21.1 Lite with Altera USB Blaster Rev C. I try to work with omdazz cyclone iv board:

    Can't access JTAG chain

    How I can fix it?

    P.S. There is no rc.local on Ubuntu 20.

    • LeviMe's avatar
      LeviMe
      Icon for New Contributor rankNew Contributor

      Using Linux and the same JTAG device family, I got the same problem.

      The solution I found works but it has to be repeated every time, unless it is automated with a script during the execution process.

      You have to kill and restart the JTAG server on your computer:

      1. Open a command prompt and look for a process named 'jtagd'.
      2. If there is one active, kill it using the usual kill command.
      3. Plug the JTAG blaster and then turn on the FPGA device.
      4. launch the jtagonfig command (<installation_folder>/quartus/bin) in sudo mode.

      You should get your device listed with a message looking like this:

      1) USB-Blaster [1-3]
      020F10DD 10CL006(Y|Z)/10CL010(Y|Z)/..

      which means that your board is now fully connected and ready to receive your program.

      If it didn't work, you have to do the steps 1,2 and 4 again. Additionally you might need to close the Quartus GUI so as to remove any defunct Jtagd process.

      • Lattice's avatar
        Lattice
        Icon for New Contributor rankNew Contributor

        I start my computer with Ubuntu 20. I not opened Quartus. I open terminal and

        killall jtagd

        Than I connect Blaster to pc, connect FPGA board from OMDAZZ and switch on FPGA Board ( I use USB B connector).

        sudo ./jtagconfig

        Fails:

        Unable to read device chain - JTAG chain broken

        See screen. Need help.

  • You can try:

    $sudo killall jtagd

    then you must restart jtagd from:

    $cd <Quartus path>/<Quartus version>/quartus/bin/

    (mine path: ~/intelFPGA_lite/20.1/quartus/bin/)

    $./jtagd

    or

    $./jtagd --user-start

    then you can look jtagconfig:

    $./jtagconfig

    If your drivers succesfully installed and usb blaster is connected the pc you can see like this in first line when you run jtagconfig:

    1) USB-Blaster [1-3]

    If usb blaster connected the fpga you can see the fpga device model in second line. If you can't see the second line disconnect all cables then connect blaster to fpga then power up the fpga then connect blaster to the pc and retry the above steps.

  • NickO's avatar
    NickO
    Icon for New Contributor rankNew Contributor

    I am on Ubuntu 20.04, with Quartus Prime Lite 21.1.0. My target is a Terasic DE0-Nano (Cylone IV)

    I "sort of" have things working, but it is very unsatisfactory:

    1. I added the file /etc/udev/rules.d/51-usbblaster.rules which contains the following:


    # USB-Blaster
    SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", MODE="0666"
    SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6002", MODE="0666"
    SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6003", MODE="0666"

    # USB-Blaster II
    SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6010", MODE="0666"
    SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6810", MODE="0666"

    2. I ran the following command, then rebooted

    udevadm control --reload

    3. Before I run Quartus, I open a terminal and do the following:


    killall jtagd
    jtagd --user-start
    jtagconfig


    This now seems to block, timeout and fail. Rather than wait, I unplug the board and reconnect. When I type the following, I get a response:

    jtagconfig

    At this point, Quartus can program the board - at least for a while, until it fails.

    I would really like to know if I am missing something as I really don't want to keep reconnecting the board and I am not sure if the above is correct.

    • jozephka99's avatar
      jozephka99
      Icon for Contributor rankContributor

      Try add these instead of yours:

      # USB Blaster
      SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
      SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
      SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
      
      # USB Blaster II
      SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
      SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"

      And don't kill the jtagd in every openning of Quartus. Do this only if you can't program and close the terminal after you done it.

      What response did you get when running jtagconfig?

      If it fails too much maybe your blaster starting to be broken.

      • NickO's avatar
        NickO
        Icon for New Contributor rankNew Contributor

        Thanks for the suggestion. Still no change. When I type jtagconfig, it says the following:

        1) USB-Blaster [1-4.4.3]

        In the end it will timeout. If I unplug the board and reconnect it says:

        1) USB-Blaster [1-4.4.3]
        020F30DD

        Now it works and I can program from Quartus.

  • Janno's avatar
    Janno
    Icon for New Contributor rankNew Contributor

    Error Code 35 occours only when i enabled the configuration "Use JTAG PINs as Normal I/0" and a low signal at PIN "JTAGEN"