Forum: Mikrocontroller und Digitale Elektronik SRAMs gesucht


von Stefan Helmert (Gast)


Lesenswert?

Hallo,

ich bin wieder einmal auf der Suche nach Bauteilen. Und zwar such ich
einen SRAM der so ähnlich angesteuert wird wie ein DRAM es soll aber
ein SRAM sein, weil ich mich nicht um Refresh kümmern möchte. Das soll
also so aussehen:
- 8 Datenleitungen
- 2 Latchselectleitungen
- WR,RD,CS oder R/W (egal wie genau)
Mit den Latchselectleitungen soll man auswählen können ob man über die
8 Datenleitungen das obere, mittlere, untere Adressbyte setzen will
oder Daten aus der Speicherzelle lesen bzw hineinschreiben will. Die
Adresse soll außerdem noch Autoincrement besitzen. D.h., dass nach
jedem Lese- bzw. Schreibzugriff der Adresszeiger automatisch um eins
erhöht wird.

Als zweites suche ich noch einen DualRAM. D.h., ein RAM bei dem
Adress-, Daten- und Steuer-Leitungen doppelt vorhanden sind, aber auf
die gleiche Speichermatrix zugreifen.

Kennt ihr solche RAMs?
Wo kann man die kaufen?
Welche Bezeichnung?
Datenblatt?

von Benedikt (Gast)


Lesenswert?

Wie wäre es mit einem CPLD ?
Der macht sowas, wenn du das alles programmiert.
Auf einer Seite die 8 Bit Daten und die Steuersignale rein, auf der
anderen Seite hängt ein SRAM oder DRAM dran. Den Rest erledigt der
CPLD...

von Stefan Helmert (Gast)


Lesenswert?

Ja das würde ich ja gerne, aber ich habe noch nicht mit
CPLD-Programmierung angefangen. Es hat aber noch einen anderen Grund,
warum ich das nicht so machen will wie du das beschreibst. Und zwar
würde man da 2 Bauteile mit vielen Anschlüssen nehmen (ziemlich
sperrig). Mir geht es darum, das alles kompakt und ohne viele
Leiterbahnen hin zu bekommen.

von Andreas Auer (Gast)


Lesenswert?

Hi.

Interessante Sache, was du da suchst. Falls es solche SRAM's wirklich
geben sollte (hab von sowas noch nie gehört), wäre ich natürlich auch
interessiert.

Da aber bei SRAMs die inneren Struktur wesentlich mehr Platz brauchen
als DRAMs, bezweifle dass es entsprechende SRAMs mit deinen
Anforderungen gibt. Anscheinend suchst du ja Speicher in der Größe von
16MB (24 bit Adressen).
Als Alternative würde ich mich entweder um ein Flash-ROM (wenn nicht
ständig geschrieben werden soll) umsehen, oder du machst dir mit nem
FPGA einen kleinen Controller, der bei nem DRAM den Refresh macht und
nach außen hin dein gewünschtes Interface zur Verfügung stellt (wäre
meine bevorzugte Lösung).

mfg
Andreas


--

Andreas Auer                     aauer1 (at) sbox.tugraz.at
Student of Telematics            http://home.pages.at/aauer1
Graz University of Technology

von Rahul (Gast)


Lesenswert?

SRAM als eierlegende Wollmilchsau...
Hast Du schon mal bei (RAM-)Chip-Herstellern (z.B. Cypress, Infineon)
geguckt?

So einen Baustein finde ich auch interessant, nur woher nehmen. Mir
fällt auch irgendwie keine Anwendung ein, wo man sowas schon benutzt.
Entweder hat man eine Logik vor Standard-RAM-Bausteinen (CPLD, FPGA)
oder man braucht diese Funktionalität nicht.

Die anderen RAM-Bausteine, die du suchst nennen sich DUAL-PORT-RAM.
Cypress hat da einen 9Mbit-Chip (CY7C0853V [256K x 36Bit])
herausgebracht. Kostenpunkt $98 pro 10.000 Stk (Stand: Juni 2004)...

Chip-Hersteller können dir bestimmt auch Bezugsquellen verraten...
Gruß Rahul

von Stefan Helmert (Gast)


Lesenswert?

Da kostet ein Stück doch nicht mal ein Cent.

von Peter D. (peda)


Lesenswert?

Ich glaube nicht, daß es sowas exotisches gibt.

SRAMs sollen doch schnell sein und das würde man mit umständlichen
Multiplexen ja zunichte machen.

Wenns Dir aber nur aufs Pin sparen ankommt, vielleicht ist mein 2-Draht
SRAM ja die Lösung:

