Forum: Mikrocontroller und Digitale Elektronik Gameboy Advance Diplay missbrauchen?


von AVR-Bastler (Gast)


Lesenswert?

Hallo zusammen,

Ich habe vor mir mit einem AVR eine Art Gameboy zu bauen, auf dem ich
dann 2D-Spiele usw. Spielen kann. Nur fehlt mir noch ein Display.
Da ein Farbdisplay mit mindestens 240x128 Pixeln recht teuer ist,
dachte ich mir, ob ich nicht das Display aus meinem alten Gameboy
Advance (240x160 Pixel) benutzen kann?

Ist es möglich ein Gameboy Advance Display mit einem AVR anzusteuern
und weis jemand, wie so etwas funktioniert?

Wäre über Ratschläge sehr dankbar!
MFG AVR-Bastler

von AVR-Bastler (Gast)


Lesenswert?

Oder hat jemand sonst für ne Idee, was für ein Display ich verwenden
könnte, sollte aber nicht zu teuer sein!

MFG AVR-Bastler

von Chriss (Gast)


Lesenswert?

Ich denke schon dass das machbar ist.

Wenn du die Suchfunktion benutzen würdest, dann findest du auch direkt
Gleichgesinnte, die dieselbe Idee schon mal hatten.

Chriss

von AVR-Bastler (Gast)


Lesenswert?

oh sorry,
werd ich gleich mal suchen.

Danke

von AVR-Bastler (Gast)


Lesenswert?

Also, entweder bin ich zu dumm, oder in den ganzen Threads gehts mur um
das Monochrom Display oder das Display des GB-Color!!
So wie es aussieht ist es wohl nicht einfach, diese GB-Displays
anzusteuern!

Kann mir jemand ein Color-Display empfehelen, dass ca. 240x160 Pixel
(mehr wär auch ned schlecht) hat und auch noch bezahlbar ist?

Würde mich sehr über Hilfe freuen!
Gruß Tobi

von ERDI - Soft (Gast)


Lesenswert?

Nimm doch ein Nokia-Farbdisplay. Gibts für ein paar Euro bei Ebay und in
der Codesammlung ist auch ein Treiber zu finden.

von ERDI - Soft (Gast)


Lesenswert?

Hm, sorry, hab was vergessen. Ist leider etwas kleiner als das, was du
gerne hättest. Aber ich denke, dass es für den Einstieg gut geignet
ist.

von Sebastian (Gast)


Lesenswert?

Tja, es müsste einfach mal jemand seinen GB Advance aufschrauben und
auf's Display gucken. Ich wette, dass Nintendo einen proprietären
Chipsatz benutzt, zu dem es kaum Doku gibt. Falls dem jedoch nicht so
sein sollte: -> googeln -> Datenblatt downloaden -> hier posten. :-)
Wenn man erst mal ein Datenblatt hat, ist der Rest vglw. simpel.

von Jörn (Gast)


Lesenswert?

Wenn der AVR ein Grafikdisplay mit Daten beschicken soll, bleibt wohl
kaum genug Rechenzeit übrig, um noch groß andere Dinge zu tun,
höchstens du aktualisierst das Display nicht allzuoft, also
Rennwagenspiel (2D) ist kaum machbar, höchstens auf dem ganz kleinen.
jörn

von Olaf (Gast)


Lesenswert?

Du koennstest dir ein NEC N341i Handy kaufen und das Display
ausschlachten. Das HAndy ist ein derart uebel programmierter Murks das
es keinen grossen Wert haben kann, aber das Display ist gut.
ICh warte schon sehnsuechtig darauf das ich meins zerlegen kann. :-)

Ich denke aber auch das ein AVR dafuer nicht die richtige Wahl ist. Zum
einen GEschwindigkeit zum anderen auch Speichergroesse. Gerade bei
Farbdisplays muss man ja einiges an Daten bewegen.

BTW: Was ist eigentlich im Color-Gameboy fuer eine CPU drin? Ich kann
kaum glauben des noch ein alter Z80 ist.

Olaf

von hebel23 (Gast)


Lesenswert?

>Ich wette, dass Nintendo einen proprietären
>Chipsatz benutzt, zu dem es kaum Doku gibt.

Naja nicht ganz. Die Ansteuerung läuft im GBA direkt über den
Hauptprozessor. Das ist ein ASIC von Nintendo mit ARM7-Kern, RAM,
Videospeicher, Soundmodul, Keyboardmodul, Schnittstellen usw. - alles
in einem Chip (am billigsten). Das Display wird also direkt vom ASIC
angesteuert und wird darauf spezialisiert sein, so dass die Ansteuerung
ohnen diesen kaum möglich sein wird. Für das ganze gibts aber jede Menge
Doku und Software...

