Forum: Mikrocontroller und Digitale Elektronik MC 6809 Adressbereich


von Daniel Rohrhofer (Gast)


Lesenswert?

Hallo Mikrocontroller Poster

Ich hätte eine Frage mit der ich schon lange quäle. Wie bringe ich es 
zusammen das ein MC 6809  einen 256 kb EEPROM , ein 64 kb RAM ,einen PIO 
und einen MC 6845 betreibt.

Ich dachte mir das dass EEPROM von 0000- 7FFFF liegt ab 8000 - A000 
liegt das RAM das PIO liegt fast am Ende und der Blidschirm treiber auf 
FFFF .
Sinnvoller wäre die Adress bereich mit ein Pal zu dekodieren da der 
74138 ein bisschen ungeschickt zu betreiben wäre.

Danke

von (prx) A. K. (prx)


Lesenswert?

Sehr lange kannst du dich mit der 6809 noch nicht befasst haben. Denn du 
wärst wohl der Erste, der das System aus dem Bildschirm bootet. ;-)

Hat dieses etwas bizarre Projekt einen konkreten Anlass? Die 6809 CPU 
war zwar ein feines Teil, wenn auch etwas zu spät, aber sowas mit für 
ein Retro-Projekt untypischen Speichermengen auszustatten wirkt schon 
etwas schräg.

von MaWin (Gast)


Lesenswert?

Er meint mit kb vermutlich Kilobit,

also 32kByte ERPOM, 8kByte RAM, PIO und CRTC,
und richtig, da der 6809 seinen RESET-Vecor
bei 0xFFFE holt, sollte dort ROM sein. Dann
kann man aber die anderen Vektoren auch nicht
mehr ändern. Also kann es auch schlau sein,
nach dem Booten das ROM von 0-7FFF und noch
mal gespioegelt bei 8000 bis FFFF einzublenden
und erst durch die erste Schreiboperation ein
FlipFlip zu setzen welches die Spiegelung aufhebt,
so daß von 0-7FFF ROM geht und das RAM bei C000-FFFF
liegt. So weit ich weiß bevorzugt der 6809 nicht die
Zero-Page, und der Stack kann überall liegen.

Irgendwo muß auch der Videospeicher liegen,
soll das in den 8k RAM sein ?

von Daniel Rohrhofer (Gast)


Lesenswert?

Ich weiß das das Projekt ein bisschen Schräg ist . Bei mir hat sich ein 
Fehler eingeschliechen das EEPROM hat nur 128 kb nicht 256 kb. Das 
Projekt ist eigntlich nur dazu da das ich ein bisschen herum 
programmieren kann. Der Videospeicher sollte im Ram liegen der 
zeichensatz liegt in eine separaten EPROM aber der is nicht von 
Bedeutung da der uP ja keinen Zugriff darauf hat sondern nur das CRTC

von (prx) A. K. (prx)


Lesenswert?

Interrupts kann man an eine bestimmte Stelle ins RAM leiten. Dort landet 
ein Sprungbefehl und die Sache hat sich. Deshalb irgendwie zu spiegeln 
oder zu tricksen lohnt nicht.

von (prx) A. K. (prx)


Lesenswert?

MaWin schrieb:

> Irgendwo muß auch der Videospeicher liegen,
> soll das in den 8k RAM sein ?

Wird schwierig, es sei denn man koppelt den Videotakt mit dem 
Prozessortakt und lässt bei E=0 den Videorefresh und bei E=1 die CPU 
ran.

von Helmut S. (helmuts)


Lesenswert?

> aber sowas mit für ein Retro-Projekt untypischen Speichermengen auszustatten 
wirkt schon etwas schräg.

Irgendwann sprengten die Anwendungen schon in der "Blütezeit" des MC6809 
den 64KB Speicher. Dafür wurde dann das Memory Management IC MC6829 
entwickelt um mehr als 64KB adressieren zu können. Da der MC6809 
ziemlich spät auf den Markt kam hat er trotz seiner "schönen" 
Adressierungsarten nicht mehr die große Verbreitung gefunden. Die 
Motorola Fans sind nach wenigen Jahren mit dem MC6809 auf den MC680xx 
umgeschwenkt.

von (prx) A. K. (prx)


Lesenswert?

Helmut S. schrieb:

> Dafür wurde dann das Memory Management IC MC6829
> entwickelt um mehr als 64KB adressieren zu können.

Dieses Wundertier war mir damals auch untergekommen. Aber wurde die MMU 
jemals irgendwo real verwendet?

von Helmut S. (helmuts)


Lesenswert?

Meine Erinnerung daran ist schon etwas verblasst. Ich habe ein oder zwei 
Boards mit dem MC6809 damals entwickelt (ohne MC6829). In einem Projekt 
eines Kollegen war meiner Erinnerung nach einer drin.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.