Kompatibilität von SRAMs

Gast #511419
Lesenswert?

Hallo,

was ist "typisch"?

Bei den CMOS-Rams 2kx8 (6216), 8kx8 (6264), 32kx8 (62256) und deren 
Abkömmlingen kann man sagen ja.
Bei den Cache-Rams soweit auch, auch kompatibel zu den CMOS-Rams, wenn 
man sie z.B. an einen AVR hängt.
Die Cache-Rams haben meist noch spezielle Ansteuerzyklen, um schneller 
zugreifen zu können, die variieren von Hersteller zu Hersteller 
durchaus.

Im Zweifelsfalle also der Blick ins Datenblett.

Am Memory-Interface von 8515, Mega8515 und Mega162 liefen bei mir mir 
bisher eigentlich allem die ich gerade in einer Kiste fand.

Gruß aus Berlin
Michael
Gast #511478
Lesenswert?

> ich glaube so eine nettes und vor allem einfaches und überschaubares
> tutorial wäre echt toll, ich weiß aber nicht ob ich das zustande
> bekommen würde.

Einen Leser hättest du auf jeden Fall :-) (Wobei das ansteuern von 
diesen Standard-SRAMs eigentlich wirklich nicht schwer, und die 
Datenblätter meist ausführlich sind.)
Gast #511513
Lesenswert?

Daumenregel: SRAMs die man irgendwo rausgezogen hat oder reinstecken 
kann (d.h. DIP-Gehäuse verfügbar) sind einfach gestrickt und bis auf 
3,3V/5V-Versorgung ziemlich identisch anzusteuern. Muss man sie 
aus/einlöten (also nicht in DIP-Gehäuse erhältlich), dann wird die Chose 
komplizierter.
Gast #511730
Lesenswert?

> was hat denn nun die gehäuse form mit zugriffszyklen zu tun ? ;)

Daumenregel :-)


Noch ne Frage zu den 8515ern - wie schnell bzw. langsam wollen die ein 
SRAM? Ich vermute mal, die Geschwindigkeit, die man bieten muss, hängt 
von der Taktfrequenz ab?
Gast #511731
Lesenswert?

Hallo,

@Jaipur Boucheron: naja, das ist doch aber logisch...

Teste, wie oft in der Sekunde Du einen SRAM im DIL-Gehäuse mit 2 Fingern 
von der Tischplatte aufnehmen und wieder ablegen kannst.
Nun cersuche das mit einem SMD-Typ.

Gibt es Einfluß auf die Zugriffszyklen oder nicht? ;-)

Gruß aus Berlin
Michael
Gast #511734
Lesenswert?

Hallo,

bei den alten CMOS-Rams dürfte das langsamst, was Du findest -15 sein, 
das sind da 150ns, da sind da sind dann eben Waits ab ca. 8MHz fällig.
-12 und -10 dürften höchstens bei 16MHz an die Grenze kommen.
Die Cache-Rams fangen wohl so bei -25 an, da das sind aber 25ns... :)

Gruß aus Berlin
Michael
Gast #511786
Lesenswert?

Hallo,

das XMEM-Interface benötigt 4 Takte, es läuft asyncron...

Interessant finde ich in dem Zusammenhang, daß in der 
Befehlsbeschreibung für lds und sts jeweils 2 Takte angegeben sind.
Wieviele Takte braucht ein AVR bei

lds  r0,0x0060
lds  r1,0x0061
lds  r2,0x0062

???

Gruß aus Berlin
Michael

#511812
Lesenswert?

also ich würde mich schon darüber freuen wenn mich jetzt mal jemand 
wenigstens ein bisschen über die timings aufklären könnte. ich bin mir 
hier leider immer noch nicht im klaren welche werte ich einhalten muss. 
mir gelingt es leider nur sehr schwer diese diagramme zu lesen, danke!
#511817
Lesenswert?

Es ist etwas schwer zu sagen, da eine Menge Timingparameter stimmen 
müssen.
Mal einige aus dem Datenblatt zusammengefasst:
2/Fclk - 20ns muss größer sein als die Zugriffszeit vom SRAM.
Hier sind 100ns ist die Grenze.

Weiterhin muss gelten:
1/Flck - 50ns muss größer sein, also das SRAM braucht um die Daten 
anzulegen wenn man OE\ aktiviert (meist als TdOE bezeichnet).
Damit dieser Wert bei 16MHz ohne Waitstate eingehalten wird, braucht man 
schon einen RAM mit <35ns.
Ich hatte aber auch mit 55ns RAMs keine Probleme. Allerdings darf der 
Bus dann nicht belastet sein, also keine weiteren Sachen wie lange 
Leitungen, LCDs o.a. am Bus hängen !

Die Werte habe ich versucht aus dem Datenblatt zu interpretieren, also 
keine Garantie dass diese Aussagen stimmen !
Gast #511842
Lesenswert?

Hallo,
@Benedikt K.:
doch habe ich, siehe oben:

"das XMEM-Interface benötigt 4 Takte, es läuft asyncron..."

Damit ist die Zykluszeit bei 16MHz ohne Wait 250ns.

Kritisch ist offenbar die Datenvorhaltezeit, der Übergang Adresse Low -> 
Daten im Takt 2 ist nicht sicher definiert.