http://www.ziegler.desaign.de
http://www.gbadev.org

Gruß Andreas

von AVR-Bastler (Gast)


Lesenswert?

Danke erstmal für die vielen Antworten!
Also, dass mit dem GBA Display kann man wohl vergessen )-:

Gibt es irgendwelche Farbdisplays, die ca. 240x160 Pixel, (320x240 wäre
natürlich besser) haben, die man auch einfach mit einem AVR ansteuern
kann???

Zur Geschwindigkeit:
Ich habe mir das so forgestellt, dass ein AVR als "Hauptprozessor"
arbeitet, der dann Bilder in einen Speicher läd, oder zimindest immer
das, was sich am Bild verändert hat. Ein 2. AVR arbeitet dann als
"Grafikprozessor" und läd immer das im Speicher abgelegte Bild in den
Controller von Display!

Könnte man so eine akzeptable Grafik bekommen?

von AVR-Bastler (Gast)


Lesenswert?

Ich hab noch was vergessen:

Kann man auch Displays mit 16bit Farbtiefe mit 8bit Farbtiefe
ansteuern? Weil 256 Farben würden mir eigentlich langen!

Würde mich sehr über Hilfe freuen!
Gruß Tobi

von Olaf (Gast)


Lesenswert?

Ich wuerde empfehlen bevor man soetwas anfaengt mal zum Taschenrechner
zu greifen und dann auszurechen wie oft man wiviel kb verschieben muss.
Danach ist dann vermutlich die ein oder andere Idee gestorben. :-)

Olaf

von AVR-Bastler (Gast)


Lesenswert?

Wenn ich ein Bild mit 240x160 Pixeln bei einer Farbtiefe von 1byte
speicher, is das doch ca. 33kb groß! Bei einer Wiederholungsfrequenz
von 50hz (oder geht das nicht?) sind das doch ca. 1920kb! schafft man
das nicht mit einem AVR? Oder müsste ich einen anderen Micro nehmen?
Was würdet ohr mir empfehlen?

Würde mich sehr über Hilfe freuen!
Gruß Tobi

von Sebastian (Gast)


Lesenswert?

240*160 Pixel @ 256 Farben = 37,5kB pro Bild => @50fps = 1,83MB/s. Das
halte ich schon für ziemlich gewagt. Per USART bekommst du nicht viel
mehr als 0,1MB/s durch, also müsste dein Bus mehr als das Zehnfache
können. Einfach die Daten 8-bittig parallel rausschieben halte ich auch
für schwierig. So kämst du bei 8MHz Takt zwar theoretisch auf bis zu
8MB/s, aber das wäre ja ein reiner Burst-Betrieb. Wenn der µC sagen wir
mal zu 80% rechnet (Grafikberechnung, Spielfluss etc.) und nur zu 20%
reine Grafikausgabe macht, kommst du so gerade auf 1MB/s. Aber das
halte ich für arg auf Kante genäht.

von Christof Krüger (Gast)


Lesenswert?

Ja nu, 50Hz sind ja auch viel zu viel. Mit 20-25 Bildern pro Sekunde
sieht es schon flüssig aus. Man sollte hier Bildwiederholrate von
"Bildern pro Sekunde" unterscheiden. Ausserdem ändert sich meist
nicht der ganze Bildschirminhalt, wobei die Berechnung, was überhaupt
upgedated werden soll auch aufwendig sein kann.

von hebel23 (Gast)


Lesenswert?

Hallo AVR-Bastler,

also mich würde jetzt mal interessieren welchen Zweck Du mit Deiner
Entwicklung verfolgst. Geht es Dir darum, unbedingt einen AVR für
Deinen "Gameboy" zu verwenden oder willst Du das so machen, weil Du
"nur" den AVR kennst (Dein Nick würde dafür sprechen...)und das eher
ein Softwareproblem ist?
Falls es Dir darum geht, eigene Spiele entwickeln zu können, kannst Du
das auch für den richtigen Gameboy tun. Ich fürchte im Bezug auf die
Performance und die Funktionalität wird Dein AVR-basiertes System nie
an sein Vorbild rankommen.

Gruß Andreas

von AVR-Bastler (Gast)


Lesenswert?

Hallo

@hebel23
Mir geht es eigentlich darum, dass ich selber so eine Art "Gameboy"
bau und darauf dann kleine Spiele laufen lassen kann.