http://www.specs.de/users/danni/appl/hard/sram/sram.htm


Peter

von Stefan Helmert (Gast)


Lesenswert?

Gerade durch das Autoincrement wäre der doch wieder schnell, aber nur
wenn man hintereinander stehende Daten lesen/schreiben will (externer
Programmspeicher für µC). 2-Draht will ich nicht nehmen. (zu langsam)

von Rahul (Gast)


Lesenswert?

Es war $98 pro Stück bei einer Abnahmemenge von 10.000 gemeint...

von Stefan Helmert (Gast)


Lesenswert?

Warum so teuer?

von Peter D. (peda)


Lesenswert?

"2-Draht will ich nicht nehmen. (zu langsam)"


Ja dann komm doch endlich mal ausm Knick mit konkreten Zahlen (wieviel
MB, wieviel ns) !!!

Muß man Dir denn alles erst aus der Nase ziehen ?

Ich habe den Eindruck, Du fragst einfach mal nur so ins Blaue hinein,
ohne Dir erstmal die geringsten Gedanken über Dein Projekt gemacht zu
haben.

Wie soll denn Dir einer raten ohne die allergeringsten Angaben ?


In jedem Fall wirst Du Dir für sowas extrem Exotisches ein eigenes
Interface basteln müssen (µC, CPLD, FPGA).
Bedenke, die SRAMs sind "Abfall" der Computerindustrie. Was da nicht
gebraucht wird, wird auch nicht hergestellt oder ist exorbitant teuer.


Peter

P.S.:
Langsam hat doch überhaupt nichts mit 2-Draht zu tun, z.B.
USB: 480Mbits/s

von thkais (Gast)


Lesenswert?

S-RAM mit Latch gabs mal, speziell für die MCS-51 Controller, so konnte
man sich den 74373 sparen. Ist aber IMHO schon lange, lange
abgekündigt.
Ich sehe leider schwarz für Dich - Deine Anforderungen sind doch etwas
sehr speziell.

von Stefan Helmert (Gast)


Lesenswert?

Mit 2-Draht zu langsam meine ich zu langsam über µC ansteuerbar. Ich
wollte so etwas an einem µC als externen Programmspeicher anschließen
und auf dem µC läuft ein Befehlsinterpret. Und dann noch eine
Soundkarte bauen mit µC und Datenbus, an dem µC, DAC, dieser Speicher
dran hängen. Da lohnt sich auch das Autoincrement um nicht immer die
Adresse neu setzen zu müssen.
Der DualportRAM soll für einen Grafikkarte genutzt werden:
PORT1 -> Monitor
PORT2 -> µC

von Stefan Helmert (Gast)


Lesenswert?

@peter dannegger:
Es ist doch quatsch hier ganz genaue Zahlen (MB, ns) zu nennen, wenn es
so wenige Typen davon gibt, dass es schwierig ist überhaupt so etwas zu
bekommen. Ich würde mich für alle Typen mit diesen Eigenschaften
interessieren.

von Heinz (Gast)


Lesenswert?

Ein MC wird kein PC....

von Peter D. (peda)


Lesenswert?

"Es ist doch quatsch hier ganz genaue Zahlen (MB, ns) zu nennen"

Es ist jedenfalls größerer Quatsch, immer erst hinterher den
Ratgebenden zu sagen, warum das nicht geht.
Die haben nämlich dann kein Lust mehr, den Quatsch weiter mitzumachen.

Von ganz genau war auch nie die Rede, aber man muß schon die minimalen
Anforderungen wissen.


Peter

von Stefan Helmert (Gast)


Lesenswert?

Ich wollte nur wissen ob es so etwas gibt, da ich das noch nie gefunden
hatte.

von Benedikt (Gast)


Lesenswert?

Von Dallas gabs mal (oder gibts immer noch ?) einen Dual Port SRAM mit
gemultiplextem Adress/Datenbus. Leider nur 256Bytes...

Gibts hier keinen, der auf nem CPLD, FPGA usw. sowas programmieren
könnte ?

von Christof Krüger (Gast)


Lesenswert?

Also das wäre mit einem CPLD nun wirklich das kleinste Problem. Brauchst
ja nur einen Multiplexer. Dabei muss das Timing aber gut abgestimmt
werden, da der CPLD ja selbst nur einen der beiden Ports gleichzeitig
bedienen kann.

von Andreas Auer (Gast)


Lesenswert?

