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
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
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.
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
Oh, anscheinend hat der Mega16 sowas gar net. Dann code ich das ganze lieber selber, sonst muss ich mir extra einen neuen bestellen... So is billiger und macht mehr Spaß :-)
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.