SRAM auf DE2 Board

OP #963609
Hallo,

ich versuche zur Zeit einen SRAM anzusteuern, was leider noch nicht 
richtig klappt.
Wenn ich WriteEnable setze (ReadEnable nicht gesetzt) und dann eine 
Addresse und auf den Addressport lege und ein Datenwort von 16 Bit auf 
den Datenport lege wird nichts gespeichert, denk ich jedenfalls, da, 
wenn man es genau umgekehrt mit Lesen versucht nichts kommt.


Hat vielleicht jemand von euch einen Tip was schieflaufen könnte, bzw. 
weiß jemand ein gutes Tutorial bezüglich des SRAM´s?

Viele Grüße
David
Gast #963616
Ist dort nicht ein asynchrones SRAM auf dem Board? D.h. du legst Adresse 
und Daten an und gibst dann eine Flanke auf WriteEnable (nWE). Daneben 
hat es noch 2 Byteenable (nUB, nLB) Pins sowie ein Outputenable (nOE) 
und das ChipEnable (nCE) die du entsprechend steuern musst.
OutputEnable (eig. ReadEnable) musst du aktivieren zum lesen, auf 
WriteEnable gibst du eine Flanke zum schreiben, wenn die Daten anliegen.
Gast #963815
Nein, du musst nichts initialisieren. Wenn du alle Pins korrekt 
ansteuerst (negative Logik) sollte es funktionieren. Hab dir im Anhang 
noch ein VGA-Controller fürs DE2 welcher das SRAM als Framebuffer 
braucht.
Angehängte Dateien:
OP #964038
Hm, also ich möchte auf den SRAM-Chip RGB Informationen speichern, für 
ein Display mit der Auflösung 320 x 3 x 240. Den Addressbus habe ich in 
einen Zeilenaddressierer (10 Bit) und einen Spaltenaddressierer (8 Bit) 
gesplittet. Beide beginnen bei 0. Die Bits sind folgendermaßen gesetzt:
LB = 0, UB = 0, WE = 0, OE = 1, CE = 0.

Dann lege ich die Addresse und die Daten an. Z.B.:

addresse <= Zeilenaddresse & Spaltenaddresse;
sramdata <= RGBData;

Nun lasse ich jeden Takt die Addresse einen höher zählen, bis ich das 
ganze Bild in RGB-Daten abgelegt habe (bzw. gern hätte).

Aber leider geht irgendwas schief. Es wird nur was in die Erste Addresse 
geschrieben (die erste RGB-Information).

Danach passiert garnichts mehr, obwohl ich die gesamten Addressen einmal 
durchlaufen lasse.

Nun die Frage:

Taktweises schreiben sollte doch möglich sein, oder muss ich 
zwischendurch manche Bits nochmal zurücksezten, obwohl schon alles auf 
Schreiben eingestellt ist?

Viele Grüße
David
Gast #964084
Das SRAM schreibt die Daten auf der fallenden(?) Flanke des WriteEnable. 
Du musst dort die Signale geben. Je nach dem brauchst du halt einen Takt 
Setup und dann einen Hold.
Gast #964092
Schau doch einfach mal ins Datenblatt des SRAMs. Dort ist ausführlich 
beschrieben wie er angesteuert werden möchte. Es gibt 4 Varianten Daten 
reinzuschreiben und du verwendest keine davon.

Wenn du Hilfe möchtest, dann wäre es schon sinnvoll mal den 
entsprechenden Code-Schnipsel hier einzustellen (oder zumindest mal das 
Ergebnis der Simulation).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.