Diagramme Datenblatt Mega8515 ab Seite 26.

Deshalb ja auch meine Frage oben:

lds  r0,0x1060 braucht 2 Zyklen
Das XMEM-Interface braucht aber 4 Zyklen.

Was macht der AVR, wenn direkt ein zweiter lds folgt bis XMEM fertig 
ist?
Dauert dieser lds (und folgende) dann 4 Zyklen oder gar 7 mit gesetzen 
Wait-Zyklen?

Gruß aus Berlin
Michael
Gast #511853
Lesenswert?

Hallo,

ich habe nur ein Datenblatt von HM62256 zur Hand, beim langsamsten 
angegeben mit -8 ist die Write cycle time 85ns, die Write pulse width 
55ns, das würde also noch in die 62,5ns bei 16MHz reinpassen.
Da /WR als leztes aktiv wird, startet es den Schreibvorgang.
Die Daten müssen erst 35ns vor dem Ende von /WR gültig sein, die liegen 
aber schon bei der fallenden Flanke von /WR, also 62,6ns vorhher an, das 
passt auch.

Gut, bei 120ns ist es zu knapp, da dürfte Write pulse width bei 90ns.
Bei 1 Wait (/WR ist dann 125ns aktiv) müßte auch das schon gehen).

Gruß aus Berlin
Michael
#511863
Lesenswert?

zurück zu den speicherzugriffsverfahren: synchron - lesen / schreiben

allgemein gilt: gültigkeit der adresse, gültigkeit des datums, übernahme 
des datums - der master legt die adresse für eine ganz bestimmte zeit 
auf den bus, innerhalb dieser zeit muss der slave reagieren können.

bei einem 8051 liegt diese zeit bei einer freuqnz von 12MHz zwischen 
300ns bis 500ns. in dieser zeit muss die zeit von dem speicher liegen. 
diese liegen um die 70ns. das ganze pasiert nach dem anlegen von dem /RD 
bzw /WR signal, das ist so zusagen der startschuss. der 8051 hält also 
seine daten viel länger als notwendig "offen"

falls ich falsch liegen sollte, würde ich mich natürlich über jede 
berichtigung freuen :)
Gast #511869
Lesenswert?

> was hat denn nun die gehäuse form mit zugriffszyklen zu tun ? ;)

Ähnlich viel, wie die sinkende menschliche Geburtenrate mit dem Rückgang 
der Storchenpopulation. Ursächlich garnichts.

Es ist nur so, dass die einfach gebauten asynchronen SRAMs technisch 
überwiegend aus Zeiten stammen, in denen man noch oft mit DIL Gehäuse 
arbeitete. Komplexere SRAM Ansteuerungen, wie beispielsweise 
burst-SRAMs, sind dann nur noch in SMD-Gehäuse auf dem Markt gekommen.

#511872
Lesenswert?

Ich habe leider keine Infos zu der Zeit für ld auf externen Speicher 
gefunden, ich gehe aber von 3 Takten aus. Schaut man sich den internen 
Zugriff an (der 2 Takte benötigt): Es werden zwar auch 3 Takte 
dargestellt, der letzte ist aber nur die Vorbereitung für den nächsten 
Zurgiff.
Das würde auch vom logischen her am besten passen: Der externe Zugriff 
ist identisch mit dem internen Zugriff + 1 Zusatztakt für ALE.

Ob ein zweiter ld danach folgt oder nicht ist egal, das sieht man ja im 
Datenblatt: Nach 3 Takten ist man wieder an der selben Stelle und es 
wiederholt sich der Zyklus.


Ich denke die kritischste Stelle ist das was im mega8515 Datenblatt 
unter Punkt 10 steht: "Read Low to Data Valid:" 1/Flck - 50ns
Das setzt sich aus "Data Setup to RD high:" 40ns und
"RD Pulse width:" 1/Fclk - 10ns zusammen: 1/Fclk - 10ns - 40ns = 1/Flck 
-50ns

Das macht bei 16MHz Takt also 12,5ns Zeit zwischen OE\ Low und Daten 
müssen anstehen !
Somit scheiden alle RAMs über 50ns aus.
RAMs mit 55ns laufen, aber nur wenn man eine Timingverletzung in Kauf 
nimmt.
Für alle anderen RAMs braucht man also Wait States.
Gast #511888
Lesenswert?

Hallo,

naja, da kann man wirklich nur Diagramme und Datenblätter studieren...

Nach dem Datenblatt des Hitachi 62256 gehen dann selbst 40ns-Typen da 
nicht ohne Wait, toe ist da schon mit 30ns angegeben.

Gruß aus Berlin
Michael
Gast #511892
Lesenswert?

Will man bei AVRs und voller Taktfrequenz ohne Waitstate arbeiten, sind 
Cache-SRAMs nötig, wie man sie auf 486/Pentium Mainboards fand. 
Allerdings sollte man deren Stromverbrauch sowohl bei der Versorgung als 
auch beim Layout beachten.

Theoretisch könnte man die OE-Zugriffszeit zwar auch anders angehen, 
aber da sich dem Datasheet die Adresszugriffszeit nicht eindeutig 
entnehmen lässt, ist das witzlos.

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