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
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
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
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
Nimm doch ein Nokia-Farbdisplay. Gibts für ein paar Euro bei Ebay und in der Codesammlung ist auch ein Treiber zu finden.
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.
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.
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
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
>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
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?
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
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
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
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.
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.
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
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
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
Darf ich daraus schliesen, dass du meinst, dass ich die Sache falsch angehe? (-; Was sollte ich mach deiner Aussage als erstes machen? Gruß Tobi
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
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
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! (-; )
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
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.
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
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
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
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.
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
schau mal nach dem Nokia 6100 Farbdisplay, hat 130x130 Pixel und kostet bei Ebay so 15-20 Eur
Danke, gibt es dazu auch ein Datenblatt, weil sonst wird des mit dem Ansteuern etwas schwierig (-; Gruß AVR-Bastler
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.
Danke! Ich werd mir dann mal ein Handydisplay kaufen und mal schauen ob ich´s zum laufen bekomm! AVR-Bastler
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.