Hallo, ich verwende in einer Hardwareapplikation einen EPCS4 Flash Controller der direkt an einem FPGA angeschlossen ist. Mit einem Mikrocontroller soll in Zukunft die FPGA Firmware aktualisiert werden. Hierfür habe ich den EPCS4 Flash Controller an einen Mikrocontroller angebunden. Via SPI Kommunikation kann auf den EPCS zugegriffen werden. Nun habe ich mal einen vorhanden EPCS Flashinhalt mit dem Mikrocontroller ausgelesen. Den ersten Sektor habe ich mit der generierten *.rbf Datei (von Quartus erzeugt) verglichen. Es gibt stellen, die unterschiedlich sind, was ich mir nicht erklären kann.
Die generiete Datei mit der Endung *.rbf, ist diese identisch mit dem Dateninhalt vom EPCS Flash Controller ? Gibt es beim Updatevorgang via Mikrocontroller über SPI noch etwas zu beachten ?
Hallo Leo, also ich denke das in der Adresse 0x49 und 0x4A kodiert wird "wie" das Programm auf dem EPCS geladen wird. jic-files haben eine andere Kodierung wie z.b. *.rbf. Aber der rest sollte identisch sein dann läuft das Programm auch. Beim update Vorgang sollte man beachten, dass man die neu zu beschreibenden Sektoren vorher löschen muss. Und das bei den Daten wohl MSB und LSB gedreht werden müssen. Viele grüße Tobias
Vielen Dank für deine Antwort. Gibt es eine spezielle Dokumentation, wo das drin steht ? Also kann ich quasi den Inhalt von beiden Adressen ignorieren ?
nein es gibt keine doku zur rbf, ledigich ein paar hack versuche. Die adr 0x49 und 0x4A gehören zu irgendwelchen checks, du kannst die unterschiede ignorieren.
Der EPCS Flash Controller lässt sich nun beschreiben. Von einem Projekt wurde ein rbf File erzeugt. Den Inhalt dieser Datei wurde auf den EPCS Flash Controller kopiert. Die Daten im EPCS Flash Controller habe ich zum Schluss ausgelesen und mit dem rbf File verglichen. Keine Unterschiede sind festzustellen. Wenn ich den EPCS Flash Controller wieder auf das Board mit dem FPGA bestücke, dann läuft der FPGA nicht an. Gibt es beim Kopiervorgang auf den EPCS Flash Controller noch was zu beachten ?
Hi, ich beschreibe an einen Cyclone II das serielle Flash über SPI 1:1 mit dem RBF (Raw Binary File) und das klappt bestens. Irgendwelche Bytes werden nicht neu berechnet, aber ich glaub auch daß da ein Bitswapping MSB-LSB stattfindet. Anfangs habe ich das mit dem BlackCAT USB (http://www.embeddedcomputers.net/products/FlashcatUSB/) gemacht, mittlerweile im Serienprodukt mache ich das über Bitbang und FT232 vom PC aus. Dauert zwar ein bischen, aber es klappt ohne zusätzliche Komponenten oder FPGA. Einzig wenn das FPGA noch unkonfigiguriert ist muß man es per Reset ruhig stellen. Günter (dl4mea)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.