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


von Tobias P. (hubertus)


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?

von Falk B. (falk)


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

von Tobias P. (hubertus)


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... :)

von Valerij M. (fpga-dev)


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

von Falk B. (falk)


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

von Valerij M. (fpga-dev)


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

von Falk B. (falk)


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

von Valerij M. (fpga-dev)


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

von Tobias P. (hubertus)


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

von Valerij M. (fpga-dev)


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

von Tobias P. (hubertus)


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.

von Falk B. (falk)


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

von Tobias P. (hubertus)


Lesenswert?

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

von Tobias P. (hubertus)


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?

von Falk B. (falk)


Lesenswert?

Kann man machen, siehe Link oben.

von Tobias P. (hubertus)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

Aber sicher. Reset vom AVR hängt am PROGRAM vom FPGA.

MFG
Falk

von Tobias P. (hubertus)


Lesenswert?

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

von Tobias P. (hubertus)


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.

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
Noch kein Account? Hier anmelden.