Forum Discussion

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

Cyclone IV configuration - nCONFIG signal and JTAG programming issue

Hi,

I have a custom board for EP4CE22E22 Cyclone IV FPGA. I have configured the board for JTAG only mode and using USB Blaster Rev.B for programming. The problem I am facing is that JTAG Scan fails with "JTAG chain Broken" error. The signal levels are are follows:

AT POWER UP:

nSTATUS -> HIGH (A0 on attached figure)

nCONFIG -> LOW (Screen shot from logic analyzer shows that nConfig (A1 on figure) goes low after 4ms but this duration is random and sometimes it stays high for several ms)

TCK -> LOW

TDI -> HIGH

TMS -> HIGH

TDO -> LOW

nCE -> LOW

DURING JTAG SCAN:

nSTATUS -> HIGH

nCONFIG -> LOW

TCK -> Square wave with varying duty cycle

TDI -> Toggle few times (Some Bit stream)

TMS -> Toggles few times (Some Bit stream)

TDO -> LOW

Voltage Levels / Connections):

VCCINT: 1.2V

VCCIO : 3.3V (All VCCIOs)

VCCA : 2.5V

E-PAD : GND

JTAG Connector -PIN 4: 3.3V

nCONFIG : Pulled high by a 10K resistor (VCCIO)

nSTATUS : Pulled high by 10k resistor (VCCIO)

TCK : Pulled low by 1K

TDI : Pulled high by 10K (VCCA)

TMS: Pulled high by 10K (VCCA)

TDO : NO pull-up / down

nCE: GND

MSEL[2:0] : GND

According to Cyclone IV handbook the nCONFIG is an input pin but it looks like FPGA is driving it low after power ON, Why is that? Any ideas why JTAG chain scan failing on my board?

Thanks

13 Replies

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

    The rev B cable was updated to rev C to overcome this issue. The change was to move to a flex-rigid cable - the electronics in the USB-Blaster are unchanged.

    So, you can get yourself a rev C cable and you'll be away. Alternatively, I suggest you shorten the ribbon cable on your rev B and you'll be happier, since won't have forked out for a new cable. I have several rev B cables all working happily with the new parts. See attached pic. Note - you don't need to go nearly as short as this!

    Cheers,

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

    --- Quote Start ---

    The rev B cable was updated to rev C to overcome this issue. The change was to move to a flex-rigid cable - the electronics in the USB-Blaster are unchanged.

    So, you can get yourself a rev C cable and you'll be away. Alternatively, I suggest you shorten the ribbon cable on your rev B and you'll be happier, since won't have forked out for a new cable. I have several rev B cables all working happily with the new parts. See attached pic. Note - you don't need to go nearly as short as this!

    Cheers,

    Alex

    --- Quote End ---

    Thanks Alex, We have sort out the issue. Apparently there was a dry solder connection on the PCB and after applying some hot air on FPGA pins the problem disappeared :).

    now The board works fine with "SOF" files but the FPGA won't reconfigure after power cycle. I have both JTAG and AS mode connectors on the board and tried both POF and JIC files to program the EPCS64 chip. The quartus programmer shows 100% success but reconfiguration doesn't happen after power cycle.

    After some try and error, I noticed that if I left the JTAG cable connected to the AS header of the board (and connect the USB end to PC) the FPGA reconfigures successfully upon power up. I wonder if there is a Licence issue of some kind , even though my code is a simple counter program in verilog without any IP cores from Altera?
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    No it can't be a license problem. If you had some Opencores IP it would only work when uploading the .sof file using the programmer and you wouldn't be allowed to flash the design into the EPCS.

    I would rather look for some earthing/grounding problems. When you connect the USB blaster to your board and the PC, you connect your board's ground plane to earth.

    Another possibility is load on the JTAG pins or the VCC power plane connected to the JTAG connector. Do you have pull-up/pulldown resistors on the FPGA's JTAG pins? It's not required but depending on your PCB design they could pick up noise during startup that would disturb the start-up process.