Forum: Mikrocontroller und Digitale Elektronik FPGA-Porterweiterung durch 74HC595


von KräuseLot (Gast)


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.

von Karl H. (kbuchegg)


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?

von Falk B. (falk)


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

von Falk B. (falk)


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

von hp-freund (Gast)


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?

von KräuseLot (Gast)


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

von Falk B. (falk)


Lesenswert?

Wenn viele und SCHNELLE Ausgänge braucht nimmt man eher Latches ala 
74xx373, angesteuert mit 8/16/32 Bit Bus.

MFG
Falk

von Logibaer (Gast)


Lesenswert?

Das ist mir auch noch nicht untergekommen, dass FPGA-Gehäuse gekürzt 
werden. Normalerweilse wird doch Logik eher absorbiert, z.B. S3A50 oder 
ähnliche Billigviecher.

von Bert (Gast)


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

von Falk B. (falk)


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.

von Bert (Gast)


Lesenswert?

@Falk Brunner

bissl Hirn anschalten und mal nachschauen. Dann
findest du den Chip sitzend auf einer Adapterkarte.

von Logibaer (Gast)


Lesenswert?

ich finde bei ebay keine solchen 40er DIP

von Bert (Gast)


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.

von Peter D. (peda)


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

von KräuseLot (Gast)


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

von Peter D. (peda)


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

von KräuseLot (Gast)


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?

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.