mikrocontroller.net

Forum: FPGA, VHDL & Co. Spartan 3e mit SPI Flash: Booten verhindern


Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es einen Standard-Weg, das Laden des FPGA aus dem SPI Flash (Master 
SPI Mode) zu verhindern? Hintergrund ist ein Design so zu gestalten, 
dass Boundary Scan Test möglich ist. Das geht aber nur richtig, wenn man 
per Jumper das Booten verhindert. Bisher haben wir den Platform Flash 
eingesetzt, da ging das einfach, indem mal Init_B auf Low zieht. Reicht 
es, wenn ich am Atmel DataFlash das Reset auf Low halte? Dann müsste der 
Spartan ja erfolglos versuchen zu booten, oder? Oder kann ich das Init_B 
auch im Maser Serial Mode benutzen, um per Low von außen das Booten zu 
verhindern?

Autor: Antti Lukats (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
fpga mode pins auf JTAG

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm...da müsste dann noch ein Inverter rein.

Master SPI : 001
JTAG : 101

Der bisherige Jumper zieht auf Low (weil auf der anderen Platine ein 
Virtex 4 mit PlatForm Flash auch an der Leitung hängt), aber das M2 
müsste dann auf High gezogen werden. Mal schauen, wie sich das umsetzen 
lässt.

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum willst Du das booten verhindern? Auch bei
Master SPI : 001
ist das FPGA ueber JTAG ansprechbar. damit ist doch auch Boundary Scan 
moeglich. Und ueber JPROGRAM solltest Du, wenn alle Stricke reissen, 
auch die vorhandene Konfiguration loeschen koennen, dann den 
gewuenschten Boundary Scan ohne eine Beintraechtingung durch eine 
vorhandene Konfiguration machen koennen,  und ueber Reset und JPROGRAM 
dann den Baustein wieder aus dem SPI Flash konfigurieren. Also etwa wie 
hier

 idata[0] = JPROGRAM;
  jtag.shiftIR(idata);
  idata[0] = CFG_IN;
  do
    jtag.shiftIR(idata, odata);
  while (! (odata[0] & 0x10)); /* wait until configuration cleared */

 <boundary scan>

  /* Release JTAG control over configuration (AR 16829)*/
  io->tapTestLogicReset();
  idata[0] = JPROGRAM;
  jtag.shiftIR(idata);
  /* Now device will reconfigure from standard configuration source */
  idata[0] = BYPASS;
  fprintf(stderr, "Will wait up to 10 seconds for device to 
reconfigure.");
  fflush(stderr);
  do
    {
      jtag.Usleep(1000);
      jtag.shiftIR(idata, odata);
      if(i%250 == 249)
        {
          fprintf(stderr, ".");
          fflush(stderr);
        }
      i++;
    }
  while ((( odata[0] & 0x23) != 0x21) && (i <10000));

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab aber beim Boundary Scan keinen manuellen Einfluss auf den TAP 
Controller. Das macht ja alles das Cascon System von Göpel Electronic. 
Ich hab aber im Config User Guide jetzt gefunden, dass man das Prog_B 
auf Low lassen soll, wenn man nach dem Clear anhalten will. Das sollte 
ja genau das sein, was wir brauchen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.