AN 100: In-System Programmability Guidelines

ID 683546
Date 9/22/2014
Public
Document Table of Contents

1.4.1. Invalid ID and Unrecognized Device Messages

The first step after the device enters ISP mode is to check the silicon ID or the JTAD ID of the device. If the silicon ID or the JTAD ID does not match, an Invalid ID or Unrecognized Device error is generated.

The following section describes the typical causes for this error:

  • Download Cable Connected Incorrectly
  • TDO Is Not Connected
  • Incomplete JTAG Chain
  • Noisy TCK Signal
  • Jam Player Ported Incorrectly

Download Cable Connected Incorrectly

An error is generated if the download cable is connected incorrectly to the parallel or USB port, or if the download cable is not receiving power from your board.

TDO Is Not Connected

An error is generated if the TDO port of one device in the chain is not connected. During in-system programming, data must be shifted in and out of each device in the JTAG chain through the JTAG pins. Therefore, you must connect the TDO port of each device to the TDI port of subsequent device, and you must connect the TDO port of the last device to the TDO port of the download cable.

Incomplete JTAG Chain

An error is generated if the JTAG chain is not complete. To check if an incomplete JTAG chain is causing the error, use an oscilloscope to monitor vectors coming out of each device in the chain. If TDO port of each device does not toggle during in-system programming, your JTAG chain is not complete.

Noisy TCK Signal

Noise on the TCK signal is the most common reason for in-system programming errors. Noisy transitions on rising or falling edges can cause incorrect clocking of the IEEE Std. 1149.1 TAP controller, causing the state machine to be lost and in-system programming to fail.

Jam Player Ported Incorrectly

An error is generated if the Jam Player is not ported correctly for your platform. To check if the Jam Player is causing the error, apply the IDCODE instruction to the target device with a .jam file. You can use the .jam file to load an IDCODE instruction and then shift out the IDCODE value. This test determines if the JTAG chain is set up correctly and if you can read and write to the JTAG chain properly.