SRAM ansteuerung

Gast #68157
Lesenswert?

Hallo!
Ich wollte mit einem AVR einen externen SRAM ansteuern. Ich hab zwar
das Datenblatt gelesen und auch einige andere Quellen zu dem Thema,
aber eine kleine Frage hätte ich noch.
Wenn ich etwas in das RAM schreibe, dann läuft das doch folgendermaßen
ab:
1. Adresse anlegen
2. Write Enable auf 0
3. Daten anlegen
4. Write Enable auf 1
Die Chip Select Leitung ist immer auf Masse.
Mein Problem ist nun folgendes:
Wenn ich WE auf 0 ziehe, geht das RAM in den "Schreib-Modus". Nun
ändere ich die Richtung des Ports am AVR (DDRx Register) auf Ausgang.
Allerdings ist doch dann der Dateneingang des RAMs einen kurzen Moment
auf einem undefinierten Pegel, nämlich bis ich die Richtung des Port
gewechselt hab und der AVR immer noch auf "Lesen" steht. Stört das
irgendwie?? Mir würde spontan einfallen die Pullups des AVR
anzuschalten, oder macht für eine so kurze Zeit ein undefinierter
Zustand nichts aus?
Nur zur Sicherhet noch: Zum Lesen leg ich einfach die Adresse an und
lese die Daten sonst muss ich da ja nichts machen? Und kann ich die
Output enable Leitung einfach auf Masse legen oder was macht man mit
der? Laut Datenblatt kann ich damit nur die Ausgänge des RAMs hochomig
schalten, aber wozu?
Danke schonmal
mfg Michael
Gast #68158
Lesenswert?

Hi

OE/ und WR/ dürfen nicht gleichzeitig aktiv sein. Du mußt also bei
ansteuern.

Der Ablauf zum Beschreiben:
1. OE/ und WR/ inaktiv
2. Adresse anlegen
3. Daten anlegen
4. WR/ aktiv
5. WR/ inaktiv

Der Ablauf zum Lesen:
1. OE/ und WR/ inaktiv
2. Adresse anlegen
3. OE/ aktiv
4. Daten einlesen
5. OE/ inaktiv

Matthias
Gast #68159
Lesenswert?

Der kurze undefinierte Zustand ist nicht problematisch, die Pull-Ups
kannst Du getrost vergessen. Das RAM übernimmt die Daten mit der
steigenden Flanke an /WE, in den Datenblättern sind die entsprechenden
Timingdiagramme.
Die /OE Leitung ist zur Steuerung der Output-Treiber des RAM da. Wenn
mehrere RAMs benutzt werden, oder falls ein 16-Bit breiter Datenbus
genutzt wird, der auch Byte-weise angesteuert werden soll, dann werden
die verschiedenen Enable-Signale benötigt. In Deinem Fall, mit nur
einem einzigen SRAM, kannst Du rein theoretisch /CE und /OE fest auf
Masse legen, da ein Low an /WE priorität hat. Nachteilig ist, daß dann
der Datenbus nicht mehr von anderen Komponenten genutzt werden kann.
Gast #68161
Lesenswert?

OK danke mehr wollt ich gar net wissen. Damit is alles klar. Wegen des
AVR mit dem externen SRAM Interface: Dann kann ich aber doch das SRAM
nicht mehr an die Leitungen anschließen wie ich will, oder kann man das
irgendwie einstellen?? Muss ich gleich mal schaun, glaub ich hab noch
einen Mega16 rumliegen.
mfg Michael

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