mikrocontroller.net

Forum: FPGA, VHDL & Co. Mircoblaze Memory Controller (xps_mch_emc) x8,x16


Autor: Paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo alle Zusammen,
ich habe ein kleines Projekt, wo ich mittels Microblaze über ein Memory 
Controller(xps_mch_emc) Daten auf den Spansion S29GL032 Flash lade.
Der Memory Controller kann im 8/16/32 Bit Modus arbeiten.
Den Flash S29GL32 kann man mit 8/16 Bit Modus beschreiben.
Im 16 Bit Modus (x16 im Datenblatt) funktioniert alles. Ich kann 
schreiben und kann jede Adresse lesen.
Wenn ich im 8 Bit Modus arbeite, kann ich nur jede zweite Adresse lesen. 
Also z.B: 0,2,4,6,8,A,C usw. Bei Adressen 1,3,5 usw. krieg ich nur eine 
NUll heraus.
Jetzt kann man bei xps_mch_emc unter "Confire IP" unter Common die 
"Maximun Data Bus Width" auf 8 stelle so wie unter Bank 0 "Data Bus 
Width of Bank 0" auch auf 8.
Dann liest er mir bei Adresse 1,3,5 den Inhalt von Adresse 0,2,4 aus.

Wie kann ich um 8 Bit Modus (x8) auf jede Adresse zugreifen? Oder ist 
das nicht möglich?

Kennt sich jemand mit dem Thema aus?
Danke im voraus.

Grüße
Paul

Autor: Joachim Schäfer (joachims)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Paul,
hast du die Adressleitung A-1  (kleiner A0) im Byte Modus angeschlossen 
?

in klartext

FPGA   -> Spansion Bezeichnung

A0  ->  A-1
A1  ->  A0
A2  ->  A1

usw.


Ich finde die Bezeichnung etwas unglücklich gewählt, aber im Byte Modus 
muss über die D15(A-1) leitung das Byte selektiert werden, A0 ist dann 
quasi A1 usw. am Spansion Baustein !

Könnte das Dein Problem sein ?

Gruß joachim

Autor: Paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Joachim,
nein das *.ucf File ist in Ordnung. Das mit D15(A0) habe ich so weit 
verstanden, glaube ich. Also A0 wird an D15 angepint. Ich hab da ein 
fertiges *.ucf File von Avnet.
Sobald man mit Byte='0' oder Byte = net_gnd auf 8 Bit Modus schaltet, 
kann man nicht auf jede Adresse schreiben. Auch das Rumspielen mit 
"Confire IP" hat nicht zum gewünschten Ergebnis geführt.
Ich vermute man muss die Schnittstelle von Microblaze zum Memory 
Controller auch auf 8 Bit Modus stellen. Aber wie??
Der PLB-Bus ist nur mal auf min. 32 Bit eingestellt.
Vielleicht hast mal  ne Idee?
Danke

Grüße
Paul

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.