Forum: Mikrocontroller und Digitale Elektronik Digitaler Bilderrahmen


von Hans (Gast)


Lesenswert?

Ihr kennt sicher diese digitalen Bilderramen die JPGs auch ohne PC
anzeigen können.
Ich habe einen alten 15" TFT mit Analog- VGA Eingang übrig und möchte
diesen nun als solchen verwenden.
Bisher habe ich an einen Embedded PC gedacht, aber das ist mir fast zu
teuer...
Kann ein leistungsfähiger Mikrocontroller einen Monitor ansteuern?

von TheMason (Gast)


Lesenswert?

Hallo Hans,

das kommt auf die Geschwindigkeit des Prozessors und das nachleuchten
des Displays an. Einfacher in Verbindung mit einem Mikrocontroller ist
wenn du das Display direkt ansteuern kannst. Ein VGA-Signal bei einer
entsprechenden Auflösung (640x480/800x600) mit einem uC zu erstellen
ist m.E. nach schwieriger (weil die Pixelclock bei 640x480 schon 25 MHz
ist) als wenn man das Display direkt ansteuert. (Hat auch den Vorteil
das man keine Video DACs fürs VGA braucht, da die Farbinformation
direkt digital an das TFT gegeben wird). Da kann man bei den Timings
auch etwas "schlabbern". Einfacher ist es aber einen CPLD zu nehmen
der das Timing erstellt und Adressen erzeugt. Ich würde auch kein JPG
sondern ein entkomprimiertes BMP nehmen. JPG zu entpacken ist für einen
kleinen uC zu zeitaufwendig.
Prinzipiell ist es aber möglich einen digitalen Bilderrahmen mit einem
uC zu machen, sollte dort aber gewisse abstriche machen.

Gruß
Rene

von Hans (Gast)


Lesenswert?

Also sowas ähnliches wie die 8Bit Grafikkarte von
http://ulrichradig.de/
nur halt mit mehr Farben und 1024*768?

von TheMason (Gast)


Lesenswert?

So in der Richtung. Ist halt nur die Frage ob du vom Timing her 1024x768
schaffst ... Und das bezweifel ich. Nicht das es nicht machbar wäre,
aber ein uC dürfte für derlei Timing Sachen zu langsam sein. Vor allem
muß das generierte VGA Signal soweit stabil sein das der VGA-Teil des
TFTs noch sauber die 1024x768 erkennt.
Bei 1024x768 brauchst du glaube ich eine Pixelclock von 75MHz. Bei
640x480 sinds 25MHz, das dürfte man in Assembler mit nem sehr schnellen
Prozi evtl. hinbekommen. Ansonsten CPLD nehmen (wäre meine favorisierte
Lösung).

Gruß
Rene

von Michael (Gast)


Lesenswert?

In der Elektor war mal ein solches Projekt, allerdings für die anzeige
auf dem Fernsehen. Man konnte ein Bild über die serielle Schnittstelle
hochladen und dann wurde es abgespeichert und wurde angezeigt. Weiß nur
leider nicht mehr welche Ausgabe es war.

Gruß
Michael

von TOM (Gast)


Lesenswert?

Wäre es nicht möglich eine alte ISA-Grafikkarte dafür zu nehmen?
Die würde doch das Timing, die D/A-Wandlung und die Speicherung
übernehmen. Dann man doch sicher "in Ruhe" ein Bild ein den
Videospeicher laden und anschließend anzeigen lassen. Während ein Bild
angezeigt wird, das nächste an eine andere Stelle im Speicher der GraKa
ablegen und dann nur Speicherbereiche umschalten.

Das ist nur eine Idee, wahrscheinlich nicht mal ebenso auf die Schnelle
zu lösen, aber eventuell ein Ansatz.

Gruß

Thomas

von Hans (Gast)


Lesenswert?

CPLD klingt gut.
Welche Geschwindigkeit braucht man für 1024*768*16Bit mit 60Hz? (TFT)

von TheMason (Gast)


Lesenswert?

Hallo Hans,

so ausm Kopf heraus glaube ich waren es 75MHz. Es gibt hier irgendwo im
Forum (Programmierbare logik) einen link, bei dem man die PixelClock und
die Synch-Zeiten bei einer gewünschten Auflösung und Bildwiederholrate
ausrechnen kann. Mußt mal stöbern.
Wenn ich den Link auf die schnelle finde poste ich ihn noch.

Gruß
Rene

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das Timing von TFT-Displays ist einfacher als das von Röhrenmonitoren,
weil keinerlei "Strahlrücklaufzeiten" und Austastlücken
berücksichtigt werden müssen, daher lässt sich der Pixeltakt recht
einfach berechnen:

Pixeltakt = Pixel pro Zeile  Zeilenanzahl  Bildwechselfrequenz

Also

   1024  768  60 Hz = 47.2 MHz

Mit diesem Pixeltakt werden üblicherweise 18 Bit pro Pixel an das
Display übergeben, bei besseren Displays sind das 24 Bit pro Pixel.

Neuzeitliche Displays haben eine LVDS-Schnittstelle, die parallelen
Pixeldaten (3 * 6 Bit bzw. 3 * 8 Bit) werden in diesem Falle zusammen
mit Pixeltakt und Synchronisationssignalen an einen geeigneten
LVDS-Transmitter übergeben.

von TheMason (Gast)


Lesenswert?

hallo rufus,

stimmt zwar soweit, aber wenn ichs richtig gelesen habe meint der hans
das er ein VGA-Signal braucht. wenn du das tft direkt ansteuerst geb
ich dir recht. Auf der anderen seite braucht man dann wahrscheinlich
auch keine 60Hz weil man das nachleuchten des TFTs dann ja nutzen kann
um speed zu sparen.

Gruß
Rrne

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ein TFT-Display muss mit seiner nativen Auflösung angesteuert werden,
ein VGA-Signal kann nicht auf einem XGA-Display ausgegeben werden,
sofern nicht sehr aufwendige Skalierungselektronik verwendet wird, die
die geringere Auflösung entsprechend "hochrechnet".

In TFT-Monitoren mit analogem Anschluss sind derartige Elektroniken
integriert, in nackten TFT-Panels hingegen nicht.

Allerdings hast Du recht, der Hans schrieb tatsächlich, daß er einen
kompletten Monitor hat, und der kann auch VGA-Auflösung (640x480)
oder SVGA-Auflösung (800x600) darstellen.

Nur:
Warum eine beschissene Bildqualität für einen digitalen
"Bilderrahmen" verwenden? Darauf werden schließlich Standbilder
angezeigt; warum sollte man die künstlich schlecht machen?

Um den genannten XGA-Monitor anzusteuern, muss "nur" ein analoges
Signal mit XGA-Timing (eben 1024x768 bei 60 Hz) erzeugt werden, das
aber resultiert in einem höheren Pixeltakt als der für die direkte
Ansteuerung des Displays erforderliche, weil das XGA-Timing
röhrenkonform noch Austastlücken etc. enthält.

Demzufolge wird der Pixeltakt irgendwo zwischen 50 und 60 MHz liegen.

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.