Stimmt... die Programmierung deiner Anforderung ist für einen CPLD echt
das geringst. Und wenn du schon dabei bist einen kleinen "Computer"
zu bauen, würd ich auch gleich mal die Prozessorarchitektur dazu auf
einen FPGA mitentwwickeln. Dadurch kannst wesentlich mehr an
Performance rausholen (vorausgesetzt der Prozessor ist richtig
designed). Da kannst da so nette Sachen wie Cache Memory und Pipelining
einbauen (kleine Infos am Rande)!

Ich denke ja mal, du machst das ganze nicht auf Grund eines
"Auftrags", sondern aus eigenem Interesse (Lerneffekt). Und wenn du
schon verstehen willst, wie ein Computer aufgebaut ist, dann könntest
ja ganz unten anfangen!

mfg
Andreas

--
Andreas Auer                     aauer1 (at) sbox.tugraz.at
Student of Telematics            http://home.pages.at/aauer1
Graz University of Technology

von Markus (Gast)


Lesenswert?

@Stefan:
Die Geschwindigkeit macht schon einen großen Unterschied. Die Frage ist
hier nämlich, ob Deine Anforderungen wirklich Sinn machen. So braucht
man z.B. für eine Grafikkarte kein Dualport-RAM, wenn man die
Schreibzugriffe im unsichtbaren Teil des Bildes macht. Ob das geht
hängt aber von den Anforderungen ab.

Einen externen Programmspeicher kann man z.B. durch ein serielles Flash
realisieren. Die Befehlsinterpretation ist auch nicht übermäßig schnell,
da sollte man auch ganz normale Latches an ein normales SRAM anschließen
können.

Markus

von thkais (Gast)


Lesenswert?

Mal ein Beispiel zu Grafik ohne Dual-Port-Ram: Beim C-64 wurde das
genauso gemacht, wie Markus vorschlägt. Der 6510-Prozessor hatte pro
Takt eine Pause von einem halben Takt, in der er nicht auf den Bus
zugriff (hatte mit sich selbst genug zu tun g). Während dieser
Taktpause griff der Video-Chip auf den RAM zu. Dies war auch der Grund,
weshalb der NTSC-C64 schneller war, als der PAL-C64...

von Stefan Helmert (Gast)


Lesenswert?

@Markus:
Das mit den Latches ist zwar schön und gut, aber ich will ja
Autoincrement, also müsste ich counter mit load-Funktion nehmen. Die
haben aber immer nur 4 Bit. Bei einem RAM mit 16 Adressbits währen das
dann 4 Stück (mit je 14(?) Pins) + RAM mit nochmal 32 Beinchen. Das
sind dann 88 Pins und Eine große Platine. (sieht sehr nach
retro-Computing aus ;)

von Christof Krüger (Gast)


Lesenswert?

oder eben ein CPLD ;)

von Stefan Helmert (Gast)


Lesenswert?

oder noch besser: gleich so ein RAM - Da ist es nur ein Chip.

von Christof Krüger (Gast)


Lesenswert?

Naja, sieht halt momentan nicht danach aus, als könnte man das zu
vernünftigen Preisen, wenn überhaupt, kriegen.

von Stefan Helmert (Gast)


Lesenswert?

Aber warum nicht? (fast) Alle DRAMs werden ja so angesteuert. Warum dann
nicht auch SRAM?

von wursthannes (Gast)


Lesenswert?

[ ..... ]

> Der DualportRAM soll für einen Grafikkarte genutzt werden:
> PORT1 -> Monitor
> PORT2 -> µC

Such mal nach Vram, da wird immer eine komplette dram zeile/spalte
paralell in ein Schieberegister geschrieben, das Schieberegister wird
mit dem Videotakt seriell rausgeschrieben. Refresh hast du
automatisch durch das Erzeugen des Videosignals.

von Benedikt (Gast)


Lesenswert?

VRAMs sind wiklich tolle Dinger, aber die werden nichtmehr produziert,
seit es SDRAM gibt...
Immerhin 30-80B/s waren mit den VRAMs möglich.

von Peter D. (peda)


Lesenswert?

"Aber warum nicht?"

Wird ja langweilig, wie er überhaupt nicht kapieren will, daß bisher
alle sagen, sowas exotisches gibt es nicht.


"Alle DRAMs werden ja so angesteuert"

Und immer diese Rumreiterei auf den armen DRAMs, die werden doch völlig
anders angesteuert.
Byteweises Daten-,Adreßmultiplex mit Autoincrement hat kein DRAM.


Peter

von Joern Gerhard (Gast)


Lesenswert?

