FPGA-Porterweiterung durch 74HC595

Gast #2432224
Lesenswert?

Schönen guten Morgen alle zusammen!

Nach ewig dauernden Recherchen und Herumgewinde musste ich mich doch vom 
FGA400 – Gehäuse trennen und eine Alternative finden: Porterweiterung 
durch flottes Schieberegister.

Nur wenige Stunden später hatte ich mich dann auch in dieses Modell 
verguckt:

http://www.nxp.com/documents/data_sheet/74AHC_AHCT595.pdf

### Den Tristate umgehe ich durch „grundieren“ von _OE, korrekt?

(Direkt nach dem Einschalten darf das ruhig vorkommen).(Vgl.: 
Beitrag "Shift-Register auch ohen Tri-State")

### Leider bin ich mir nicht ganz sicher, was SHCP und STCP bewirken. 
Stimmt folgendes:

SHCP: Clock zum Durchshiften des „internen Registers“, ohne STCP wird 
das Signal nicht an die „Latch-Register“ weitergereicht ?

STCP:  Setzt alle Latch-Register auf den Zustand der „internen 
Register“, auf einen Schlag?

(Das schließe ich zumindest aus dem Schaltplan des Datenblatts)

Wenn ich da falsch liege, korrigiert mich bitte.

Nun zur Geschwindigkeit:

Das Modell ist so ziemlich das schnellste, was ich finden konnte ... 
aber wie schnell ist es denn jetzt wirklich?

Im Datenblatt habe ich gesehen, dass f_max bei 3.3V typischerweise mit 
125MHz Clocktakt (?) betrieben werden kann?
Bei 4-5V sogar 170MHz.

Meine Kiste FPGA (Xilinx Spartan XC3S400-5TQG144C) läuft auf 3.3V 
Ausgangsspannung bei 168MHz.

### Läuft das Shiftregister auch mit dieser Hertz-Zahl und 3.3V korrekt, 
oder muss ich den Takt „zerteilen“ ?

Wie lange braucht ein Byte, um am Register-Ausgang vollständig 
anzuliegen:

### 168 /(8 + 1) => ca. 18 MHz (Rechnung okay?)

Die Fragen/ Unklarheiten habe ich mit ### gekennzeichnet.
#2432272
Lesenswert?

KräuseLot schrieb:

> http://www.nxp.com/documents/data_sheet/74AHC_AHCT595.pdf
>
> ### Den Tristate umgehe ich durch „grundieren“ von _OE, korrekt?

Ja

> ### Leider bin ich mir nicht ganz sicher, was SHCP und STCP bewirken.
> Stimmt folgendes:

stimmt

> Im Datenblatt habe ich gesehen, dass f_max bei 3.3V typischerweise mit
> 125MHz Clocktakt (?) betrieben werden kann?
> Bei 4-5V sogar 170MHz.
>
> Meine Kiste FPGA (Xilinx Spartan XC3S400-5TQG144C) läuft auf 3.3V
> Ausgangsspannung bei 168MHz.
>
> ### Läuft das Shiftregister auch mit dieser Hertz-Zahl und 3.3V korrekt,
> oder muss ich den Takt „zerteilen“ ?

Wie schnell deine Kiste läuft interessiert den 595 nicht. Der 
interessiert sich nur dafür, wie schnell die Pulse sind, die du ihm an 
den SHCP und STCP Eingängen anbietest. Und ich schätze mal, dass deine 
Kiste es auch nicht schafft innerhalb eines Zykluses ein Datenbit 
anzulegen und danach einen SHCP-Puls von Low auf High und wieder zurück 
zu schalten.

>
> Wie lange braucht ein Byte, um am Register-Ausgang vollständig
> anzuliegen:
>
> ### 168 /(8 + 1) => ca. 18 MHz (Rechnung okay?)

prinzipiell fast ok. Nur die 168Mhz werden nicht stimmen.
Du hast ja auch Verwaltungsaufwand (8-er Schleife, Bit extrahieren, Bit 
auf Datenleitung, SHCP Puls nachschieben), oder kann deine Kiste in 
Hardware 8 Bits raustakten?
#2432275
Lesenswert?

@  KräuseLot (Gast)

>### Den Tristate umgehe ich durch „grundieren“ von _OE, korrekt?

Ja.

