Datenspeicherung mit Schieberegister/Fifo ???

Hallo,

Bevor ich vor lauter Datenblatt lesen völlig den Verstand verliere, hoffe ich mal hier auf nen Weg aus dem Dschungel.

Ich will eine kleine Platine zur Datenspeicherung bauen. Ich habe also eine Daten- und eine dazugehörige Taktleitung. Die Daten kommen nicht allzu schnell, so in etwa 1 Mhz. Die Stromversorgung habe ich auf stabilen 5 V. Signalpegel ist der TTL-Normalbereich.

Mein erster Gedanke war natürlich ein Schieberegister und ich kurve nun schon seit Tagen im Netz. Alles was ich gefunden habe ist der C-Mos IC 4557(64bit) und der 4562(128bit). Jedoch sind die alle zu klein, ich bräuchte mindestens 1Kbit, besser mehr, Platz.

Danach kam ich auf die Idee eines FIFO´s. Allerdings hat da mein Schulwissen den Geist aufgegeben und die Datenblätter in Englisch mir den Rest gegeben. Ich blick gar nix mehr.... Dort bin ich dann beim CY7c4291 von Cypress gelandet. Der klingt zwar toll, aber jetzt steh ich vor dem Problem wie krieg ich 1 Bit Density auf 9 ( geschweige denn, das ich überhaupt weiß wovon ich da rede).

Meine Frage, bzw. Hilfeschrei, ist daher:

  1. Kann ich Schieberegister hintereinanderschalten ??? Ich denke ja, aber wieviele ? Sicherlich nicht beliebig, und wie sieht das dann mit der Störanfälligkeit aus ? Die muß nahe, bzw. bei, null liegen.

  1. Gibt es größere Schieberegister und wenn ja wo finde ich die...???

  2. Wie funktioniert das mit dem Fifo? Hat das überhaupt nen Sinn ??? Wie krieg ich das mit der Density geregelt, bzw. was wollen die mir überhaupt damit sagen ????

  1. Wo krieg ich den ganzen Kram dann her ? Cypress o.ä. wird sich totlachen, wenn ich da anrufe und 1,2 Dingerchen bestelle.... Gibt´s da nen guten Versand, bzw. wo kauft ihr den Euren Kram? Von Conrad, Reichelt und ELV bin ich da nicht sehr angetan was die Auswahl anbetrifft.

  2. Welcher Idiot kam auf die Idee Datenblätter in Englisch zu verfassen? ;) Deutsch war für Blitzbirnen wie mich doch viel angenehmer.

Ich hoffe, irgendjemand versteht was ich da schreibe.

Viel Grüße Peter

PS: Ach ja..., auslesen und übertragen an meinen PC wollte ich das dann mit meiner C-Control II von Conrad. Allerdings hab ich mich da auch noch nicht besonders eingearbeitet.

Reply to
Peter Paul
Loading thread data ...

Für z.B. Video-Anwendungen gibt es Fifos, die mehr als 1 Bit speichern können - z.B. der OKI514221B - der ist dual-ported und hat - uhm - ich glaube 1MBit Speicher und eine Datenbreite von 4 Bit. Für 8 Bit brauchst du dann natürlich 2 davon ... aber Vorsicht - der OKI514221B ist abgekündigt! Du kannst dich aber danach orientieren und ähnliche Teile suchen, die vermutlich noch mehr Speicher und/oder mehr Bits haben und die es vor allem noch gibt.

--
Thomas Pototschnig
www.oxed.de
Reply to
Thomas Pototschnig

Bisher hast Du nir eine Datensenke. Was passiert am Ende mit den Daten? Werden sie einfach am Ende der Schieberegisterkette wieder ausgegeben? Soll das also eine Verzoergerung sein?

Mit der unterschiedlichen Laenge gibt es also unterschiedliche Verzoegerung

Cypress ist bei Kleinmengen wirklich eine Qual...

Klar, solange die Lasten an den Steuerungsausgaengen innerhalb der Spezifikationen bleiben.

Eine FIFO ist ein Scheiberegister wie Du es oben in Deiner Aufgabenstellung beschreibst. Damit kannst Du Signale verzoegern. Verwendet wird es hauptsaechlich zum Synchronisieren von Datenstroemen mit unterschiedlichen Taktquellen

Eine seriell-nach-parallel Wandler macht Dir aus dem 1-Bit Strom einen 1-Byte Strom mit einem Achtel der Datenrate.

Entweder Du versuchst Die Beschaffung, oder Du schaust Dich weiter um Ich haette mehrere Loesungsvorschlaege:

- Ich wuerde die Aufgabe mit einem FPGA angehen. Z.B. hat der kleinste Spartan 3 schon 72kBit Block Ram. Aber dann hast Du genauso Probleme mit der Beschaffung, musst Dich mit HDL und der Bauteilprogrammierung rumschlagen und hast auch noch mit niedrigen Logikpegel zu kaempfen. Aber wenn Du schon mal mit den Bausteinen gearbeitet hast, geht Dir das leichter von der Hand

- Mit einen CPLD und externen RAM kannst Du natuerlich auch ein FIFO bauen

- Oder zu schliesst einen seriell-nach-parallel und einen parallel-nach-seriell Wandler aud der 74'er Serie an einen Mikroprozessor an. Damit wandelst zuerst Du den bitseriellen Strom in einen Byteserielle. Den Bytestrom speicherst Du im Mikrocontroller zwischen und gibst ihn dann verzoegert aus und machst wieder einen bitseriellen Strom daraus. Das sind alles Sachen, die Du bei Reichelt beschaffen kannst. Und mit Mikrocontroller arbeiten auch einige Bastler.

Aber man kann dass auch noch auf vielen anderen Wegen loesen

