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
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
> 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.
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
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
> 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.
@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
"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?
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
"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 ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.