FPGA hätte den Vorteil, dass der Dualram schon on-board ist, zumindest
bei den Xilinx Spartan-II und Nachfolger, sowie Virtex ist das so.

cu joern

von Andreas Auer (Gast)


Lesenswert?

"Alle DRAMs werden ja so angesteuert"

Wenn du dir die innere Architektur eines DRAMs ansiehst, dann wirst du
merken, dass es absolut anders aussieht. Deshalb sind DRAMs
1. wesentlich billiger als SRAMs (vom Speicherplatz her gesehen)
2. können sie größere Mengen an Daten aufnehmen, da nur ein Transistor
pro Bit benötigt wird, wohingegen du mindestens 2 bei SRAMs brauchst.

Ich steh noch immer auf den Standpunkt, dass du dir schnell mal nen
FPGA ansehen sollst. So ein Ding ist die eierlegende Wollmilchsau!

mfg
Andreas

--
Andreas Auer                     aauer1 (at) sbox.tugraz.at
Student of Telematics            http://home.pages.at/aauer1
Graz University of Technology

von Benedikt (Gast)


Lesenswert?

Es geht noch einfacher:
Wie wäre es mit einem LCD Controller ?!?
Da braucht man nur 8 Daten, 1 Adress und 2-3 Steuerleitungen um 64kByte
zu adressieren. Autoincrement ist auch schon eingebaut. z.B. ein SED1330
ist schnell genug für einen AVR. Am ISA Bus lief das Ding zumindest
problemlos...

Und ganz nebenbei kann man sich die Daten auch noch grafisch darstellen
lassen...

von Uwe (Gast)


Lesenswert?

Hallo Stefan!

1.
> Mit den Latchselectleitungen soll man auswählen können ob man über
die
> 8 Datenleitungen das obere, mittlere, untere Adressbyte setzen will
> oder Daten aus der Speicherzelle lesen bzw hineinschreiben will.

und

> Ich wollte so etwas an einem µC als externen Programmspeicher
anschließen
> und auf dem µC läuft ein Befehlsinterpret. Und dann noch eine
> Soundkarte bauen mit µC und Datenbus, an dem µC, DAC, dieser
Speicher
> dran hängen. Da lohnt sich auch das Autoincrement um nicht immer die
Adresse neu setzen zu müssen.

Mir erschließt sich der Sinn der Sache nicht. Du setzt das
high-Adressbyte, im nächsten Prozessorbefehl(szyklus) dann das middle-,
im dritten das low-Adressbyte und im vierten liest Du Dein erstes
Datenbyte. Gut, die nächsten 255 Byte kommen bei Deinem Speicher dann
schnell. Das braucht im ungünstigen Fall vier
Prozessorbefehl/e(-szyklen) (z.B. Peripherie-Operationen), um ein
Byte zu holen.

Wenn ein µC (der in der Lage ist, externen Speicher zu adressieren) auf
externen Speicher zugreift, setzt er von sich aus immer eine (meist 16
bit-) Adresse. Das geht auch sehr schnell, nämlich mit einem
Prozessorbefehl(szyklus). Die meisten µCs besitzen zudem Schleifen-
bzw. vergleichbare Befehle, um mehr als ein Byte zu bewegen. Das
entspricht Deinem gewünschten Auto-Inkrement. Auch größere
Speicherbereiche (mehr als der Prozessor selbst adressieren kann)
lassen sich über Speicherbanking ansprechen.

Welcher µC soll es denn überhaupt werden?

2. Statt der gesuchten Dual-port-Rams könnte man auch Fifos nehmen,
z.B. die von IDT 7206 oder CY7C425.

Allerdings bezweifle ich auch hier, daß das geplante Projekt sinnvoll
ist. Hier ist entweder ganz klassisch eine gesteuerte Zählerschaltung
nutzbar, die den Speicher im gewünschten Bildschirm-timing durchtaktet
und das jeweils geholte Byte dann seriell auf den Monitor ausschiebt -
in der Zwischenzeit kann der µC den Speicher schreiben - oder es ist
ein spezieller Grafikcontroller mit Standard-RAM viel sinnvoller als
ein Dualport-RAM.

Wenn bei der Zählervariante der µC zu langsam ist beim Schreiben,
(Störungen bei der Anzeige, Bildaufbau ist zu sehen) nimmt man etwas
größeren Speicher und schaltet diesen seitenweise um. (paging - mehrere
Seiten, die man wechselweise auf den Monitorausgang schalten kann) Dann
wird auf die nicht angezeigte Seite das Bild fertig beschrieben,
anschließend umgeschaltet.

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.