Forum: Mikrocontroller und Digitale Elektronik Verständnisproblem: Kommunikation CPU<->ROM<->Aussenwelt


von Dan M. (killler07)


Lesenswert?

Hallo,

ich habe ein grundlegendes Verständnisproblem im Bezug auf 
Cartridge-Basierte Systeme wie z.b. ältere Spielekonsolen (hier Sega 
Mega Drive / Motorola 68000).

In der Konsole ist die CPU, die selber keinerlei BIOS oder sonstige 
Software enthält. Auf der Cartridge ist ein simples paralleles ROM über 
Daten und Adressleitungen mit der CPU verbunden, die diese Anweisungen 
genau so ausführt und die Adresse um 1 inkrementiert.

Nun angenommen, ich möchte über diese Cartridge mit der Aussenwelt 
kommunizieren, wie es die sogenannten Flash-Carts tun. Da ist ein uC und 
ein paraleller Flash-Speicher drauf.

Beispiel: http://krikzz.com/

Wenn man diese Cartridge einlegt, kann man in einem Menü die Daten auf 
der SD Karte einsehen und Files in den Flash-Speicher brennen.

Beispiel: http://www.youtube.com/watch?v=ruTd88uq3L0

Was mir dabei nicht klar ist, wie diese dynamischen Informationen (z.B. 
die Dateiliste der SD-Karte) in die CPU kommen, die ja eigentlich nur 
ein ROM abarbeitet, ohne jegliche GPIOs.

Kommuniziert der uC dabei direkt über die Daten/Adressleitungen mit der 
CPU? Dafür ist er doch zu lahm?
Oder wird das Flash während der Ausführung vom uC mit den nötigen 
Informationen beschrieben?

Beide Antworten erscheinen mir nicht plausibel..vielleicht kann mir 
jemand gedanklich auf die Sprünge helfen.

Sagen wir, ich habe einen AVR und einen Flash-Speicher auf der 
Cartridge. Das Ziel des Programms im Flash-Speicher ist, den Zustand 
eines Ports am AVR auf dem Bildschirm auszugeben. Wie kommen die Daten 
vom AVR in die CPU der Konsole?

Viele Grüsse und Danke für das lesen dieses laaaangen Posts,

Dan

von Lupin (Gast)


Lesenswert?

auf der Flashcart ist ein CPLD drauf, welches man dazu nutzen könnte um 
an speziellen Speicheraddressen (ausserhalb des Flashs) Register zu 
definieren (wie PORTx DDRx vom AVR) um mit diesen Register 
Pin-Funktionen zu steuern.

Also wenn die Software z.B. an die Speicherstelle zum Setzen der Pins 
schreibt, leitet das CPLD den Schreibbefehl an seine Pins weiter. Dafür 
wäre ein Mikrocontroller zu langsam, das geht nur in echter Logik.

von Lupin (Gast)


Lesenswert?

Auf der Seite gibt es auch eine Beschreibung wie das Teil funktioniert, 
der hat den SPI Bus im CPLD (FPGA?) nachgebildet. Aber man könnte auch 
mit IOs arbeiten.

von Dan M. (killler07)


Lesenswert?

Also soweit ich das verstanden habe, muss man die benötigten Daten an 
Adressen über dem Flash-Speicher mappen.
Dies muss man mit einem CPLD oder im einfachsten Fall bei einem einzigen 
Register diskret bzw. mit 74xxx tun.

Diese Adresse kann man dann einfach aus dem Programm im Flash-Speicher 
heraus auslesen.

Leider ist auf der Seite kein Schaltplan :(

Und mit dem AVR wird das wohl wegen der Geschwindigkeit nix...zumal er 
ja noch Schieberegister bräuchte bei der immensen Zahl an Daten und 
Adressleitungen. Ich dachte man könnte so eine SD-Flashcart mit AVR 
realisieren, aber es sieht schlecht aus.

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.