mikrocontroller.net

Forum: FPGA, VHDL & Co. Actel Core8051 Speicheranbindung


Autor: fredò (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

ICh habe mir ein Actel 8051 EvalBoard zugelegt um ein bisschen mit dem 
Core8051 rumzuspielen.
Jetzt bin ich gerade dabei ein Design aufzusetzen, und da stellen sich 
mir ein paar Fragen. Auf dem Board hab ich einen SRAM (128Kx36) und ein 
32MB Flashmemory zur Verfügung.
Der 8051 hat ja die verschiedenen Speicher CODE, XDATA, DATA usw. Der 
CODE und XDATA unterstützen jeweils bis zu 64kBytes und liegen 
Adressparallel. Der DATA wird intern im FPGA realisiert.
CODE und XDATA haben jeweils ein eigenes Schreibe & Lesesignal. Aber mit 
dem Keil Debugger kann ich das Programm nicht in den Flash laden.
Über einen Adressdecoder würde ich jetzt die einzelenen Speicher 
einteilen, was mir ja ein zusätzliches Enable-Signal bringt. Jetzt hab 
ich in den UserGuides gelesen das CODE und XDATA in den selben Speicher 
gelegt werden können. Wie soll das funktionieren, denn beide sind ja 
Adressparallel und würde sich gegenseitig überschreiben? Mit den Enable 
& SChreibsignalen kann ich ja nur den Baustein oder die Bank aktivieren, 
aber ohne gebankten Speicher ist das ganze für mich ein Rätsel.

Vielleicht habt ihr ne Idee.

Danke, gruß

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

der 8051 benutzt als Speicherstruktur eine Harward Architektur. d.h. 
Programmspeicher und Datenspeicher sind zugriffsmäßig getrennt, belegen 
aber physikalisch den gleichen Adressraum (0000-FFFF). Zu Unterscheidung 
gibt es das zusätzliche Signal PSEN. Dies Kennzeichnet bei L den Zugriff 
auf den Programmspeicher. Die Signale RD und WR sind während des 
Programmspeicherzugriffs H. Soll auf den Datenspeicher zugegriffen 
werden, muß PSEN H sein und RD oder WR L, je nach Lese- oder 
Schreibzugriff. Der Bereich 0000-FFFF steht hierbei 2x zur Verfügung.

Nun kann man die 3 Signale so kombinieren, das sowohl PSEN, als auch RD 
und WR auf den gleichen Speicherbereich zugreifen. Es ensteht die 
klassische Neumann-Architektur. Allerdings steht dann der Bereich 
0000-FFFF nur noch einmal zur Verfügung.

Du musst also wenigstens PSEN, RD, WR für die Selektion heranziehen. Das 
sich Daten und Programm nicht überschreiben mus Deine Software 
sicherstellen!

Gruß Matthias

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.