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:
1 | INFO:iMPACT - Current time: So 23. Nov 01:52:43 2014 |
2 | PROGRESS_START - Starting Operation. |
3 | Maximum TCK operating frequency for this device chain: 0. |
4 | Validating chain... |
5 | Boundary-scan chain validated successfully. |
6 | '1': SPI access core not detected. SPI access core will be downloaded to the device to enable operations. |
7 | INFO:iMPACT - Downloading core file C:/Xilinx/12.3/ISE_DS/ISE/spartan3a/data/xc3s50an_spi.cor. |
8 | '1': Downloading core... |
9 | LCK_cycle = NoWait. |
10 | LCK cycle: NoWait |
11 | done. |
12 | '1': Reading status register contents... |
13 | INFO:iMPACT:2219 - Status register values: |
14 | INFO:iMPACT - 0011 1101 1111 1100 |
15 | INFO:iMPACT:2492 - '1': Completed downloading core to device. |
16 | INFO:iMPACT - Address 0x00000000 is in sector 0. |
17 | INFO:iMPACT - Start block = 0 for address 0x00000000. |
18 | INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased. |
19 | INFO:iMPACT - Address 0x0000D587 is in sector 2. |
20 | INFO:iMPACT - End block = 31 for address 0x0000D587. |
21 | INFO:iMPACT - Address 0x00000000 is in sector 0. |
22 | INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased. |
23 | INFO:iMPACT - Address 0x0000D587 is in sector 2. |
24 | INFO:iMPACT - Address 0x00000000 is in sector 0. |
25 | INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased. |
26 | INFO:iMPACT - Address 0x0000D587 is in sector 2. |
27 | INFO:iMPACT - Address 0x00000000 is in sector 0. |
28 | INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased. |
29 | INFO:iMPACT - Address 0x0000D587 is in sector 2. |
30 | INFO:iMPACT - Address 0x00000000 is in sector 0. |
31 | INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased. |
32 | INFO:iMPACT - Address 0x0000D587 is in sector 2. |
33 | '1': Erasing device... |
34 | done. |
35 | '1': Erasure completed successfully. |
36 | INFO:iMPACT - Address 0x00000000 is in sector 0. |
37 | INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased. |
38 | INFO:iMPACT - Address 0x0000D587 is in sector 2. |
39 | INFO:iMPACT - Address 0x00000000 is in sector 0. |
40 | INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased. |
41 | INFO:iMPACT - Address 0x0000D587 is in sector 2. |
42 | INFO:iMPACT - Address 0x00000000 is in sector 0. |
43 | INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased. |
44 | INFO:iMPACT - Address 0x0000D587 is in sector 2. |
45 | INFO:iMPACT - Address 0x00000000 is in sector 0. |
46 | INFO:iMPACT - Address 0x0000D587 is not located at the start of a sector boundary. The whole sector will be erased. |
47 | INFO:iMPACT - Address 0x0000D587 is in sector 2. |
48 | INFO:iMPACT - Address 0x00000000 is in page 0. |
49 | INFO:iMPACT - Address 0x0000D587 is in page 207. |
50 | '1': Programming Flash...done. |
51 | '1': Programming completed successfully. |
52 | INFO:iMPACT - Address 0x00000000 is in page 0. |
53 | INFO:iMPACT - Address 0x0000D587 is in page 207. |
54 | '1': Verifying device...done. |
55 | '1': Verification completed successfully. |
56 | '1': Configuration data download to FPGA was not successful. DONE did not go high, please check your configuration setup and spi mode settings. |
57 | PROGRESS_END - End Operation. |
58 | Elapsed time = 105 sec. |
I read about the mode and VS pins, and set them accordingly, and it still doesn't work :(
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
A friend already told me about that option and I checked the box next to it. It still didn't work :(
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?
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.