Ich bin am Entwickeln eines Cyclone II Boards (incl. Mikrocontroller). Nun bin ich mir am Überlegen, wie ich die Configuration-Schnittstelle am besten implementiere. Da ich an meinem Microcontroller etwas unter Pinmangel leide (die meisten Pins sind schon anderweitig vergeben), habe ich mir überlegt, ob ich die FPGA-Config-Pins so beschalten kann: Es gibt am MC noch eine nicht belegte Portleitung. Die verbinde ich mit nConfig -> wenn der FPGA configuriert werden soll kann die Portleitung auf 0 gezogen werden. Die Pins nStatus, CONF_DONE, DCLK und DATA0 verbinde ich einfach mit schon belegten Leitungen. Dann muss ich halt gleich nach dem Reset dafür sorgen, dass der FPGA configuriert wird. Danach darf man doch die Pegel an den Leitungen beliebig verändern, oder? Im Manual steht zwar, dass: - DATA0 nach der Configuration normalerweise auf High gezogen wird - DCLK entweder auf High oder Low verbleiben sollte, ein umschalten aber nichts bewirkt. Nun, was meint ihr hierzu? Kann man das so machen oder wäre es ggf. besser, wenn ich eigene Portleitungen für diese Config-Pins hätte?
Kann man so machen. Man muss nur aufpassen, was nStatus, CONF_DONE für Ausgänge sind. Wenn Open Drain, dann sollte es passen. Wenn Push_pull, einen Längswiderstand einfügen. MfG Falk
@Falk: Heeey, war ja klar dass du wieder mal der erste bist :D danke für die Info. nStatus und CONF_DONE sind open-drain. In diesem Fall sieht das gut aus... :)
Falk Brunner wrote: > Kann man so machen. Man muss nur aufpassen, was nStatus, CONF_DONE für > Ausgänge sind. Wenn Open Drain, dann sollte es passen. Wenn Push_pull, > einen Längswiderstand einfügen. > > MfG > Falk Das sehe ich aber anders! Der Zustand von DCLK und DATA0 darf nach der Konfiguration in PS Modus NICHT geändert werden. Zitat: "To ensure DCLK and DATA0 are not left floating at the end of configuration, the MAX II (Master) device must drive them either high or low,which ever is convenient on your PCB." Seite 13-25 Cyclone II Handbuch. Man kann aber Konfigurationsinterface mit nCS deaktivieren. Dann reagiert der FPGA nicht auf die Transitionen dieser Signale. Gruß, fpga-dev
Hmm. http://www.altera.com/literature/hb/cyc2/cyc2_cii51013.pdf Seite 64 pp. nStatus: "Driving nSTATUS low after configuration and initialization does not affect the configured device." CONF_DONE: "Driving CONF_DONE low after configuration and initialization does not affect the configured device." DCLK: "Toggling this pin after configuration does not affect the configured device." DATA0: Keine explizite Aussage, ist aber ein reiner Eingang. Ergo. Ausser an nCONFIG können alle Siganle klappern wie sie wollen. MFG Falk
Falk Brunner wrote: > Hmm. > > http://www.altera.com/literature/hb/cyc2/cyc2_cii51013.pdf > > Seite 64 pp. > > nStatus: "Driving nSTATUS low after configuration and initialization > does not affect the configured device." > > CONF_DONE: "Driving CONF_DONE low after configuration and initialization > does not affect the configured device." > > DCLK: "Toggling this pin after configuration does not affect the > configured device." > > DATA0: Keine explizite Aussage, ist aber ein reiner Eingang. > > Ergo. Ausser an nCONFIG können alle Siganle klappern wie sie wollen. > > MFG > Falk Nix ergo! Die Passage von DCLK bezieht sich auf die Konfiguration in AS-Modus! Im PS-Modus darf man die DATA0 und DCLK-Signale nicht ändern. Heisst ja auch einen Satz vorher an der von Dir zitierten Stelle: "If your design uses a control host, drive DCLK either high or low." Das stimmt überein mit dem was im vorherigen Posting zitiert habe. Ansonsten gibt's noch das schöne Bildchen 13-12 und da heißt es unter (4) "In user mode, drive DCLK either high or low when using the PS configuration scheme, whichever is more convenient." und unter (5) "Do not leave the DATA pin floating after configuration. Drive it high or low, whichever is more convenient." Gruß, fpga-dev
@ Valerij Matrose (fpga-dev) >Nix ergo! Bleib mal locker, Tawarisch. >Die Passage von DCLK bezieht sich auf die Konfiguration in AS-Modus! Im >PS-Modus darf man die DATA0 und DCLK-Signale nicht ändern. Heisst ja Das interpretierst du falsch. >"Do not leave the DATA pin floating after configuration. Drive it high >or low, whichever is more convenient." Hier nur die Rede davon, dass die Pins nicht floaten sollen, wie alle digitalen Eingänge. Trotzdem dürfen sie klappern/togglen. Steht explizit in der Tabelle. MFg Falk
@ Falk: > > Bleib mal locker, Tawarisch. > Vorschlag abjelehnt, Jenosse! Bleiben wir sachlich: Meine Suche in der Altera Knowledge Data Base nach "DCLK" hat ein paar Antworten ans Tageslicht befördert, die Dir recht geben. Damit wäre der Fall abgeschlossen. Gruß, fpga-dev
@Valerij: Ja nu was denn? Dürfen alle Pins toggeln, wie sie wollen, ausser halt eben nCONFIG? Ich verstehe deine Aussage grad nicht. Grüsse Tobias
Tobias Plüss wrote: > @Valerij: > Ja nu was denn? Dürfen alle Pins toggeln, wie sie wollen, ausser halt > eben nCONFIG? Ich verstehe deine Aussage grad nicht. > > Grüsse > Tobias Ja, so ist es. Nach der Konfiguration darf man die Pegel an den Konfigurationseingängen ändern. Ausnahmen : nCONFIG. Gruß, Valerij
Ah gut, danke. Noch eine andere Frage: Ich habe grade gemerkt, dass das JTAG-Interface des FPGAs noch einen Pin weniger benötigt. Was würdest du preferieren: Konfiguration des FPGAs über PS oder über JTAG? Die JTAG-Pins könnte man dann natürlich immernoch auf einen separaten Stecker führen, damit man mit dem ByteBlaster noch drankommt.
@ Tobias Plüss (hubertus) >Ich habe grade gemerkt, dass das JTAG-Interface des FPGAs noch einen Pin >weniger benötigt. Was würdest du preferieren: Konfiguration des FPGAs >über PS oder über JTAG? PS. JTAG ist vom Protokoll wesentlich aufwändiger. > Die JTAG-Pins könnte man dann natürlich >immernoch auf einen separaten Stecker führen, damit man mit dem >ByteBlaster noch drankommt. Tu das. Low Cost FPGA Konfiguration Mfg Falk
@Falk: Oookay, werde ich eine PS-Schnittstelle basteln... Danke für die Info.
Wäre es eigentlich theoretisch auch geschickt, die nCONFIG-Leitung mit RESET des MCs zu verbinden? Der MC, den ich verwende, hat einen bidirektionalen RESET-Pin (OC). Wird der Pin extern auf Low gezogen, wird resetiert (standard), mittels speziellem Assembler-Befehl (RESET halt) kann der Pin vom MC selber auf Low gezogen werden. RESET ist ja im normalfall immer auf high. Beim POR ist es low, der FPGA wird dann also auch quasi zurückgesetzt und kann nach seinem eigenen POR (100 ms) configuriert werden. Und wenn ich neue Config-Daten laden will, kann ich den RESET-Befehl benutzen, der den RESET-Pin für 512 Taktzyklen (347 us) auf LOW zieht. Macht das Sinn?
@Falk: Ja, danke für den Link. Dort steht allerdings nichts von RESET.
Okay hab ich wohl nicht recht geschaut ;) Herzlichen Dank Falk für deine Bemühungen! Schönen Tag noch, Grüsse Tobias
hey, @Falk: kurze Frage. Darf ich während der Configuration auch mal nCE auf High haben? Oder muss nCE während der ganzen Prozedur 0 sein? Ich möchte nämlich die Pins vom Microcontroller noch für eine andere Anwendung einsetzen, sodass ich zwischendurch den FPGA 'deaktivieren' sollte, damit der nicht fälschlicherweise Daten einlies, die gar nicht für ihn bestimmt gewesen wären.
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.