Warum ich einen AVR Benutze?
Ich habe bis jetzt nur mit AVR´s gearbeitet, aber ich überlege mir eh,
ob ich als Hauptprozessor nicht einen etwas Leistungsfähigeren
Microcontroller nehme (32-bit).
Jetzt geht es mir eigentlich nur darum, wie ich aus einem Speicher ein
Bild lesen kann und an ein Display schicken kann. Danach kann ich ja
immernoch entscheiden, ob ich vor den Speicher einen anderen Micro
häng, oder?

Ihr habt geschrieben, das der AVR mit der Display Übertragung schon
ziemlich ausgelastet wäre, dies spielt doch aber eigentlich keine
Rolle, da er eh nur Daten aus dem Speicher holt und diese an das
Display sendet, oder?


Würde mich sehr über Hilfe freuen!
Gruß Tobi

von Markus_8051 (Gast)


Lesenswert?

Der Lehrling soll ein Rohr bauen. Der Meister fragt ihn, wie er
vorzugehen gedenkt.
Lehrling: "Ich nehme ein Loch und wickel Metall drum!"
Meister: "Und wo nimmst Du das Loch her?"
Lehrling: "Ich nehme ein altes Ofenrohr, und mache das Blech ab!"

Gruß,
Markus_8051

von AVR-Bastler (Gast)


Lesenswert?

