mikrocontroller.net

Forum: FPGA, VHDL & Co. Frage zu Configurationspins des Cyclone II


Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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... :)

Autor: Valerij Matrose (fpga-dev)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Valerij Matrose (fpga-dev)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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

Autor: Valerij Matrose (fpga-dev)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Autor: Valerij Matrose (fpga-dev)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Falk:
Oookay, werde ich eine PS-Schnittstelle basteln... Danke für die Info.

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann man machen, siehe Link oben.

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Falk:
Ja, danke für den Link. Dort steht allerdings nichts von RESET.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber sicher. Reset vom AVR hängt am PROGRAM vom FPGA.

MFG
Falk

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay hab ich wohl nicht recht geschaut ;) Herzlichen Dank Falk für deine 
Bemühungen!
Schönen Tag noch, Grüsse
     Tobias

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.