How to configure SPI FLASH using Spartan-3E?

I have a system with a Spartan-3E with an SPI flash. I have been using the xspi.exe DOS program to configure the SPI flash. But now I'm wondering if the new ISE IMPACT 9.1 or later is able to configure the SPI flash though JTAG?

I saw in XAPP974 for the Spartan-3A that it was possible at least for that device. But is the same possible for Spartan-3E?

Reply to
Sven
Loading thread data ...

Hi,

The ISE iMPACT 9.1i does offer some expanded capability in this regard. You didn't specify if your "system" is the Spartan-3E Starter Kit or if it's another prototype/development board, or something of your own design. If you clarify what you are working with I can then attempt to describe your options.

Thanks, Eric

Reply to
Eric Crabill

It is my own design. The SPI flash is connected as in Xilinx XPAPP445 page 6 with the JTAG connected to the FPGA. But then I had to solder an extra connection as on page 11 to be able to program the SPI flash using DOS program xspi.exe.

I don't want to redesign the PCB. So I hope it is programmable direct via the JTAG connector (I don't want to use the DOS-program).

Reply to
Sven

Hello,

Thank you for giving me such a complete description; this helps me to provide a complete answer. I believe you have two options; hopefully one of these will work for you. These suggestions are based on iMPACT 9.1i Service Pack 3.

  1. You can use what is called Direct SPI programming. This is an iMPACT mode where the four JTAG signals from our download cable are re-purposed to work as the four SPI signals. To make this work, you must assert PROG# to the FPGA, and then connect the {TMS, TDI, TDO, TCK} from the download cable to the {CS#, SDI, SDO, SCK} of the SPI device on the board. You also need to ensure that no other SPI devices sharing SDI, SDO, SCK will be driving data out. This works even if the SPI device isn't connected to the FPGA at all.

  1. You can use what is called Indirect SPI programming. This is an iMPACT mode where a "JTAG to SPI bridge" is first downloaded to the FPGA by JTAG, and then iMPACT sends more data via JTAG user instructions that is used to program an attached SPI device. In this case, the SPI device must be connected to the FPGA's configuration port (i.e. a specific connectivity is required, like that shown in XAPP445). This won't work if the SPI device is connected to the FPGA using "randomly selected" general purpose I/O pins.

Hope this helps, Eric

Reply to
Eric Crabill

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.