www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Parallel Flash Memory ansteuern


Autor: Roland Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf eimem FPGA-Board befindet sich ein 32MBit Flash Memory, das für
Applikationen (nicht Konfiguration) genutzt werden soll. Das Flash wird
parallel von dem FPGA (Spartan-3) angesteuert, d.h. ich habe 16
Datenleitungen (D0..15) und 25 Adressleitungen (A0...24) sowie diverse
Steuerleitungen.

Ich möchte nun diese Flash Memory für meine Apllikationen nutzen. Da
ich aber leider null Erfahrungen mit dem Ansteuern von Speichern habe,
baue ich schwer auf Eure Hilfe.

Kann mir einer mit Erklärungen, Links oder auch am besten mit
Codebeispielen (VHDL) helfen ? Ich bin für jede Art von Hilfe dankbar.

Ich vermute mal ich muss eine Art Controller realisieren, der mir ein
geeignetes Timing zur Ansteuerung erzeugt.

Wie greife ich auf bestimmte Bereiche im Flash zu ? Gibt es dort auch
so eine Art Speicher Mapping. Wie macht man diese Zuordnung mit VHDL ?


Danke !!!

Gruß aus der Pfalz

Autor: Xenu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Wichtigste - wie so oft - ist das Du Dir erstmal in Ruhe das
Datenblatt des betreffenden FLASH-Speicherbausteins durchliest.

Autor: Roland Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich denke, das Datenblatt gibt mir erstmal keine Hinweise darauf....

Ist es sinnvoll eine State Machine zur Erzeugung des Timings zu bauen
?

nachdem das Timing erzeugt ist, wie nutze ich dann den Speicher bzw.
wie spreche ich ihn an (wie eine Array ?) Wie realisiere ich das in
VHDL ?

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus den Timingdiagrammen solltest du eigendlich leicht auf die
Ansteuerung kommen. Eine FSM ist sinnvoll.

Autor: TobiFlex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Möchtest Du den Flash nur lesen oder auch beschreiben?

Autor: Roland Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich möchte das Flash nur lesen !!!

Hat einer eine Idee, wie man so etwas realisiert ? Hat einer ein
Codebeispiel ?

Achso als Flash kommt ein Intel Strata Flash 28f320j3 zum Einsatz.

Autor: TobiFlex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn der Flash nur gelesen werden soll verstehe ich das Problem
nicht. Adresse anlegen CE und OE auf Low - RST und WE bleiben immer auf
high und die Daten stehen zur Verfügung.
Oder ist VHDL Dein Problem?

Du hast 25 Adressleitungen - also:

signal  flash_addr    : std_logic_vector(24 downto 0);

Du hast 16 Datenleitungen - also:

signal  flash_data              : std_logic_vector(15 downto 0);

Wenn Du einen Takt von 10MHz nutzt und bei jeder steigenden Flanke die
Flashadresse um 1 erhöhst sollte der Flash schnell genug sein seine
Daten zu liefern.

Viele Grüße
TobiFlex

Autor: Roland Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, da ich nur lesend auf das zugreife, ist es vielleicht wirklich nicht
so schwer.

Wenn ich das richtig verstanden habe, dann muss ich mit einem Takt von
10 MHz arbeiten, wenn die Zugriffszeit auf die Daten (sprich von
Anlegen der Adresse bis zur Verfügbarkeit der Daten) so um die 100ns
liegt. Ist das richtig ?


Allerdings arbeitet das Flsh im Page Mode, d.h. die Zugriffszeit für
das erste Datenbyte sind länger als für die anderen (oder allgemein
ausgedrückt die Zugriffszeiten sind unterschiedlich).

Wie muss ich meine State Machine takten bzw. mit welchem Takt muss ich
dann arbeiten. ?

Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

suche mal nach EEPROM habe schon einige Beitrage dazu verfasst wie ich
ein parallelles EPPROM angesteuert habe. Ich habe zwar dafür einige
Latches verwendet aber vom Timing her ist ja das gleiche.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.