If you suspect that the JTAG chain on the board is not set up correctly, try the following:
Run XJAnalyser, using the default chain setup. Does the system find the correct number of devices? (See also JTAG chain debugging)
No: The system finds no devices.
In this case, either there is some problem with the last device in the chain, or one of the main JTAG signals is not connected correctly. Check the following:
- Is the board powered correctly (either through the USB power or from an externally generated supply)?
- Check the signals on the final device in the chain (the device at the TDO end of the chain). Check that TMS and TCK are connected correctly.
- Check that the TDO of the final device is connected correctly to the system.
If this still doesn’t work, check the BSDL file / data sheet for compliance patterns and check these.
No: The system has found some devices, but not all of them.
The system always detects devices working from the end of the chain. Therefore if it detects, say, two devices in the chain, it has only found the last two. The problem must then lie in the 3rd device back or in the connection between the 2nd and 3rd devices back.
Identify the device that causes the break, check its TCK and TMS pins and check the connection between its TDO and the TDI of the next device. If none of these solves the problem, check the BSDL file / data sheet for any compliance patterns. These are pin values that stop the JTAG circuits from working. Common problematic pins are nPROG and nINIT on FPGA’s, and some RESET pins on processors.
Yes: The system has found the correct number of devices.
Are the ID codes correct?
If the ID codes are correct, but the device does not seem to be working correctly (not writing to pins correctly or reading from pins correctly), check that the TDI to the board is connected correctly and that any compliance patterns have been set up.
If the ID codes are not correct, check the device types and BSDL files. If the IDCode is listed as zero, that device does not have an ID code.