Hallo, ich habe mir ein FPGA Bord zugelegt. Ziel ist es, den FPGA "CYCLONE IV" über ein STM32 uC zu programmieren. Da ich glaube das der interne RAM des STM32 zu klein ist, habe ich mal im Datenblatt des FPGAs nachgeuckt. Dort ist zu sehen, das die Verbindung über einen externen memory Baustein funtioniert. Das ganze nennt sich "Single-Device PS Configuration Using an External Host" sihe Bild. Meine Frage ist. Könnte ich diesen Baustein benutzten oder muss ich noch auf was achten? https://de.rs-online.com/web/p/sram/8032181/ Wenn jemand vielleicht einen anderen Baustein empfählt oder eine anderen Lösungsweg hat, würde ich mich über die Hilfe sehr freuen. Gruß Bruce
Ramazan A. schrieb: > Ziel ist es, den FPGA "CYCLONE IV" über ein STM32 uC zu programmieren. Du meinst, du willst ihn nach dem Einschalten konfigurieren. > Ziel ist es, den FPGA "CYCLONE IV" über ein STM32 uC zu programmieren. Warum? > Da ich glaube das der interne RAM des STM32 zu klein ist, habe ich mal > im Datenblatt des FPGAs nachgeuckt. Wozu brauchst du da ein RAM? Lade die Konfiguration doch einfach aus einem SPI-Flash und schiebe sie ins FPGA. Das kann das FPGA übrigens sogar ganz allein, ohne µC. Ramazan A. schrieb: > Könnte ich diesen Baustein benutzten oder muss ich noch auf was achten? Schon der kleinste Cyclone4 braucht über 350kB Speicher für den Raw-Bitstream. Komprimiert sicher immer noch 40-50% davon. Mehr zum Thema Konfiguration deines FPGAs siehe dort: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/cyc/cyc_c51013.pdf
Gast
#5819826
> anderen Baustein
EPCS4SI8N
Vielen Dank für deine Antwort. Ich wollte halt bestimmte Aufgaben mit dem uC machen und der FPGA soll gleichzeitig andere Aufgaben bearbeiten. Da ich ab und an man das Programm ändern möchte, dachte ich mir es würde so funktionieren wie ich aus dem Datenblatt gesehen habe. Gruß
... schrieb: >> anderen Baustein > > EPCS4SI8N Danke schön.
Ramazan A. schrieb: > Da ich ab und an man das Programm ändern möchte, dachte ich mir es > würde so funktionieren wie ich aus dem Datenblatt gesehen habe. Du willst die KONFIGURATION des FPGAs während der Laufzeit (teilweise) ändern? Dein Stichwort ist dann "Reconfigurable FPGA" oder "Partial Reconfiguration FPGA". https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/cyclone-iv/cyiv-52003.pdf Oder willst du einfach nur beim nächsten Start eine neue Konfiguration ins FPGA bekommen?
> > Oder willst du einfach nur beim nächsten Start eine neue Konfiguration > ins FPGA bekommen? Ja genau, tut mir leid wenn ich mich falsch ausgedrückt habe. Gruß von Bruce
Gast
#5820382
Die Frage ist doch: Woher kommen diese neuen Konfigurationsdaten? Ist am STM32 eine SD Karte angeschlossen, die die Konfigurationen enthält, oder kommen sie vielleicht von einem PC via USB? In beiden Fällen musst du die Daten nicht als ganzes ins RAM des STM32 speichern, sondern kannst sie direkt beim Empfangen oder Lesen von der SD Karte seriell zum FPGA schicken und jedesmal einen Clockimpuls generieren, allenfalls braucht es einen kleinen Pufferspeicher.
Gast
#5820398
grab the bitstream from SD-card and program the FPGA. LINK: https://stackoverflow.com/questions/43664395/is-it-possible-to-make-zybo-board-work-from-sd-card-configuration-only-with-bit Elektor hat mal ein Board mit FPGA und CPU gemacht. Via CPU und SD Card konnte dann das FPGA konfiguriert werden. Gruss Holger.
Gast
#5820429
Hier kann man das alte FPGA an LPT PORT via externer CPU oder sogar WIfi Webserver configurieren.
Gast
#5820480
wurde hier schonmal gemacht: (runterscrollen bis FPGA_Library) http://mikrocontroller.bplaced.net/wordpress/?page_id=1176
Vielen Dank, für die ganzen informationen. Ich lese mir jetzt mal alles in Ruhe druch und mach mich dann an die Arbeit. Gruß
Gast
#5820954
Hier noch der TAB via JTAG. https://youtu.be/PhaqHKyAvR4?t=233 Leider ist da ein kleiner Fehler drin ... der vor dem Last Clock muss der TMS Port mit hochgezogen werden. So wird die State-Engine richtig im Protokoll bedient.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.


