www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik AT89C51SND1C Display Fragen

Autor: Daniel Reinke (sliderbor)
Datum: 16.03.2008 23:04

Hallo alle zusammen,

ich plane momentan einen MP3-Player auf Basis des Atmel AT89C51SND1C.
Ich weiß, dass es schon viele Threads dazu gibt, aber ich habe noch ein
paar spezielle Fragen dazu.

Ich würde gerne ein Farbdisplay (z.B. 132x132 Pixel, 16Bit Farben)
verwenden, allerdings bin ich mir nicht sicher, ob der SND1C (ist ja
"nur" ein 8051) von der Rechenleistung usw. dafür ausreicht. Vielleicht
kann mir das jemand beantworten!? Bisher habe ich leider nur kleine
Projekte gehabt, wofür ein 8051 mehr als ausreichend war.

Der SND1C soll zudem noch von einer Speicherkarte bzw. HDD lesen und
natürlich Tasteneingaben verarbeiten. Dazu wird er wohl auch das
FAT16/32 Dateisystem interpretieren/verarbeiten müssen, was auch
Rechenleistung kosten sollte.

Wenn dieser nicht ausreichen sollte, wie könnte man das sonst lösen?
Einen ATmega nur für die Grafikausgabe zusätzlich einsetzen? Die
Framerate sollte auch nicht gerade bei 0,5 liegen. Mir ist schon klar,
dass man nicht immer den gesamten Inhalt neu schreiben muss, aber es
sollte schon recht flott gehen.

Gibt es Displays, die man einfach anschließen und dann programmieren
kann, z.B. mit SPI-Schnittstelle oder ähnliches? Vielleicht sogar mit
Programmierbeispielen bzw. Libraries oder so?

Sorry für diese Newbie-Fragen, aber wo kann man besser fragen als hier?
=)

Vielen Dank schon mal im Vorraus!
Autor: Daniel Reinke (sliderbor)
Datum: 17.03.2008 16:32

Kann mir keiner helfen oder will keiner? =(
Autor: Daniel P. (ppowers)
Datum: 17.03.2008 16:42

Naja, wenn man sehen würde, dass Du Dich schon mal selber etwas
umfangreicher informiert hättest, wären die Hilfestellungen
wahrscheinlich auch großzügiger - bzw. viele Deiner Fragen bereits
beantwortet.

Farb-LCDs mit SPI gibt es vom Nokia 6610 und vom Siemens S65, beide mehr
als ausführlich bereits hier diskutiert, Libraries gibts ebenfalls.

Hast Du schonmal ausgerechnet, wieviel Speicher man braucht, um 132x132
Pixel bei 16 Bit zu speichern? "immer den gesamten Inhalt neu schreiben"
kannst Du daher mehr oder weniger vergessen.
Was stellst Du Dir überhaupt unter "Grafikausgabe" vor? Willst Du
Winamp-Visualisierungen darstellen? DivX-Videos abspielen?
Autor: Daniel Reinke (sliderbor)
Datum: 17.03.2008 17:06

Ich wollte gerne ein einfaches grafisches Menü mit Symbolen darstellen,
weiterhin natürlich die Infos über den aktuellen Titel usw. also evtl.
noch einen Fortschrittsbalken oder ähnliches. Videos oder aufwändige
Animationen will ich nicht abspielen.

Zum Thema Speicher: Ich denke mal 132x132x16Bit = 278784 Bit = 34848
Byte = ~34kb pro Frame. Der SND1C kann mit max. 20MHz im X2-Modus takten
und ebenso die SPI-Schnittstelle. Ich hab allerdings keine Ahnung, wie
schnell der SND1C wohl die Daten effektiv schicken kann, er muss ja auch
noch die Grafik aufgebereiten usw., daher wollte ich eigentlich nur
wissen, ob es mit dem SND1C sinnvoll ist sowas zu machen. Oder ob man
besser einen anderen Controller dafür verwenden sollte und wenn ja,
welcher (Standard-)Controller wäre dafür geeignet?

Ich hab schon viel gegoogelt, habe aber entweder keine ausreichenden
Infos gefunden oder bin eben nicht draus schlau geworden. Asche auf mein
Haupt! =(
Autor: Daniel P. (ppowers)
Datum: 17.03.2008 17:13

Ist bestimmt möglich, ich mache sowas mit einem PIC und habe nur 12 MHz
SPI-Takt. Einen vollständigen Redraw des Displays kannst Du - wie gesagt
- auf Grund des Speichermangels kaum ermöglichen, daher erübrigt sich
auch die Frage nach der "Framerate".
Ich weiß leider nicht, wie sehr der Controller durch das Dekodieren von
MP3-Daten ausgelastet sein wird, aber - ähnlich wie bei mir - wird die
Devise lauten: nur das Allernötigste auf das LCD pinseln ;-)

"Geeignet" ist der Controller dafür wohl nur bedingt. 16-Bit
Grafikspielereien fallen wohl eher in den Zuständigkeitsbereich von 16-
oder 32-Bit-Prozessoren. Aber möglich ist es. Ja.
Autor: Daniel Reinke (sliderbor)
Datum: 17.03.2008 17:28

Da ich mir selbst nicht unbedingt zutraue einen sehr effizienten Code zu
programmieren, sollte man also auf einen zusätzlichen mC bauen, denke
ich.

Sind denn die 16 bzw. 32 Bit mC sehr viel anders zu programmieren als
z.B. ein 8051 oder kommt man trotz wenig Erfahrung mit etwas
Einarbeitung hin? Hab grad mal schnell bei Atmel geschaut und z.B. den
AVR32 gefunden.

Wieviel RAM sollte der mC denn haben? Der gesamte Bildschirminhalt
sollte im RAM passen um eine schnelle Grafikausgabe zu bekommen? Demnach
also 64kb (34kb pro Frame)?

Sorry für die vielen (für euch wahrscheinlich dummen) Fragen, aber außer
nem einfachen 8051 hatte ich bisher nichts in der Hand. =( SPI habe ich
auch genau 1x benutzt, aber bei dem verwendeten LED-Controller (Max7219)
kommt es nicht so auf die Geschwindigkeit und RAM an.
Autor: Daniel P. (ppowers)
Datum: 17.03.2008 17:40

So dumm sind die Fragen ja garnicht. ;-)
Aber schau doch einfach erstmal, wieweit Du mit dem AT89C51SND1C +
S65-Display kommst, um etwas Erfahrung zu sammeln.
Ich befürchte, 32-Bit Controller sind etwas oversized für Dich, der
Entwicklungs- und Kostenaufwand ist nämlich deutlich größer als für die
8-Bit-Controller, besonders wenn Du direkt einen Prozessor mit > 30kB
RAM verwenden möchtest ;-)