>SHCP: Clock zum Durchshiften des „internen Registers“, ohne STCP wird
>das Signal nicht an die „Latch-Register“ weitergereicht ?

Ja, nennt der Fachmann auch Daten schieben.

>STCP:  Setzt alle Latch-Register auf den Zustand der „internen
>Register“, auf einen Schlag?

ja, nennt der Fachman auch speichern oder übernehmen.

>Im Datenblatt habe ich gesehen, dass f_max bei 3.3V typischerweise mit
>125MHz Clocktakt (?) betrieben werden kann?

Naja, ist halt eine moderne Familie, könnte schon passen.

>Bei 4-5V sogar 170MHz.

>Meine Kiste FPGA (Xilinx Spartan XC3S400-5TQG144C) läuft auf 3.3V
>Ausgangsspannung bei 168MHz.

Spannung mit 168MHz? Eher nicht.

>### Läuft das Shiftregister auch mit dieser Hertz-Zahl und 3.3V korrekt,
>oder muss ich den Takt „zerteilen“ ?

168MHz ist nicht zuverlässig möglich.

>Wie lange braucht ein Byte, um am Register-Ausgang vollständig
>anzuliegen:

Einen Takt an STCP.

>### 168 /(8 + 1) => ca. 18 MHz (Rechnung okay?)

Im Prinzip ja.

MFG
Falk
#2432278
Lesenswert?

@  Karl Heinz Buchegger (kbuchegg) (Moderator)

>> ### Läuft das Shiftregister auch mit dieser Hertz-Zahl und 3.3V korrekt,
>> oder muss ich den Takt „zerteilen“ ?

>Wie schnell deine Kiste läuft interessiert den 595 nicht.

Und ob, denn die Kist macht ja den Takt.

> Der
>interessiert sich nur dafür, wie schnell die Pulse sind, die du ihm an
>den SHCP und STCP Eingängen anbietest.

Ja eben.

> Und ich schätze mal, dass deine
>Kiste es auch nicht schafft innerhalb eines Zykluses ein Datenbit
>anzulegen und danach einen SHCP-Puls von Low auf High und wieder zurück
>zu schalten.

Irrtum, es ist ein FPGA und kein gemütlicher AVR. So ein FPGA kann noch 
viel mehr, wenn man weiß was man tut.

>Du hast ja auch Verwaltungsaufwand (8-er Schleife, Bit extrahieren, Bit
>auf Datenleitung, SHCP Puls nachschieben), oder kann deine Kiste in
>Hardware 8 Bits raustakten?

FPGA! Echte Hardware. SAUSCHNELL!

MFG
Falk
Gast #2432777
Lesenswert?

KräuseLot schrieb:
> Porterweiterung durch flottes Schieberegister.

Hm, also wenn evtl. noch Reserven vorhanden sein sollen, warum nimmst Du 
nicht gleich noch einen FPGA wie z.B. XC3S50AN?
Der ist auf jeden Fall schnell genug und Du kannst selbst bestimmen was 
er darstellen soll.
Oder ist das eine Preisfrage?
Gast #2434634
Lesenswert?

"Moin" Leuts!

Sorry, dass ich mich erst jetzt für Eure flotten Antworten bedanken 
kann, doch ich habe seit meinem ersten Post VHDL getüftelt (6 Stunden 
Schlaf und eine Pizza waren auch noch drin).

Scheinbar habe ich das Datenblatt doch nicht ganz fehlinterpretiert. 
Dennoch werde ich das Shift-Register auf 56MHz betreiben, um den Inhalt 
mit Sicherheit setzen/schalten zu können und keine Zustände zu bekommen 
(ich und das Shift-Register).

Ich benötige insgesamt 256 Pins (reine Ausgänge), was sogar schon beim 
FBGA400-Gehäuse nicht ganz geklappt hätte. Bei 4 FPGAS XC3S50 á ~7€ und 
das ganze x Mal steigen die Kosten doch zu sehr.

Nochmals Danke für Eure Mühen, ich Schlaf jetzt mal weiter über meinem 
ISE :)
Gast #2434919
Lesenswert?

Warum nimmst du nicht einen kleinen XC9536XL/XC9572XL
als Erweiterung. Ist flexible konfigurierbar und
ebenfalls 5V-tolerant.
Falls du DIP-Gehäuse brauchst: Bei Ebay gibts 36er
mit 40erDIP ab 8 Euro inkl. Quarz..
#2434944
Lesenswert?

