www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik Externer Grafik Controller oder AT91SAM9261

Autor: Grafik Neuling (Gast)
Datum: 14.05.2008 12:05

Hallo zusammen,
ich habe eine Frage an die Grafik-Experten unter euch.
Ich plane ein Gerät mit Grafikausgabe. Das TFT-Display soll eine Größe
von 5" bis 7" haben. Die Grafikausgabe muss nicht schnell sein. Im
Prinzip Darstellung einiger Symbole,die ab und zu wechseln.

Ich habe mich etwas umgesehen und bin einmal auf den AT91SAM9261
gestoßen, der ja einen LCD-Controller on Chip hat. Und dann gibt es ja
externe Controller, wie z.B. den S1D13506.

Jetzt zu meiner Frage:
Was ist mehr Programmieraufwand. ARM9 mit Controller inside, oder
externer Controller und evtl. nur einen ARM7 oder gar nur einen dicken
AVR.


Ich muss dazu sagen, das ich bisher mit ARM9 oder ext. Grafikcontrollern
noch nicht gearbeitet habe. AVR behersche ich ganz gut, ARM7 habe ich
mal reingeschnuppert. Sollte kein Problem sein.

Platinen erstellen ist jetzt mal noch kein Thema, ich verwende dann
erstmal fertige Module.

Ich wollte das Ganze in C schreiben. Ist das bei ARM9 sinnvoll, oder ist
es besser,oder gar ein Muss, da ein Linux drunter zu legen?



Ich hoffe es ist einiger Maßen rüber gekommen, was ich meine. Bin auf
Eure Antworten gespannt!

Gruß
Autor: Grafik Neuling (Gast)
Datum: 10.06.2008 08:26

Hallo,
ich möchte noch einmal einen Versuch starten, ein paar Ratschläge und
Tipps von euch zu erhalten.

Gruß
Autor: Bildröhre (Gast)
Datum: 10.06.2008 19:33

Man nehme einen ARM9 mit Display Controller, schließe hier 1-2MB RAM an
und konfiguriert den Display Controller.
Nun kann der RAM mit RGB-Farben für jedes Pixes beschrieben werden.

Rechenbeispiel:
640 x 480 Pixes x 3 Farben = 900KB.

Also um das Display ein mal neu zu bemalen müssen 900KB Daten
generiert/kopiert werden.

Ohne ordentliche Grafikbibliothek (die in Linux schon drin ist) geht das
gähn langsam.

Die günstigen Displays haben alle keinen eigenen Speicher, der Refresh
geht über das RAM des Prozessors wenn er es gerade nicht benutzen
möchte.

Mehr Infos habe ich auch nicht, da ich selbst noch nie sowas
programmiert habe, sollte aber für eine erste Entscheidung helfen.
Autor: Robert Teufel (Gast)
Datum: 10.06.2008 20:06

Also das geht entweder mit einer optimierten Graphikbibliothek, die in
Linux NICHT drin ist oder mit entsprechender Rechenleistung und Linux.

Fuer kleine Stueckzahlen (z.B. 1 Stueck ;-) wuerde ich die Linux Loesung
mit einem 200 MHz oder mehr Prozessor vorschlagen, denn eine gute
Graphikbibliothek kostet auch etwas Geld. Fuer eine Serienproduktion
wuerde ich eher einen ARM7 bemuehen mit 90% weniger Speicherbedarf als
ein Linux System, einem kleinen RTOS und wirklich optimierten
Graphiklibraries. Kleiner Tip, ein 200 MHz ARM9 unter Linux ist fuer
graphische Darstellung von Messkurven unter Linux mehr belastet als ein
ARM7 mit 50 MHz unter einem kleinen RTOS und kompakten Graphiklibraries.

falls die optimierte professionelle Option wirklich interessant ist
(kostet zwischen 5-10k Euro Software) lass es mich wissen, ansonsten
moechte ich (mal) keine Werbung machen.

Robert
Autor: Gast (Gast)
Datum: 10.06.2008 20:16

Ein Optimist rechnet anders:

240 x 320 x 1Byte sind 76800Byte. Ein Byte/Pixel reicht völlig aus.
Damit sollte die Grafikausgabe kein Problem sein.

