Thursday, July 2, 2009

HOWTO: Reuse Spartan 3e starter kit's USB JTAG module

Xilinx Spartan3e Starter kit has an integrated USB Programming module which is an actually Platform Cable USB II cable. Many xilinx boards development boads does not have on board JTAG programmer. So if you buy a new xilinx board you probably need an Platform Cable USB.

Occasionaly you need a Platform Cable USB with most development boards.

This article explains howto reverse your spartan3e board to use as Platform Cable USB II.

There are also projects like Xup, x3sprog which, they are re-programming EZ-USB chip and using their own software to program fpga devices.

I also find Xup very interesting, with Xup we can also usb this USB connection for data transfer between FPGA and PC.

But here in this hack, we only stripped JTAG signals from board with minimum effort. And we can extend our chain adding another board. we can also program it using S3E's onboard programmer.


Above you see, s3e jtag chain. On a generic s3e-500, when you use impact to access your device, you see 3 devices. like the screenshot below.




There is a FX2 connector on S3e which is used to connect daughter boards. In FX2 there also JTAG signals, that enables to add your daughter boards devices to chain. What we do here is get this signals from connectors.

An important signal on FX2 is JTSEL signal. When a new devices is added to chain it drives JTSEL to high. On s3e this is done by a tristate buffer device.

To manual control of JTSEL , I have soldered a jumper on board. When you want to extend your chain we short it otherwise it is in the original state, floating.



And here is my board with connector soldered. It is better to use a short cable, for good signal quality.



Here is my test setup with S3E + Digilent Spartan Sample Pack. Note JTSEL Jumper is shorted. If not, you cannot see any devices in your chain.




Start impact, initialize chain, then you will see X3S100 (the FPGA device on small board) on the chain, you can assign bitstream and configure it.



I am also using ML401 for accessing virtex4(seven devices total s3e + ml401) .

These may help to easily solder your connector.





2 comments:

  1. Very helpful , thank you.

    ReplyDelete
  2. Thanks a bunch for the description. I was about to do the investigation you've already done but thought I might give it a google before analyzing diagrams. You just saved me some hours of digging and testing :-)

    ReplyDelete