Forum: Mikrocontroller und Digitale Elektronik SRAM


von Markus (Gast)


Lesenswert?

Hallo zusammen,
da ich vor kurzem angefangen hab mit AVR´s zu experimentieren
interessiert mich nun die ansteuerung eines SRAM´s. Z.B. der 628512-55
von Reichelt ist ein 55ns Ram. Wenn ich die Tabellen im Datenbaltt
richtig verstanden hab, heißt das, dass 55 ns nach der read Anweisung
das Ergebniss an dem I/O Port anliegt. Was passiert, wenn ich die
Adresse ändere ohne zwischendurch die read Anweisung zu
unterbrechen???
Was würde in der Zeit bis die nächsten Daten bereit sind an dem I/O
Port anliegen????

Würde mich sehr über Hilfe freuen!
Gruß Markus

von Yagan Z. Dongobar (Gast)


Lesenswert?

Hallo Markus,

> Was würde in der Zeit bis die nächsten Daten bereit sind an dem I/O
> Port anliegen????

das wird vom Hersteller normalerweise nicht spezifiert.
Es kann also "irgendetwas" sein, bis die Daten wieder stabil sind.

Ciao, Yagan

von A.K. (Gast)


Lesenswert?

> Was passiert, wenn ich die Adresse ändere ohne zwischendurch
> die read Anweisung zu unterbrechen???

Es liegen spätestens 55nsec später die neuen Daten an. CE/OE dürfen
aktiv bleiben, beim Lesen ist das kein Problem. Beim Schreiben
funktioniert das so indes nicht, da muss mindestens CE oder WE
zwischendurch inaktiv sein.

Siehe Reichelt Datasheet Timing Diagram / Read Cycle.

von Markus (Gast)


Lesenswert?

Sorry, dass ich mich erst jetzt melde, aber danke für eure Antworten!
Hab jetzt noch eine Frage zur Tri-state Logik, da ich 3 Sram´s parallel
schalten will:

Wenn ich bei dem oben angesprochenen 628512-55
die Ausgänge auf High-Z schalte (CS=L  OE=H   WE=H)
und die Adresse angelegt ist und ich dann den Sram auf lesen schalte
(CS=L   OE=L   WE=H), wie lange dauert es dann, bis die Daten am
Ausgang anliegen?  Auch 55ns??

Sorry, aber ich komme mit den Tabellen noch nich so richtig zurecht!

Würde mich über Tipps freuen!
Gruß Markus

von Hagen (Gast)


Lesenswert?

Wenn du mehrere parellel schalten willst musst du CS aktiv beschalten,
sprich an eine Addressdekodierung so das immer nur ein Baustein aktiv
ist. Benutze am besten einen AVR mit XMEM Interface wie
ATmega8515,ATMega128,ATmeag162,ATMega64. Dort brauchst du dich ums
Timing nicht zu kümmern, selbst mit 16MHz Takt kann der AVR nur mit
maximal 62ns auf deinen 55ns SRAM zugreifen. Ich habe schon auf 70ns
SRAM ohne Waitstates zugegriffen und dies hat ohne Probleme
funktioniert.

Du willst doch nicht selber/manuell alle Signale schalten ? Dies macht
weniger Sinn.

Gruß Hagen

von A.K. (Gast)


Lesenswert?

> wie lange dauert es dann, bis die Daten am Ausgang anliegen?

tOE=25nsec, d.h. von OE aktiv bis zu den Daten sind es 25nsec.
Vorausgesetzt die Adressen sind schon mindestens 55-25=30nsec vor OE
gültig.

@Hagen: Grundsätzlich kann er die Devices auch mit OE/WE auswählen und
CE immer aktiv lassen. Braucht so halt mehr Strom, evtl. etwas mehr
Aufwand und das Timing vom Datenbus wird interessanter.

von Hagen (Gast)


Lesenswert?

@A.K. ich weis das man so vorgehen kann und besonders auch muß falls man
im Timing kritisch ist. Zb. die schnellen asynchronen SRAM's können so
schneller gelesen werden wenn /WE die Selektion bestimmt.
Denoch in seinem Falle ist das ja eher unkritisch und warum dann
kompliziert wenn's einfacher geht :-)

Gruß Hagen

von Alisa 1387 (Gast)


Lesenswert?

"Benutze am besten einen AVR mit XMEM Interface wie
ATmega8515"

der oben besagte Speicher hat 19 Eingänge für die Adresswahl und 8
Anschlüsse für Daten. Zusätzlich gibts noch write enable, chip select
und output enable inputs. Somit sind 29 oder 30 Ports zu versorgen. So
viele Pins gibt das XMEM Interface doch gar nicht her?

Da braucht man doch externe Register, oder? Wie ist der Kram denn
anzuschließen, wenn man sich nicht unnötig Arbeit machen möchte?

von Olaf (Gast)


Lesenswert?

zwei möglichkeiten

1. einen weiteren port des AVR's benutzen um die oberen drei adress
leitungen zu versorgen. Damit reicht ein OUT vor LD/ST.

2. einen weiteren 74*573 parallel zum ersten schalten eine weitere
leitung als 'high'-ALE definieren. Dies ist programm-technish etwas
aufwendiger, da du nun per hand XMEM ausschalten must die oberen 3
adressen auf PORTA legen must deine eigene 'high'-ALE toggeln und das
XMEM-interface wieder aktivieren, dann normal LD/ST.

die vor- und nachteile beider möglichkeiten sind offensichtlich.

Olaf

von Alisa 1387 (Gast)


Lesenswert?

"einen weiteren 573"

Gibt´s zum ersten 573 schon eine thread oder ein Schaltbild oder
irgendwas? Hab mir gerade das Datenblatt ausgedruckt. Ich nehem an man
geht seriell in den 573 und steuert damit die Adresse des RAM?

Sorry wegen der Anfängerfragen, aber ein solcher bin ich ;)

von Olaf (Gast)


Lesenswert?

nein das ist ein parallel 8-bit transparent latch

http://www.xs4all.nl/~ganswijk/chipdir/pin/74573.txt

Andere 'standard' IC finded man auch mit verweisen auch die
hersteller

http://www.xs4all.nl/~ganswijk/chipdir/index.htm

Olaf

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.