Es gibt aber auch LCD-Controller, die schon 80kB Bildspeicher intern
eingebaut haben. Für einfache Anwendungen durchaus geeignet.
Autor: Grafik Neuling (Gast)
Datum: 11.06.2008 08:13

Danke für die Antworten.

Ihr schreibt von Linux und RTOS. Meint Ihr, das Projekt könnte man nur
mit einem OS verwirklichen?
Ich hatte mir das jetzt so vorgestellt, ohne jetzt bis ins Detail genau
recherchiert zu haben, ob das funktioniert:
Ich würde alles in C schreiben wollen, da ich mich mit OS (noch)nicht
aus kenne.

Da ich nur so eine Art Icons darstellen will, würde ich erst einmal den
TFT einfarbig als Hintergrund "füllen".
Dann hatte ich mir gedacht die einzelnen Icons erstmal im BMP Format auf
dem PC erstellen und mit SD-Karte zum µC System. Dann das Icon auf
Addresse "XY" im Bildspeicher ablegen.


Könnte das so, oder so ähnlich funktionieren?


Gruß
Autor: FloW (Gast)
Datum: 20.09.2008 12:05

Ich setze ein Fujitsu MB91F467D 32-Bit Microcontroller zusammen mit
einem Fujitsu Lime Grafikcontroller ein.

Der Microcontroller läuft mit 96MHz hat neben 1MB internen Flash 8MB
SDRAM und 8MB Flash, der Grafikcontroller hat 133MHz und 8MB RAM.

Ich habe kein Betriebssystem darauf laufen sondern alles rein in
C-Programmiert vollkommen ohne jegliche Grafiklibaries. Fonts und
Bitmaps werden einfach in BitArray Konvertiert und können dann in den
Flash abgespeichert werden. Für die Kommunkiaktion zum Grafikcontroller
gibt es einen Treiber der viele rudimentäre Funktionen wie z.B.
Blittern, Antialiasing, Kreise, Polygone etc. Zeichenen hergibt und das
auf 6-Layern. Es können sogar zwei Display gleichzeitig mit
verschiedenen Inhalten benutzt werden. Zu dem gibt es noch einen Video
eingang.

In meinem Projekt ist ein 5,7" Display mit 320*240 Pixeln mit
intigriertem Touchpanel(4-Wire) angeschlossen. Insgesamt sind 10 320*240
Pixel Bitmaps im Flash gespeichert (ca.3,5MB) diese werden über das
Blittern auf einen Display Layer geschrieben und dienen als Hintergrund.
Auf einem vorderen Layer werden dann die Dynamischen Objekte wie
Balkendiagramme, Meßwerte oder Pushbutton dargestellt.

Der Bildwechsel ist jenachdem wie er programmiert ist sehr schnell.

Man muss sich natürlich in C sehr viele Gedanken machen wie etwas
funktioniert (z.B. Bildrefresh von Messwerten) damit alles wie gewohnt
funktioniert, aber generell Funktioniert es. Der Mikrocontroller ist bei
mir relativ stark belastet (ca.60%), da viele weitere Komponenten wie
3*RS232, 6*PWM, 12*ADC, 6*ReloadTimer, 3*FreeRunTimer, 1*RealTimeClock,
zwei DMA Kanäle aktiviert sind. Zudem belastet der Touchscreen, der auch
über 4 Ports angeschlossen ist zusätzlich.

Ich mache mir oft gedanken ob ein Linux System nicht besser gewesen wäre
und komme zu dem Schluss "Nein". Für diese kompakte Anwendung in der ich
keine Ethernet, Server funktionen, hochkomplexe 3D-Grafiken benötige,
reicht es vollkommen aus. Zudem bin ich auf hohe Abtastraten angewiesen
(20µs bei den AD-Wandlern). Entwicklungszeit waren ca. 4-Monate.

Schau dir mal das Lime-Controller Board von Glyn (EVB-LIME) an. Das ist
relativ gut designed und kostet ca. 80€. Mit dem 32-Bit Mikro kostet die
Entwicklungsumgebung ca. 700€.

mfg

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