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
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?
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
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?
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
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
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.
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
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 ?
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
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
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)
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.
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
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
@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.
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
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.
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.
@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.