PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 8051 Port 2 externen Speicher und I/O gleichzeitig nutzen



harry1976
14.04.2005, 13:02
Hallo zusammen!

Kann mir einer von euch sagen, ob es beim 8051 möglich ist den Port 2 gleichzeitig für die Adressierung von externen Speicher und als I/O Port zu nutzen. Wenn es geht, hat jemand ein Beispiel für Hardware und Software parat?

Sandro
14.04.2005, 14:29
Nein, eigentlich geht es nicht.
Du könntest höchstens einen IO-Adressbereich reservieren und dort eine Porterweiterung (8255 oder ein latch) ansprechen.
Dazu mußt du aber den Adressbereich dekodieren. Wieviel RAM willst du den anschließen?

14.04.2005, 14:42
Es wird ein 256 k Eprom und ein 256 k RAM angeshlossen. A15 wird eingesetzt um zwischen den beiden Bausteinen zu unterscheiden.
Es wird also nur mit dem externen Speicher gearbeitet. Ich hatte es mir ungefähr so vorgestellt, dass ich den Port 2 auch latchen kann und immer wenn ich Daten lese, könnte ich den Inhalt vom SFR A0h in das Latch schreiben. So müsste es doch möglich sein den Port wenigstens als Ausgang zu benutzen.

Sandro
14.04.2005, 14:53
Hab mir gerade das Bustiming angeschaut.
Du möchtest also mit dem ALE-Signal beide Ports latchen?
Das wird schon funktionieren. Du mußt dann halt einen Scheinzugriff auf den Speicher ausführen.

Aber auf diese Art wirst du dir die Ausgänge bei jedem regulären Zugriff auf den Speicher wieder überschreiben. Opferst du noch einen Pin von nem anderen Port als Freigabe könnte man das umgehen.
Aber wenn du auch den externen Programmspeicher benutzt sehe ich keine Möglichkeit.

Sandro
14.04.2005, 15:04
Noch ein paar Fragen.
Und mit 256k meinst du wohl ein "62256", also 32K.
Das EPROM befindet sich auch im Datenspeicherbereich? Werden da Konstanten gespeichert?

harry1976
14.04.2005, 15:33
Ja, richtig 32k, es ist ein 62256.
Die Trennung von Programm und Datenspeicher wurden in meinem Setup künstlich über eine Und-Verknüpfung vom /PSEN un /RD aufgehoben, um auch mal Programmcode im RAM ausführen zu können. Prinzipiell betreibe ich die Schaltung aber mit einem EPROM-Simulator als Programmspeicher und RAM im Datenspeicher. Es handelt sich beim Controller um einen C505CA von Infineon, der auf dem CHIP nurt OTP-ROM bietet.

Sandro
14.04.2005, 15:42
Dann sehe ich keine Möglichkeit den Port2 zu latchen.
Aber du könntest den Adressbereich des EPROMs für eine Ausgangsporterweiterung benutzen. Das EPROM hat ohnehin keine WR/-Leitung und wird sich nicht daran stören wenn du dort etwas ausgibst.

harry1976
14.04.2005, 16:31
Das ist natürlich auch eine Möglichkeit. Danke für die Antworten, ich werde mir da noch mal ein paar Gedanke zu machen.