Abgesehen davon ist es zwar schön, wenn man den gesamten
Bildschirminhalt in den RAM bekommt, es ist aber nicht unbedingt nötig.
Mit geschickter Programmierung lassen sich auf so einem Display z.B.
auch Tetris realisieren - und das mit nur ~4kB RAM. Es kommt halt auch
ein wenig darauf an, was man für Ziele bei der "Grafikausgabe" hat.
Autor: Andreas W. (Gast)
Datum: 17.03.2008 17:54

@ Daniel Reinke
Für ein Menü brauchst du nicht den kompletten Bildschirminhalt im RAM
des MCUs haben. Daher reicht der AT89C51SND1C zum Abspielen von
MP3-Dateien von einer SD-Karte mit FAT und zum Ansteuern eines
Farbdisplay völlig aus. Wie das mit IDE aussieht weiß ich nicht.

Hier ein MP3-Projekt mit Mega128 (8MHz) und Nokia Farb-LCD:
http://www.mictronics.de/?page=mp3stick
Autor: Daniel Reinke (sliderbor)
Datum: 17.03.2008 23:36

Vielen Dank für eure Tipps! Ich werde mich mal genauer mit dem S65
Display beschäftigen, das gibts ja bei der Bucht schon ab ~6€. Muss mich
aber erst mal genau informieren, welches Versionen ich davon gebrauchen
kann, es sollen ja nicht alle gleich funktionieren.

Ich werde dann zunächst mal versuchen die Displayansteuerung mit dem
SND1C zu realisieren und sehen, wie weit ich komme.

Das IDE-Interface soll, soweit ich weiß, beim SND1C schon in Hardware
vorliegen, natürlich muss das Dateisystem noch in Software implementiert
werden. Damit muss ich mich auch noch außeinandersetzen. Habe bisher nur
das ext2 Dateisystem unter Linux nachprogrammiert.

@Andreas
Danke für den Link, werde mir das mal genauer ansehen!

Wenn noch jemand gute Links oder Tipps bez. Display bzw.
Displayansteuerung hat, immer her damit! =) Und nochmal danke!

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net