EmbDev.net

Forum: FPGA, VHDL & Verilog XILINX XC3S50AN: Can't program internal Flash


Author: Oerg866 (Guest)
Posted on:

Rate this post
0 useful
not useful
Hi :)

I've written this post in both English and German - because the website 
said I could do that. Neat!

Anyway, I created a small PCB equipped with an FPGA (XC3S50AN)) to do 
some video processing. This is a first for me in two ways: I have 
neither designed a PCB before nor have I used an FPGA. Previously I was 
merely using CPLDs (XC9572XL) and protoboards :P

I ran into a problem which manifests itself in failure to program the 
internal flash of the FPGA. I can run the IDCODE-Loop as many times as I 
want and it will never fail. I can program the FPGA on the fly and the 
board will come to life an do what it should. I've ironed out all the 
bugs in the core and this the next step was programming the flash.

But no matter what I try, that doesn't work properly.

Below the post I've attached a log from iMPACT (by the way, I use ISE 
12.4 with a Parallel Cable III clone).

As you can see, it erases, flashes and verifies properly - but why does 
it still fail in the end? I've read about mode pins but I thought those 
were for the non-"AN" series only, and I cannot see them in the 
datasheet either (I use the TQ144 footprint, and the pinout doesn't have 
any mode pins?)

Am I missing something? I would think so, because I'm a total newcomer 
in this field...

Thanks in advance!

Eric

--------------------------------------------------
Hallöchen,

ich habe eine Platine entwickelt und benutze darauf einen FPGA (beides 
sind für mich "firsts", vorher habe ich auf Proto-Boards und CPLDs 
rumgeeiert :P)).

Also, folgendes. Ich kann den IDCODE-Test 99999999x ausführen, den FPGA 
on-the-fly programmieren (platine tut dann auch, was sie soll), aber den 
internen Flash kann ich, egal, was ich versuche, nicht programmieren.

iMPACT (ich benutze übrigens ISE 12.4 mit einem Parallel Cable III-Klon) 
spuckt den untenstehenden Log aus.

Habe ich irgendetwas übersehen? Bin auf dem Gebiet wiegesagt Laie und 
das Programmieren des Flashs ist das einzige was fehlschlägt, und das 
kann ich mir nicht erklären...

Liebe Grüße
Eric

-----------------------------
LOG:

INFO:iMPACT - Current time: So 23. Nov 01:52:43 2014
PROGRESS_START - Starting Operation.
Maximum TCK operating frequency for this device chain: 0.
Validating chain...
Boundary-scan chain validated successfully.
'1': SPI access core not detected. SPI access core will be downloaded to the device to enable operations.
INFO:iMPACT - Downloading core file C:/Xilinx/12.3/ISE_DS/ISE/spartan3a/data/xc3s50an_spi.cor.
'1': Downloading core...
 LCK_cycle = NoWait.
LCK cycle: NoWait
done.
'1': Reading status register contents...
INFO:iMPACT:2219 - Status register values:
INFO:iMPACT - 0011 1101 1111 1100 
INFO:iMPACT:2492 - '1': Completed downloading core to device.
INFO:iMPACT - Address 0x00000000 is in sector 0.
INFO:iMPACT - Start block = 0 for address 0x00000000.
INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased.
INFO:iMPACT - Address 0x0000D587 is in sector 2.
INFO:iMPACT - End block = 31 for address 0x0000D587.
INFO:iMPACT - Address 0x00000000 is in sector 0.
INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased.
INFO:iMPACT - Address 0x0000D587 is in sector 2.
INFO:iMPACT - Address 0x00000000 is in sector 0.
INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased.
INFO:iMPACT - Address 0x0000D587 is in sector 2.
INFO:iMPACT - Address 0x00000000 is in sector 0.
INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased.
INFO:iMPACT - Address 0x0000D587 is in sector 2.
INFO:iMPACT - Address 0x00000000 is in sector 0.
INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased.
INFO:iMPACT - Address 0x0000D587 is in sector 2.
'1': Erasing device...
done.
'1': Erasure completed successfully.
INFO:iMPACT - Address 0x00000000 is in sector 0.
INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased.
INFO:iMPACT - Address 0x0000D587 is in sector 2.
INFO:iMPACT - Address 0x00000000 is in sector 0.
INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased.
INFO:iMPACT - Address 0x0000D587 is in sector 2.
INFO:iMPACT - Address 0x00000000 is in sector 0.
INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased.
INFO:iMPACT - Address 0x0000D587 is in sector 2.
INFO:iMPACT - Address 0x00000000 is in sector 0.
INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased.
INFO:iMPACT - Address 0x0000D587 is in sector 2.
INFO:iMPACT - Address 0x00000000 is in page 0.
INFO:iMPACT - Address 0x0000D587 is in page 207.
'1': Programming Flash...done.
'1': Programming completed successfully.
INFO:iMPACT - Address 0x00000000 is in page 0.
INFO:iMPACT - Address 0x0000D587 is in page 207.
'1': Verifying device...done.
'1': Verification completed successfully.
'1': Configuration data download to FPGA was not successful. DONE did not go high, please check your configuration setup and spi mode settings.
PROGRESS_END - End Operation.
Elapsed time =    105 sec.

Author: Oerg866 (Guest)
Posted on:

Rate this post
0 useful
not useful
I read about the mode and VS pins, and set them accordingly, and it 
still doesn't work :(

Author: Lothar Miller (lkmiller) (Moderator)
Posted on:

Rate this post
0 useful
not useful
The bitstream generator has an option called "drive done pin high". What 
value do you have there?
Is a pull up connected to the done pin?


BTW: für Fragen in deutscher Sprache gehst du besser ins deutsche 
mikrocontroller.net Mutterforum.

: Edited by Moderator
Author: Oerg866 (Guest)
Posted on:

Rate this post
0 useful
not useful
A friend already told me about that option and I checked the box next to 
it. It still didn't work :(

Author: Lothar Miller (lkmiller) (Moderator)
Posted on:

Rate this post
0 useful
not useful
Oerg866 wrote:
> I created a small PCB equipped with an FPGA
What is connected to the done pin? Did you measure the voltage at the 
done pin? Do you have a schematic of your board?

> I read about the mode and VS pins, and set them accordingly
And to what value did you set them? Why must I ask all those questions?

Author: Oerg866 (Guest)
Posted on:

Rate this post
0 useful
not useful
To valid values according to the datasheet, 0,1,1 for Mode, 1,1,1 vor 
VS.

I redid the wires to those pins and the thing suddenly started working. 
Hooray!

Case closed, was a bad connection SOMEWHERE :D

Cheers.

Reply

Entering an e-mail address is optional. If you want to receive reply notifications by e-mail, please log in.

Rules — please read before posting

  • Post long source code as attachment, not in the text
  • Posting advertisements is forbidden.

Formatting options

  • [c]C code[/c]
  • [avrasm]AVR assembler code[/avrasm]
  • [vhdl]VHDL code[/vhdl]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]




Bild automatisch verkleinern, falls nötig
Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.