Darf ich daraus schliesen, dass du meinst, dass ich die Sache falsch
angehe? (-;
Was sollte ich mach deiner Aussage als erstes machen?

Gruß Tobi

von Hagen (Gast)


Lesenswert?

Er meint damit du sollst den fertigen GameBoy programmieren, garnichts
an Hardware bauen sondern direkt für den Gameboy programmieren. So
könntest du eventuell sogar noch Geld verdienen.

Gruß Hagen

von AVR-Bastler (Gast)


Lesenswert?

sorry, dann hab ich das wohl falsch verstanden.

Das mit dem Geld verdienen wäre zwar toll, aber trotzdem würde ich
gerne so ein Gerät selber bauen, nur bräuchte ich noch ein bischen
Hilfe bei der Sache mit dem Display!
Würde mich sehr über Hilfe freuen
Gruß Tobi

von Philipp Sªsse (Gast)


Lesenswert?

Für mich klingt das jetzt, als wolltest Du den AVR als Displaycontroller
einsetzen?! Wofür gibt es denn Displaycontroller? Damit die das Vollbild
verwalten und Du nur noch die Änderungen zu senden brauchst.

Ob der AVR das schafft, hängt vor allem davon ab, wieviel Änderungen Du
haben willst. Einen Pacman und ein paar Monster durch die Gegend zu
schieben, schafft der AVR mit links. Und wenn Dein Display nicht TFT
ist, ist es eh' zu langsam für irgendwelche 20 Frame-Träume.

Wenn ich sowas angehen würde, würde ich klein anfangen und später
aufbohren. Nimm so ein 20 Euro-Display mit 128*64 und eingebautem
Controller. Dann schreib mal ein Spiel und schau, wie es performed. Und
wenn da zuviele Reserven sind (-; nimmst Du QVGA Auflösung und Farbe
dazu. Und wenn Du gut programmiert hast, ist es kaum Aufwand, die
Graphikausgabe anzupassen. (Guter Test übrigens, ob man sich saubere
Schnittstellen überlegt hat! (-; )

von AVR-Bastler (Gast)


Lesenswert?

Is eigentlich eine gute Idee!
Ich kenn mich mit Displays nicht so gut aus und hab gedacht, dass man
dem Controller die Daten immer neu schicken muss.

Also, wenn ich garkein "Grafikprozessor" brauch, dann sollte ich mir
schnell überlegen, ob einen anderen Prozessor nehm??
Gibt es irgendwelche Micros (16bit oder so), mit denen ich deutlich an
Leistung gewinnen könnte???

Würde mich sehr über Hilfe freuen!
Gruß Tobi

von AVR-Bastler (Gast)


Lesenswert?

Und Danke für den Tipp (-:

von Richard Zink (Gast)


Lesenswert?

www.pollin.de hat gerade ein GLCD im Angebot für 20 Eier.
Hat ne Auflösung von 128x128pxl bei ner sichtbaren Fläche
von 55x55mm.

von Jörn (Gast)


Lesenswert?

Es ist bei allen Controller klug bei farbiger, bewegter Grafik und doch
recht vielen Pixeln (also nicht 64x64) einen Displaycontroller zu
nehmen. Dafür gibt es die ja.
Nicht nur der AVR ist eine rel. schlechte Wahl für sowas, auch 32bit
Controller machen sowas nicht gerade gut.

Hängt eben von den Ansprüchen ab, aber warum in vielen zig STunden
etwas bauen, was bei Karstadt auf dem Grabbeltisch niemand mehr für 5,-
EUR haben will??

jörn

von Olaf (Gast)


Lesenswert?

Vielleicht noch einen Tip zur Berechnung der Geschwindigkeit. Es ist
keinesfalls so das man einfach weniger Daten an ein Display schicken
muss wenn man weniger bewegt. Also z.B auch garnichts machen muss wenn
man ein STandbild haben will.

Die Teile wollen trotzdem immer mit einer gewissen Mindestfrequenz die
Bilddaten reingeschrieben haben. Haelt man sich da nicht daran so geht
das Display kaputt. Genauer gesagt fangen dann die Pixel an komisch
auszusehen. Das kann man sogar schaffen wenn man einen
Displaycontroller hat und den falsch programmiert. Ist mir jedenfalls
schonmal passiert.

Ich wuerde zum selberbasteln wirklich allerdringenst darauf achten ein
Display zu verwenden das bereits einen Grafikkontroller eingebaut hat.
Auch wenn die teuer sind! Der Aufwand ist sonst immens.

Nur wenn das Display selber intelligent ist und z.B einen Zeichensatz
enthaelt und auf Wunsch Linien zwischen zwei Punkten zeichen kann
wuerde ich es an einen kleinen AVR haengen. Muss man naemlich den
kompletten Bildaufbau selber machen dann braucht man auch entsprechend
viel Speicher im Microcontroller, bzw. dann externen Speicher.

Wie man sieht, da steckt ein grosser Aufwand hinter und deshalb sieht
man Grafikdisplay auch nur recht selten. Die sind fuer fast alle
Anwendungen zu teuer. Handy und Digitalkameras sind da wohl die einzige
Ausnahme. Bei letzeren ist das aber wohl nicht so schlimm weil Kameras
sowieso schon ein dicken Prozessor und Ram haben um ueberhaubt mit den
grossen Bilddaten umgehen zu koennen.

Olaf

von AVR-Bastler (Gast)


Lesenswert?

Danke für die Antwort!

Ich hatte mir auchschon überlegt die Bilddaten über eine VGA Buchse an
einen Monitor auszugeben, dies hat bis jetzt aber noch nicht wirklich
funktioniert )-:

Gruß AVR-Bastler

von Philipp Sªsse (Gast)


Lesenswert?

Als Prozessor würde ich wohl einen ARM nehmen, von wem auch immer. Da
gibt es billige Exemplare mit ordentlich Leistung und freien
Entwicklertools.

Wenn Du Display und Display-Controller getrennt besorgst, kannst Du
auch einen auswählen, der vom s/w-128*64 bis zum 8-Bit-Farb-QVGA
reicht, dann mußt Du später nicht den Controller wechseln und wieder
bei null anfangen. Aber sei gewarnt: das Kombinieren von Displays und
Controllern scheint mir eine Wissenschaft für sich zu sein.

von AVR-Bastler (Gast)


Lesenswert?

Gibt es nicht Display, bei denen der COntroller schon festgelötet ist
und die man per SPI ansteuern kann? Weil wenn ich das Display mit SPI
ansteuer, ist es ja egal,w elches Display ich anschließ, ich muss ja
nur die "Befhele" an das Display ändern, oder?

Gruß AVR-Bastler

von sammy (Gast)


Lesenswert?

schau mal nach dem Nokia 6100 Farbdisplay, hat 130x130 Pixel und kostet
bei Ebay so 15-20 Eur

von AVR-Bastler (Gast)


Lesenswert?

Danke, gibt es dazu auch ein Datenblatt, weil sonst wird des mit dem
Ansteuern etwas schwierig (-;

Gruß AVR-Bastler

von Stefan (Gast)


Lesenswert?

Man könnte ja auch den Gameboy Prozessor mit dem AVR kommunizieren
lassen. Die Grafikausgabe wird dann komplett vom GBA Prozessor
übernommen.
Sinnvoll ist das aber wahrscheinlich nur, wenn man externe Hardware wie
z.B. Sensoren auslesen muss. Will man nur ein Spiel schreiben, braucht
man keinen externen Prozessor.

von AVR-Bastler (Gast)


Lesenswert?

Danke!

Ich werd mir dann mal ein Handydisplay kaufen und mal schauen ob ich´s
zum laufen bekomm!

AVR-Bastler

von Hagen (Gast)


Lesenswert?

oder benutze die Suche hier im Forum -> Codesammlung und du wirst fündig
;)

Gruß hagen

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.