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
:
Bearbeitet durch Moderator
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ß
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?
:
Bearbeitet durch Moderator
> > 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
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.
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.
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ß
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.
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.