Ein grund mehr, englisch zu lernen.

Nicht ganz... Ist die Verzoegerung der Zweck deiner Schaltung, oder die Uebertragung in den PC?

Was Du mit den Daten dann machst, solltest Du Dir fast zuerst ueberlegen. Wie willst Du 125 kiByte/s mit dem C-Control in den Rechner bringen.

Vielleicht hift Dir ja ein Mikrocontroller mit USB (Cyptess CY7C68013) weiter, oder der MPSSE Modus des FT2232.

Bye

--
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Reply to
Uwe Bonnes

Nicht wirklich. Bei einem Schieberegister kommt nach x Takten (x=Speichertiefe) raus was vorne reingeschoben wurde, es verzoegert also x Takte. Bei den gaengigen FIFO Puffern fallen die Daten aber durch und liegen sofort am Ausgang. Die Verzoegerung soll idealerweise Null sein. In der Realitaet ist natuerlich eine vorhanden, aber so ein Bauteil genau wegen dieser Verzoegerung einzusetzten geht wohl am Sinn des Erfinders vorbei ...

Ich bin aber nicht sicher ob der OP wirklich verzoegern will. Wenn es nur um das Speichern geht ist das FIFO genau richtig. Ob das FIFO jetzt

1, 4 oder 9 Bit breit ist spielt ja keine Rolle, man kann ja einfach nur ein 1Bit benutzen.

Micha

--
Mails containing HTML or binary windows code are rejected.
Reply to
Michael Baeuerle

"Peter Paul" schrieb im Newsbeitrag news: snipped-for-privacy@posting.google.com...

Da bist du sicher ncht der erste. Nennt sich Transientenrecoder oder Logicanalyzer.

Aber wenn Bausteine wie FISO oder Schieberegister schon kaum in passender Form verfuegbar sind, koennte man von selbst daruf kommen, das Andere Leute wohl diese Bauteile nicht so brauchen und es anders loesen.

formatting link
ist 100 mal schnell als du sein willst. Es geht also einfacher, mit einem simplen Speicher, von zumindest 8192 bit in den 1000000 mal pro Sekunde reingeschreiben wird, und aus dem auf Wunsch wieder ausgelesen wird. Dan kann ein kleiner Microcontroller tun, wenn er schnell genug ist, und moderne Typen sind schnell genug. Man waehlt den Microcontroller also nach dem Interface, was man verwenden will, z.B. USB oder seriell oder parallel.

Ein Atmega163 von Atmel.com z.B. hat genug internen Speicher, so das er DAS EINZIGE Bauteil sein wird, was du brauchst. Man muss ihn nur vorher passend programmieren, wie alle universellen Bausteine.

--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff/
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Read 'Art of Electronics' Horowitz/Hill before you ask.
Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.
Reply to
MaWin

Hallo,

erstmal vielen Dank. Ansatzweise hast Du mir etwas geholfen, aber im Endeffekt hänge ich immer noch ein bißchen. Mein Hauptproblem ist denke ich, daß ich keine Zeit haben werde mich rechzeitig in Materien wie Mikrocontrollerprogrammierung, FPGA´s etc. reinarbeiten zu können. Werde mich aber bei etwas Leerlauf mit diesen Themen beschäfftigen. Danke. Im übrigen habe ich kein Hochschulstudium und nur ne schlechte Bücherei zur Verfügung, sehe mir meine vielleicht etwas dümmlich anmutenden Fragen nicht nach.

Viele Grüße

Peter Paul

- Die Daten sollen gespeichert bleiben bis ich sie auslesen kann. Das wollte ich bitweise mit meiner c-control und dann per serieller Schnittstelle an ein Terminalprogramm am PC. Allerdings ist die Idee noch nicht ausgereift, da ich erstmal sondieren wollte, ob mein Problem mit Schieberegistern o.ä. überhaupt machbar ist, und dann an die Umsetzung gehen. Außerdem bin ich auch da noch sehr laienhaft. Im Endeffekt kommt etwa alle 20 Minuten ein Datenstrom und es sollten mindestens 10 Datenpakete, je ca. 270 Bit, gespeichert werden, bevor ich den Apparillo zum Auslesen vom Dach holen muß. Außerdem müssen die Daten auf der negativen ( abfallenden) Taktflanke übernommen werden. Da dachte ich mir, daß ich den Takt einfach invertiere und hoffe, daß die Verzögerung dadurch mich nicht sabotiert.

- inwieweit ???

- Beliebig viele ? Irgendwann muß doch ein Maximum erreicht sein. Bezüglich der Last denke ich doch, daß jedes IC ne eigene Stromversorgung hat und die somit kein Problem bedeuten dürfte ?.?

- Wenn ich den nächsten Kommentator richtig verstehe, dann kann ich nen zweiten Speicherintervall wohl vergessen. ?

- Habe ich glaube ich verstanden. Den "klatsche" ich einfach zwischen seriellen Datenstrom und parallelem "Speicher"-IC ? Muß mich damit jedoch noch genauer vertraut machen. Mein Problem ist, daß mir die Gelegenheit und Werkzeuge(Oszilloskop etc.) zum Ausprobieren fehlen, so daß ich mir ein Bild vom Prozeß machen kann.

- s.o.

- Ich denke, mein Englisch-Abi war ganz gut. Aber bis ich die Datenblätter ganz verstehe und vorallem flüßig, muß ich wohl noch

20674 davon lesen.

- Zweck ist die Speicherung von ankommenden Daten, da ich wegen einem Umbau meine Kabel zum Rechner kappen muß.

- Welche 126 kByte/s ???

- Viele Grüße und nochmals danke.

Peter Paul

Reply to
Peter Paul

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.