Forum: FPGA, VHDL & Co. XP2 - Datentransfer vom on-chip Flash zum SRAM


von Hei H. (heiha)


Lesenswert?

Hallo zusammen,
ich habe folgendes Problem. Bei einem Bestandsgerät bleibt bei nicht 
stabieler Versorgungsspannung ein im System integrierter XP2-5 hängen. 
Gespeicherte Flags bleiben nicht vollständig erhalten, er spricht auf 
die Befehle nicht mehr an, verrechnet sich und gibt an den uC 
"sinnvolle" Fehlercodes ab. Also Teile von der Logik arbeiten noch und 
andere nicht mehr.
Die eine Lösung wäre über den GSR alle Daten zurück zu setzen. Hierfür 
müsste der vhdl Code im FPGA geändert werden, was natürlich andere 
Risiken birgt.
Nun habe ich im Datenblatt gelesen "At power-up, or on user command, 
data transferred from the on-chip Flash memory to the SRAM configuration 
cells that control the operation of the device." Was ist hier mit "user 
command" gemeint. Im Datenblatt selber tauchen die Worte in Kombination 
kein weiteres mal auf und in den Applikation Notes habe ich auch nichts 
dazu gefunden.
Ich muss zugeben, dass ich mich noch nicht mit dem FPGA beschäftigt 
habe, sondern vom uC aus drauf schaue. Wahrscheinlich kann man über den 
JTAG oder die SSPI Befehle zum FPGA schicken, sogenannte "user 
commands". Ich weiß aber nicht, wo diese beschrieben sind. Vielleicht 
gelingt es mir ja so, den Baustein wieder zum Leben zu erwecken.
Ein HW Reset kann ich auch nicht durchführen, dass das Design schon 
fertig ist und hier nichts mehr geändert werden kann.
Gruß heiha

: Bearbeitet durch User
von Pat A. (patamat)


Lesenswert?

Die SPI-Commands sind in TN1213 "LatticeXP2 Slave SPI Port User’s Guide" 
beschrieben. Zum erneuten Laden der Konfiguration müsste vermutlich 0xC4 
"REFRESH" ausgeführt werden.

Aber ob das überhaupt noch funktionert, nachdem das FPGA durch 
Spannungseinbrüche in einen "teilfunktionierenden" Zustand gekommen ist, 
ist fraglich. So etwas ist mir selbst noch nie untergekommen!

Klar ist, die laufenden, internen Zustände sind natürlich weg, das FPGA 
konfiguriert sich neu, wie bei einem Powercycle.

Über JTAG geht das natürlich auch, die Kommandos selbst sind annähernd 
gleich. Und falls eine JTAG-Schnittstelle auf dem Board ist, kannst Du 
das mit dem Diamond Programmer sogar ausprobieren, ob sich das FPGA 
wiederbeleben lässt.

von Hei H. (heiha)


Lesenswert?

Hallo Pat A.,
vielen, vielen Dank für die Schnelle Hilfe. Dann werde ich das mal so 
einprogrammieren.
Das mit der JTAG im Fehlerfall ist auch eine gute Idee, dann kann ich im 
Debug Modus des uC gleich kontrollieren, ob der FPGA sich wieder fängt.
Gruß heiha

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.