@  Bert (Gast)

>Warum nimmst du nicht einen kleinen XC9536XL/XC9572XL
>als Erweiterung. Ist flexible konfigurierbar und
>ebenfalls 5V-tolerant.
>Falls du DIP-Gehäuse brauchst: Bei Ebay gibts 36er
>mit 40erDIP ab 8 Euro inkl. Quarz..

Seit wann gibt es CPLDs von Xilinx in DIP? Und mit Quarz?
Kaum.
Gast #2435107
Lesenswert?

Ich schon. Allerdings zZ für 12-13Euro, meine Angabe bezog
sich auf ein abgelaufenes Angebot (Sorry). In den letzten Wochen
waren aber einige für 7-9Euro (Portofrei!) dabei. Davor zogen
die Preise sehr stark an, weil die Dinger glaube ich als
Mods für die XBox360 verwendet wurden.
#2435170
Lesenswert?

Das kommt mir schon recht merkwürdig vor, nen FPGA programmieren, aber 
an nem simplen Schieberegister scheitern.
Sind die Grundlagenkenntnisse heutzutage wirklich fast Null?

Das Datenblatt ist doch vollkommen eindeutig, wie die Abfolge zu sein 
hat, also wo ist das Problem?

Und die Timings stehen auch alle drin, HC schafft typisch 20MHz 
problemlos.
Für mehr muß man nicht nur die Timings einhalten, sondern auch auf das 
Platinenlayout achten, vieleicht sogar Dämpfungs- und 
Abschlußwiderstände vorsehen.


Ich hab noch den ganzen Urschleim gelernt und verstanden. Ich hab 
irgendwo noch ne Zählerkarte rumliegen 1:10 mit nur 8 Transistoren und 
die hat sogar funktioniert (max 1MHz).


Peter
Gast #2435234
Lesenswert?

@Peter

Ja, Du hast recht: Ich bin tatsächlich neu auf diesem Gebiet und besitze 
dennoch die Unverschämtheit, mich nicht dafür zu schämen.

Die Funktionsweise des Schieberegisters war mir schon klar, dennoch war 
ich mir nicht sicher, ob ich nicht etwas vergessen/ übersehen hatte.
Die maximale Frequenz war ja offen gelassen. Vielleicht hätte man diesen 
ja durch einen Trick auch schneller betreiben können.

Ich habe in anderen Datenblättern die Frequenz in Abhängigkeit 
unterschiedlicher Kapazitäten (pF) gesehen. Das bezieht sich sicherlich 
auf die Kapazität der Leitungen vor dem Bauteil,
### richtig?
### Du sprichst von Widerständen bei Frequenzen >20MHz. Da ich genau in 
diesem Bereich arbeiten möchten, worauf sollte ich dabei achten?

@Bert

Wozu immer dieses Brustgetrommel von wegen "Hirn anschalten" etc.? 
Können wir uns nicht darauf einigen, dass wir alle nicht dumm sind?

Grusz, Euer Semi-Anfänger

KräuseLot
#2435258
Lesenswert?

KräuseLot schrieb:
> Ja, Du hast recht: Ich bin tatsächlich neu auf diesem Gebiet

Angefangen hat jeder mal.
Ich hab noch mit TTL gebastelt, 7400, 7474, 74193, das war schon ein 
gewaltiger Fortschritt gegenüber Transistorlogik.
FPGAs waren nicht erfunden, nur von ASICs hatte man was gehört (nicht 
verfügbar für normal Sterbliche).

Man muß natürlich nicht ganz von vorne anfangen.
Aber ich denke, das Verständnis von Logik-ICs könnte schon hilfreich 
sein, beim Arbeiten mit FPGAs.
Genauso, wie Assembler-Kenntnis hilfreich ist bei der (effizienten) 
C-Programmierung.

An die Grenzen würde ich nicht gleich gehen, d.h. den HC595 erstmal mit 
max 10MHz ansteuern.


Peter
Gast #2435403
Lesenswert?

@ Peter
Aha ... verstehe ... Aber was genau meinst Du mit Verständnis von 
Logik-ICs? Was habe ich denn noch nicht verstanden?

Wo finde ich in Deiner Ausführung die Antworten auf meine Fragen? Wie 
hilft das mir und den Mitlesern dieses Beitrags?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren