FPGARelated.com
Forums

Invalid devices when initialising scan chain with Nexys2

Started by free...@gmail.com December 5, 2008
G'day all,

I am a student studying EE/Physics, and after completing my 2nd year
digital design course, I decided to take things further and purchased
a digilent Nexys2 for myself to do further tinkering with. I am
however struggling with the most basic of tasks: getting digilent's
ExPort program to successfully initialise the scan chain.

I get the following log:

Found Device.  IDCODE:  f5046093
Found Device.  IDCODE:  21c2e093
Found Device.  IDCODE:  invalid
Found Device.  IDCODE:  invalid
Found Device.  IDCODE:  invalid
<snip>
Found Device.  IDCODE:  invalid
Initialization failed

There is a total of 29 devices for which the IDCODE was invalid. JP9
on the board has been set to JTAG, and pins 2 and 3 of JP5, the JTAG
port has been shorted - this shorts TDI and TDO. I don't see any other
jumpers on board which could influence the JTAG chain, and have
verified by looking the schematic (sheet 04).

Things I have tried:

* 3x USB cables: digilent's, one for a portable USB HDD, one for a
portable CDROM, in order of decreasing length
* unshort TDI and TDO, though as far as I can tell it has no effect
whatsoever.
* slow and fast programming mode
* reinstalling the drivers
* reinstalling windows
* reinstalling Xilinx WebPACK
* different USB ports
* turning it on and off again and again and again...
* went to sleeping hoping it will work in the morning
   (props to A5 of http://www.fpga-faq.com/FAQ_Pages/0001_JTAG_Config.htm)
* googled for nexys2 and read every pdf on the first 3 pages returned
looking for something I missed

So now I am stuck with a rather expensive (on my student earning) self-
gratifying-early-Christmas-present which I can't do anything with,
other than get it to load the factory test program and play with the
blinken lights. As fun as that is, I would _love_ to be able to do
more with it.

If this august group can assist in resolving this issue, it would be
fantastic. If nothing else, if some one can kindly post that they a)
have their Nexys2 working and b) inform me of the software and
hardware configuration, that would warm my cockles.

Cheers,
Steve
Add to the tried list:

* powering the board externally using a 5V external power supply
(LM7805 backed by a 6V unregulated plug back), so it is not a usb-
power related issue
On Dec 6, 1:27=A0pm, "freesp...@gmail.com" <freesp...@gmail.com> wrote:
> G'day all, > > I am a student studying EE/Physics, and after completing my 2nd year > digital design course, I decided to take things further and purchased > a digilent Nexys2 for myself to do further tinkering with. I am > however struggling with the most basic of tasks: getting digilent's > ExPort program to successfully initialise the scan chain. > > I get the following log: > > Found Device. =A0IDCODE: =A0f5046093 > Found Device. =A0IDCODE: =A021c2e093
I have just checked the above IDs: they correspond to the correct Xilinx devices, as expected. So the devices which are suppose to be there, are there.
freespace@gmail.com wrote:
(snip)
> I get the following log:
> Found Device. IDCODE: f5046093 > Found Device. IDCODE: 21c2e093 > Found Device. IDCODE: invalid > Found Device. IDCODE: invalid > Found Device. IDCODE: invalid
I don't have this board so I might be just guessing, but is there any reason that Xilinx software should recognize non-Xilinx devices? -- glen
On Dec 6, 8:27=A0pm, Glen Herrmannsfeldt <g...@ugcs.caltech.edu> wrote:
> freesp...@gmail.com wrote: > > (snip) > > > I get the following log: > > Found Device. =A0IDCODE: =A0f5046093 > > Found Device. =A0IDCODE: =A021c2e093 > > Found Device. =A0IDCODE: =A0invalid > > Found Device. =A0IDCODE: =A0invalid > > Found Device. =A0IDCODE: =A0invalid > > I don't have this board so I might be just guessing, > but is there any reason that Xilinx software should recognize > non-Xilinx devices? >
Are you referring to IDs f5046093 and 21c2e093? Those appear to be Xilinx devices. I don't expect Xilinx to recognise non-Xilinx devices either, but that is not what is causing the invalid IDCODE messages: there are _only_ 2 devices on the board connected to the JTAG chain. My problem is there appears to be 29 other devices which aren't there, but is detected. This is causing Digilent's ExPort program to fail and thus preventing me from doing anything with the Nexys2. Cheers, Steve
On Dec 6, 9:46=A0am, "freesp...@gmail.com" <freesp...@gmail.com> wrote:
> On Dec 6, 8:27=A0pm, Glen Herrmannsfeldt <g...@ugcs.caltech.edu> wrote:> =
freesp...@gmail.com wrote:
> > > (snip) > > > > I get the following log: > > > Found Device. =A0IDCODE: =A0f5046093 > > > Found Device. =A0IDCODE: =A021c2e093 > > > Found Device. =A0IDCODE: =A0invalid > > > Found Device. =A0IDCODE: =A0invalid > > > Found Device. =A0IDCODE: =A0invalid > > > I don't have this board so I might be just guessing, > > but is there any reason that Xilinx software should recognize > > non-Xilinx devices? > > Are you referring to IDs f5046093 and 21c2e093? Those appear to be > Xilinx devices. I don't expect Xilinx to recognise non-Xilinx devices > either, but that is not what is causing the invalid IDCODE messages: > there are _only_ 2 devices on the board connected to the JTAG chain. > My problem is there appears to be 29 other devices which aren't there, > but is detected. This is causing Digilent's ExPort program to fail and > thus preventing me from doing anything with the Nexys2.
Its almost like something is broken in the JTAG interface. IIRC, this can happen if the host fails to find the end of the IDCODE register when doing an initialization scan. It looks like it reads in an extra 29 devices (likely all 1's) and then stops because of a software 'timeout' (a neat 31 devices in an array); it then cant find the device description files for the spurious 29, and tells you that. I seem to remember that the way it's supposed to detect the end of the scan chain is the lack of a '1' as a first bit in the n+1 IDCODE out. If TDO is stuck high after the two first devices, youd get something very much like what you sre seeing. I'd try another JTAG scan tool to see what *that* reports. Of course, I could also be dead wrong and its due to something entirely different. //Oscar
freespace@gmail.com wrote:
> there are _only_ 2 devices on the board connected to the JTAG chain. > My problem is there appears to be 29 other devices which aren't there, > but is detected.
Have you tried setting a slower cable speed? I've had things like this happened when I used a too fast clock for JTAG. You can set the speed in the iMPACT cable settings. The default is rather high, there have been times when it wouldn't work unless I selected a slower speed. HTH, Sean
On Dec 7, 11:11=A0pm, Oscar <o.al...@gmail.com> wrote:
> On Dec 6, 9:46=A0am, "freesp...@gmail.com" <freesp...@gmail.com> wrote: > > > > > On Dec 6, 8:27=A0pm, Glen Herrmannsfeldt <g...@ugcs.caltech.edu> wrote:= > freesp...@gmail.com wrote: > > > > (snip) > > > > > I get the following log: > > > > Found Device. =A0IDCODE: =A0f5046093 > > > > Found Device. =A0IDCODE: =A021c2e093 > > > > Found Device. =A0IDCODE: =A0invalid > > > > Found Device. =A0IDCODE: =A0invalid > > > > Found Device. =A0IDCODE: =A0invalid > > > > I don't have this board so I might be just guessing, > > > but is there any reason that Xilinx software should recognize > > > non-Xilinx devices? > > > Are you referring to IDs f5046093 and 21c2e093? Those appear to be > > Xilinx devices. I don't expect Xilinx to recognise non-Xilinx devices > > either, but that is not what is causing the invalid IDCODE messages: > > there are _only_ 2 devices on the board connected to the JTAG chain. > > My problem is there appears to be 29 other devices which aren't there, > > but is detected. This is causing Digilent's ExPort program to fail and > > thus preventing me from doing anything with the Nexys2. > > Its almost like something is broken in the JTAG interface. > IIRC, this can happen if the host fails to find the end of the IDCODE > register when doing an initialization scan. > It looks like it reads in an extra 29 devices (likely all 1's) and > then stops because of a software 'timeout' (a neat 31 devices in an > array); it then cant find the device description files for the > spurious 29, and tells you that. I seem to remember that the way it's > supposed to detect the end of the scan chain is the lack of a '1' as a > first bit in the n+1 IDCODE out. If TDO is stuck high after the two > first devices, youd get something very much like what you sre seeing. > > I'd try another JTAG scan tool to see what *that* reports. > > Of course, I could also be dead wrong and its due to something > entirely different. > > //Oscar
Interesting, I will keep it in mind Oscar, thank you.
On Dec 8, 7:52=A0am, Sean Durkin <news_MO...@tuxroot.de> wrote:
> freesp...@gmail.com wrote: > > there are _only_ 2 devices on the board connected to the JTAG chain. > > My problem is there appears to be 29 other devices which aren't there, > > but is detected. > > Have you tried setting a slower cable speed? I've had things like this > happened when I used a too fast clock for JTAG. You can set the speed in > the iMPACT cable settings. The default is rather high, there have been > times when it wouldn't work unless I selected a slower speed. > > HTH, > Sean
I will ask the Digilent people. I have to use their ExPort program to communicate with my Nexys2 since it uses some usb-jtag magic. I might just by the Xilinx cable though if this continues to be a problem. Thank you for your advice.
On Dec 8 2008, 7:44=A0pm, "freesp...@gmail.com" <freesp...@gmail.com>
wrote:
> I will ask the Digilent people. I have to use their ExPort program to > communicate with my Nexys2 since it uses some usb-jtag magic. I might > just by the Xilinx cable though if this continues to be a problem. > > Thank you for your advice.
Have asked digilent people, so far no progress and no advice besides what has been said here and elsewhere on the net. The last I heard from them their lead engineer is looking into it, and the board might be broken leading to a broken chain. I If the latter is the case, then their QC and self test is not doing its job. Cheers, Steve