Forum: Mikrocontroller und Digitale Elektronik tft als digitaler bilderrahmen


von aep (Gast)


Lesenswert?

hi,
{kurzform unten}

also ich habe hier einige alte laptop tfts. datenblätter vorhanden.
so ein teil am vesa bus einer graphikkarte anzuschliesen ist keine 
kunst. ich will daraus allerdings einen digitalen bilderrahmen machen.
zuerst hatte ich das alte laptop board verwended und per diskette 
(sollte mal flash werden) ein minimal linux draufgezogen was per 
seriellport ein bitmap empfängt. leider wird der 486 sauwarm, aber das 
gröste probleme ist das bios welches ab und zu tastatureingaben will.

Also war meine idee das ganze mit einem microcontroller zu versuchen. 
hab auch bereits einige interesante sachen gefunden, leider kann ich 
kein smd und erst recht kein 0,5mm löten ;)

die atmegas sehen leicht zu programieren aus, aber mit der hardware hab 
ichs nicht so. mein vorschlag wäre daraus ein projekt zu machen, mit 
howto unbd offenen quellen damit auch andere davon was haben. sowas ist 
ein tolles weihnachstgeschenk ;)

{kurzform}
prinizpiell würde mir auch eine idee reichen, wie man mit einem avr vesa 
hinbekommt ohne dabei hardcore 0.5 mm löten zu müssen,


gruß,
Arvid

von Daniel M. (usul27)


Lesenswert?

Kurzantwort: Für einen ATMega ist das mindestens eine Nummer zu gross.

von aep (Gast)


Lesenswert?

also ich stell mir vor der muss ja eigentlich nur 1 mal die sekunde das 
bild erneuern. also püraktisch darf er dann nicht län ger als eine 
sekunde brauchen um 640xwasweiich bildpunkte aus einem speicher zu lesen 
und auszugeben. dazwischen eben noch bisl vertrefresh und hsync, mehr 
ist vesa doch gar nicht oder?

von Thomas (Gast)


Lesenswert?

nein mehr ist das wirklich nicht. Kanst das ja mal probieren.

Thomas

von mr.chip (Gast)


Lesenswert?

Hallo

Rechne mal aus, wie viele Punkte das sind. 640 x 480 = 307200 Punkte. 
Vermutlich nicht schwarzweiss, sondern dreifarbig. Bei 24 Bit bereits 
921600 Bytes. Ein AVR schafft maximal 20 MHz, hätte also noch 20 
Befehle, um ein Byte aus dem Speicher zu holen. Das ist machbar, aber es 
bleiben kaum Reserven für etwas anders übrig.

Der Haken an der Sache: Es gibt keinen AVR mit fast einem Megabyte RAM. 
Externes RAM wäre eine Möglichkeit, aber da habe ich grösste Zweifel, ob 
du das mit 20 Befehlen ansteuern kannst.

Mit viel externer Logik eventuell knapp machbar, ansonsten aber 
sicherlich nicht.

Gruss

Michael

von aep (Gast)


Lesenswert?

die dinger können echt 20Mhz?, das ist mehr als das orginal x86 board!

ich dachte hierbei natürlich nicht nur an einen atmega.
einer zb um die bildpunkte an das display zu senden, ein zweiter um die 
daten für die punkte zu liefern.
habe jetzt einen avr butterfly vor mir und finde der ist extrem einfach 
im umgang. (nachdem man den seriellport drangefummelt hatt :D )


wenn ein atmega das nicht aushält was würded ihr dann empfehlen?

von Benedikt K. (benedikt)


Lesenswert?

Kleiner Tip: Schaut mal ins Datenblatt der TFTs.
Da steht dann was von Framerate min 60Hz oder so

60Hz*921600=55,3MByte/s...

Kauf dir einen S1D13504, den gibts z.B. bei CSD für 15€. Da 2MB DRAM 
dran und fertig ist der TFT Controller bis 800x600

von aep (Gast)


Lesenswert?

ich kann aber kein 0.5mm löten , sonst hätt ich den längst genommen.
aber es scheint ihr habt recht, das ist zuviel für den atmega.

möglicherweise ist ja ein hardcore elektroniker unter euch der den chip 
für mich drauflöten könnte? oder kennt jemand platinen wo sowas schon 
gelöst ist?
im übrigen kann ich gar kein smd löten und keine platinen ätzen, also 
selbst der dram sollte ein problem für mich sein. einen flash zum bild 
speichern kriegt man ja notfals noch als nicht-smd

von Benedikt K. (benedikt)


Lesenswert?

Der S1D13504 hat 0,4mm... Das ist sogar für mich schwer zu löten auf 
einer selbst geätzen Platine.

Wenn dir ein einzelnes Bild ausreicht, dann könnte man es mit 3x 
512kByte Flash EPROMs machen (je einen pro Farbe): Diese gibt es mit 
70ns Zugriffszeit also maximal etwa 15MByte/s. Das ergibt etwa 40Hz, ist 
zwar etwas wenig aber noch gerade so OK. 30Hz würde ich als absolute 
Untergrenze ansetzen.

Die Sync Signale und den Adresszähler könnte man mit ein paar HCMOS ICs 
oder einem CPLD erzeugen.

von aep (Gast)


Lesenswert?

klingt gut.
könntest du mir bitte konkrete bauteile nennnen? es ist schwer 
spezifikationen zu finden wenn man keine ahnung hat.

also soweit ich das verstanden habe war deine idee einfach zyklisch die 
drei speicher auszulesen nach informationen über einen konkreten 
bildpunkt.
ich stell mit das so vor:

R [1,1,0,0,0,0,1 ......
G [0,0,0,1,0,1 ......
B [0,1,1 ......


damit wäre bildpunkt 1 rot, 2 wäre violet, 3 blau, etc...

das würde immerhin eine kombination von 8 verschieden farben erlauben, 
hehe

von Benedikt K. (benedikt)


Lesenswert?

Jain, ich meine für jede Farbe ein 8bit Flash Speicher. Damit wären dann 
16777216 Farben möglich (256 pro Farbe).
Mit einem einzelnen Flash Speicher kann man es auch machen, aber dann 
sind nur 256 Farben möglich.

Was hast du denn für TFTs ?
Haben diese überhaupt ein paralleles Interface ?

von aep (Gast)


Lesenswert?

genau den hab ich http://www.maltepoeggel.de/html/tft2pc/

das ding hätte gerne R/G/B/CLK(irgendwas mit clock, weis noch nicht was 
es genau ist)/HSYNC/VREFRESH

wenn du das meinst mit paralell, ja :)


8bit flash speicher heist, ich sage ihm ich hätte gern das 123te byte 
und es liegen dann an 8 ausgängen entsprechde spannungen an?
ich befürchte das passt nicht mit der logik des bildschirms zusammen, 
der will ja soweit ich das verstanden hab eine spannung von 0-5V auf die 
farbkanäle,je nach intensität.  also ist es wohl doch nicht paralell, 
jetzt bin ich verwirrt

von Michael U. (Gast)


Lesenswert?

Hallo,

wenn es das besagte Display ist: das benutzt jeweils 3 Bit 
Rot/Grün/Blau, kann also 512 verschiedene Farben (exotischer Wert...).
Er benutzt am Vesa sogar nur 16 Farben, Rot/Grün/Blau jeweils an den 
MSB, Intensity an parallen an das "mittlere" Bit von Rot/Grün/Blau.

Als "Bilderrahmen" also zumindest bescheiden. ;)

Gruß aus Berlin
Michael

von aep (Gast)


Lesenswert?

danke für die infos erstmal.
ja klar , ich wollte erstmal nicht übertreiben deswegen dachte ich ein 
kleines altes display tuts für den anfang. auserdem war das datenblatt 
sehr einfach zu bekommen ;)
natürlich würde ich mich freuen wenn es mit mehr farben funktioniert 
(ein anderes display)

von Benedikt K. (benedikt)


Lesenswert?

Die Ansteuerung ist relativ einfach:
Besorg dir einen 16MHz Quarzoszillator, das ist der CLK Takt und der 
Takt für den Synchronzähler (74HC590)
Sind etwa 700 Pixel erreicht (z.B. 512+128+64, diese 3 Teilerausgänge 
UND Verknüpfen und an den Zähler Reset und den Takt des Zeilenzählers 
anschließen.
Für den Zeilenzähler gilt ähnliches: Hat dieser den Wert 512 erreicht -> 
Reset.
H und V Sync erzeugt man aus einigen Signalen des Spalten und 
Zeilenzählers (z.B. solange der Zählerwert <8 ist, ist der Sync Ausgang 
aktiv).

Die Ausgänge des Spalten und Zeilenzählers gehen an den Flash. Dieser 
ist als 1024 Pixel x 512 Zeilen organisiert, von denen aber nur 640x480 
verwendet werden. Je nachdem wo man die 640 Pixel in der Zeile 
positioniert kann man das Bild nach links/rechts verschieben. Dasselbe 
gilt für die Zeilen.

von aep (Gast)


Lesenswert?

meinst du das ist so einfach? woher wies der tft eigentlich die 
auflösung? anhand dessen wann ich die zeile beende?

das einzig schwiriege für mich ist nur noch die elektronik, wiederstände 
und kram hab ich alles nie verstanden. werd mir wohl ein bischen 
literatur anschauen müssen. dann werde ich wieder fragen stellen, weil 
montan hab ich keine ahnung wo anfangen.

danke euch auf jeden fall, va. Benedikt, mit den infos kann ich sehr gut 
was anfangen :)


gruß,
Arvid

von Sebba (Gast)


Lesenswert?

Ich hab da sonst noch ne andere Idee
(WIRKLICH NUR EINE IDEE - kein plan ob das klappt)

Such dir ne ISA Grafikkarte mit VESA Anschluss und lass dein ATMega
die Grafikkarte ansteuern - das packt ein ATMega
(Ich selber hab schon ne NE2000 und ne ISA ISDN Karte an nen ATMega 
geklemmt... klappt)

Soweit ich weiß hast du dann beliebig lange Zeit das Bild aufzubauen da 
die Grafikkarte nen eigenen Speicher hat.

D.h. du kannst dir die Daten seriell holen und Punkt für Punkt im 
Grafikram zusammensetzen.
Und ein 8 Bit ISA Interface is nu echt einfach ;)

Gruß, der Sebba

von Benedikt K. (benedikt)


Lesenswert?

@Sebba
Hast du schonmal eine Grafikkarte angesteuert ?

Im Gegensatz zu Netzwerkkarten wird die Kompatibilität bei Grafikkarten 
durch die in dem VGA BIOS enthaltene Software gemacht. Und die ist für 
einen AVR nicht barauchar.

Ich habe schon oft versucht Grafikkarten anzusteuern, habe das aber noch 
nie geschafft. Insgesamt habe ich bisher nur 2 Projekte gefunden in 
denen das wirklich jemand geschafft hat. Die Software lief dann aber 
auch nur mit einer Grafikkarte.

von aep (Gast)


Lesenswert?

tja das klingt gut, leider lässt sich im internet kaum brauchbarer 
lesestoff über graka interfaces finden. ich denke nicht das man denen 
einfach so daten senden kann, da wird noch eine menge anderes zeug 
drumrum sein. wenn man mal in einen einfachen x86 bootloader wie grub 
schaut stellt man fest das dort alle graphiksachen ans bios gesendet 
werden. was das bios damit macht,.. keine ahnung. der X vesa treiber 
wäre natürlich ein ansatzpunkt, wobei ich mir relativ sicher  bin, das 
dieser noch eine enge am bios hängt.
benedikt, könntest du mir die links mal rüberreichen? evtl lässt sich ja 
eine baugleiche graka bei ebay finden.

greetings,
Arvid

von MisterMime (Gast)


Lesenswert?

Hallo,

Meinst du am Anfang, dass man ein Notebook-TFT an eine normale 
Grafikkarte anschließen kann!?

Wie geht das?

Braucht man dazu nicht einen extra Chip? Ich hab nämlich einen alten 
Laptop, dessen Mainboard beschädigt ist. Der Bildschirm funktioniert 
noch.

von MisterMime (Gast)


Lesenswert?

Jetzt hab ich gesehen, dass es doch möglich ist :) (maltepoeggel.de). 
Hab mir aber gedacht, dass das nicht mit einem VGA-Anschluss möglich 
ist.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Die Frickellösung mit dem VESA-Feature-Connector ist den Aufwand nicht 
wert. Wer will schon eine reine 6-Bit-Darstellung mit grottigsten Farben 
haben?

Außerdem funktioniert der Murks nur mit Standard-VGA-Panels (640x480), 
alles höherauflösende geht eh nicht.

Und: Welche Graphikkarte hat heutzutage noch einen 
VESA-Feature-Connector?


Um TFT-Panels an PCs anzuschließen, sollte man schon eine Elektronik wie 
die hier verwenden:

http://www.aaronn.de/shop/pd-667281847.htm?defaultVariants=search0_EQ_CRTtoLCD-5-LVDS_AND_{EOL}&categoryId=1

(kann bis SXGA ansteuern, also 1280x1024)

Ob der Aufriss allerdings lohnt, steht auf einem anderen Blatt.

von Benedikt K. (benedikt)


Lesenswert?

@rufus
Wie kommst du auf 6bit ?
VESA liefert 8bit, von denen sind aber nur die untersten 4bit brauchbar 
(RGB + Intensity), da die restlichen 240 Farben von der aktuell 
gewählten Farbpalette abhängig sind.

@ aep
Auf http://www.avrfreaks.net/ unter Project ID 118 findet man das. Man 
muss sich aber erst registrieren.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ich nahm zwei je Farbe an; wenn es sogar nur 4 Bit sind, ist das ja noch 
lausiger. Warum sollte man sich sowas antun wollen?



von Benedikt K. (benedikt)


Lesenswert?

Für einen reinen Server (Rechner als Router o.ä.) reicht sowas. 
Eigentlich reichen da sogar 2 Farben.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Da genügt eine Leuchtdiode, die sagt, daß die Kiste an ist ... wobei 
außerhalb lauter Serverräume sogar die weggelassen werden kann.

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.