www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 8051 +externer ROM u. Interruptvektoren


Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich soll für ein Projekt ein Board mit einen 8051 und externen EPROM und 
RAM sowie einen 8255 IO Baustein versehen. Für externen Rom gibt es 2 
Varianten diesen zu verwenden in dem man den internen Rom von 0000h bis 
0fffh und ab 1000h bis ffffh den Externen Adressiert oder nur den 
externen von 0000h bis ffffh -> Stehen mir in der 2. Variante noch die 
Interruptvektoren zur Verfügung?

Geht das überhaupt den IO am gleichen Bus wie den ROM aus dem das 
Programm läuft und wenn ja kann ich WR und RD einfach selber setzen?

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian schrieb:
> Stehen mir in der 2. Variante noch die
> Interruptvektoren zur Verfügung?

Ja das geht die liegen dann im EPROM.


> Geht das überhaupt den IO am gleichen Bus wie den ROM aus dem das
> Programm läuft und wenn ja kann ich WR und RD einfach selber setzen?

Der 8051 unterscheidet zwischen Programmzugriffen mit PSEN und 
Datenzugriffen mit RD/WR.  Du hast also 2 x 64 Kbyte Addressraum zu 
verfuegung.

WR und RD setzt der Prozessor bei zugriffen auf externe Datenspeicher 
(nicht Programmspeicher) selber. Darum brauchst du dich nicht zu 
kuemmern.


Gruss Helmi

Autor: Gast 22 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du mit ROM den internen Flash des 8051 meinst, sonst ist es eine 
Maske,
kannst Du den externen Speicher ab 1000h verwenden. Der 8051 schaltet 
die
Zugriffe automatisch um. Sonst Internes ROM abschalten und alles ins 
Externe
(würde ich vorziehen)

Die Interruptvektoren bleiben an der alten Stelle, sind nicht abhängig
vom Externen Speicher.

R wund W werden, bei jedem IO-Zugriff entsprechend vom 8051 aktiviert,
die Datenleitungen der Externen Bausteine müssen am Datenbus hängen.
(22k Pull-Ups nicht vergessen)
Die Chip-Selects passen aus den Adressen generieren und gut ist es.
Auf eindeutige Adressen achten!

Autor: Matthias K. (matthiask)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Geht das überhaupt den IO am gleichen Bus wie den ROM aus dem das
>Programm läuft und wenn ja kann ich WR und RD einfach selber setzen?

Ist kein Problem. Wenn Du schreibend und lesend zugreifen willst, dann 
lege den 8255 in den Datenspeicher-Bereich, welcher mit WR bzw. RD = Low 
ausgewählt wird. Für CS baust Du Dir einen Adressdecoder oder je nach 
Platzfreiheit reicht auch eine einzelne höherwertige Adresse, so das Du 
mit den externen RAM nicht in Adresskonflickte kommst.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian schrieb:
> Ich soll für ein Projekt ein Board mit einen 8051 und externen EPROM und
> RAM sowie einen 8255 IO Baustein versehen.

Das ist dann aber nur ne Übungsaufgabe ohne jeglichen praktischen 
Nutzen.

Für praktischen Einsatz nimmt man nen 8051 mit internem Flash und 
Bootloader.


Peter

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke an alle.
heißt also wenn der 8051 auf das ext. ROM zugreift setzt er PSEN und bei 
allen anderen ist PSEN nicht gesetzt
und nur bei zugriff auf ext. ROM setzt er WR/RD sonst muss/kann ich das 
tun?
bleiben da dann seine Einstellungen oder setzt er sie wieder auf den 
letzten wert zurück?

@Peter Dannegger
ja für meinen Techniker beim DAA

Autor: Matthias K. (matthiask)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian schrieb:
> heißt also wenn der 8051 auf das ext. ROM zugreift setzt er PSEN und bei
> allen anderen ist PSEN nicht gesetzt
> und nur bei zugriff auf ext. ROM setzt er WR/RD sonst muss/kann ich das
> tun?
> bleiben da dann seine Einstellungen oder setzt er sie wieder auf den
> letzten wert zurück?

Also, du solltest als erstes mal was über Grundlagen des 8051 lesen. Dir 
fehlen elementare Grundkenntnisse. Vorallem zur grundsätzlichen 
Speicherarchitektur (Harward). Die ist bei (fast) allen 8051ern gleich. 
Im Netz gibt es unzählige Dokumente dazu.

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian schrieb:
> heißt also wenn der 8051 auf das ext. ROM zugreift setzt er PSEN und bei
> allen anderen ist PSEN nicht gesetzt

Richtig

> und nur bei zugriff auf ext. ROM setzt er WR/RD sonst muss/kann ich das
> tun?

Bei externem ROM setzt er nur PSEN , WR/RD bleiben inaktiv.
Du must unterscheiden zwischen Programmspeicher und Datenspeicher.
Du hast da eine Harward Architektur und keine von Neumann.

> bleiben da dann seine Einstellungen oder setzt er sie wieder auf den
> letzten wert zurück?

Das macht der automatisch.

Autor: Bernd N (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pin 31 ist mit EA External Acces (externer Zugriff) gekennzeichnet. 
Führt dieser Anschluss + so liest der MC von dem internen 
Programmspeicher, andernfalls von einem externen Eprom. P0, P2 
übernehmen die Funktion eines Adress / Datenbusses. Im ersten Zyklus 
gibt der MC die Adresse für den Programmspeicher aus. P0 das Adress low 
Byte, P2 das Adress high Byte. Mit Hilfe des ALE  Signals (Pin 30) wird 
das Adress low Byte in einen Adress-Speicher übernommen. ALE steht für 
Adress Latch Enable. Im zweiten Zyklus schaltet nun der MC mit dem 
Signal PSEN Program Store  ENable das Eprom in den Freigabezustand. P0 
liest nun das Befehlswort ein und der MC führt es aus. Dieser Vorgang 
wiederholt sich während des gesamten Programmablaufs in der gleichen 
Weise.

WR/RD bleiben inaktiv. Erst wenn Du den 8255 ansprichst dann passiert 
auch hier etwas.

Harvard bitte nicht mit w schreiben :-)

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz trivial ist die Sache nicht.

Eventuell brauchst Du nen PAL für Dekodierung, Umschaltung.
Eventuell mußt Du die Interruptvektoren vom internen Flash umleiten 
(LJMP-Tabelle).

Wie groß ist der externe SRAM, EPROM?
Soll aus dem XRAM auch Code ausgeführt werden?
Was für ein Adreßmapping hast Du dir ausgedacht?
Hat der 8051 schon internen Flash, SRAM und wie groß?
Welcher 8051?

Und schau Dir auch das Timing der 82C55 an, manche sind schnarchlahm und 
brauchen extra Waitzyklen. Aber nicht jeder 8051 kann externen Zugriffe 
strecken, dann hilft nur ein langsamerer Quarz.


Peter

Autor: Hans Meier (bauzi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Christian
Für Dich bestimmt sehr nützlich:
"Das Microcontroller Kochbuch MCS51" von Andreas Roth.
Entweder kaufen oder ausleihen.
Wirst nicht bereuen.

Autor: Hans Meier (bauzi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

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]
  • [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.