Hallo zusammen, ich habe hier einige 640x480 TFT-Displays mit angehängtem Timing (25 MHz Takt, Pixeldaten für die Farben und Enab High bei sichtbaren Pixeln). Gibt es ein preiswertes Demoboard, mit dem sich diese TFT ansteuern lassen? Es reicht ein Terminalmodus ohne Grafik, ein Bit pro Farbe wäre gut. Mit einem ATMega644 bekomme ich eine Art Testbild hin, allerdings scheint der Prozessor mit 25 MHz bei 3,3 V immer mal abzustürzen. Mit dem halben Takt ist das Timing wohl kaum hinzubekommen. Den Propeller habe ich mir mal angeschaut, habe aber keine Möglichkeit gefunden, neben dem von VGA abweichenden Timing auch noch die 25 MHz Takt auszugeben. Gibt es ein zu den TFT passendes Demoprogramm? Ein LPCXpresso 1769 hätte ich noch da, habe mich da aber noch nicht sehr eingearbeitet. Könnte man dort SSP0/1 als Schieberegister für die Pixel benutzen? Danke schon mal für jeden Tipp. Holger
Holger schrieb: > Mit > dem halben Takt ist das Timing wohl kaum hinzubekommen. Doch, das kannst Du machen. 30Hz refresh-Rate sind am unteren Rand, aber sollten bei schwarz-weiss-Anzeige noch nicht flimmern. Ferner kannst Du Dir die 'front porch' Pixel/Zeilen für H-sync und V-sync sparen, die zumeist nur aus Kompatibilitätsgründen zu TV-Signalen angegeben sind. Wichtig ist die Länge der Sync-Impulse und die anschließenden Zeiten, bis das aktive Bild kommt. Bei meinen Versuchen mit dem STM32F407 Discovery Board komme ich auf 180fps bei 272x480 und 64 Farben. Abgemagert auf s/w bei VGA Größe sollte er das Timing aus Deinem Datenblatt locker schaffen. Als Bildspeicher dient das interne RAM, was unschlagbar schnell ist. http://www.mino-elektronik.de/TFT-direct-drive/TFT-direct-drive.htm
Holger schrieb: > ich habe hier einige 640x480 TFT-Displays Naja, denk doch erstmal nach: Was willst du damit wirklich machen? Bei einem bunten Display würde ich auch gern eine bunte Anzeige haben und wenn es ein Grafikdisplay ist, dann auch Grafik, genauer: bunte Grafik. Aber dazu braucht es einen RAM, wo man das Bild aufbauen kann. Zumeist haben solche Displays 18 oder gar 24 Bit Farbe. Damit es nicht allzu mickrig aussieht, wären 16 Bit Farbe das Minimum und nun kannst du dich entscheiden, ob du direkt (16 Bit pro Pixel) oder per Palette (256 Paletteneinträge = Farbvarianten) und nur 8 Bit pro Pixel dir gönnen willst. Für 640x480 brauchst du ca. 300 K Byte bzw. bei 16 Bit das Doppelte und die mußt du erstmal irgendwo herbekommen und mit deinem uC ansprechen können. Das nächstbeste gerade so passende RAM ist 512K * 16 Bit statisch, 10..15 ns. Aber du brauchst eben dazu entweder einen uC, der die TFT-Ansteuerung schon eingebaut hat oder du mußt dir einen passenden Controller besorgen oder aus einem CPLD selber machen. Die letztere Variante wäre eigentlich die lehrreichste. Also, denk erstmal über die grundlegenden Realisierungschancen nach. W.S.
W.S. schrieb: > Naja, denk doch erstmal nach: > Was willst du damit wirklich machen? Holger schrieb: > Es reicht ein Terminalmodus ohne Grafik, ein Bit pro Farbe wäre > gut. Ich denke, er hat nachgedacht und auch geschrieben, was er will. Wenn jemand Fahrrad fahren möchte, muß man ihm doch kein Auto aufzwingen. Alles unter 16 bit/pixel als mickrig abzustempeln, ist mir ein wenig hochnäsig. Ein leichter Blick von oben, unten oder einer Seite, läßt die schönsten Farben der Welt auf den gebräuchlichen TFTs zu Fehlfarben abdriften. Aus Jux habe ich mal einen 16 bit/pixel Testaufbau (RX210) gemacht. Meines Erachtens lohnt das nicht. Da nutze ich den Speicher doch besser für zwei Grafikseiten mit je 8 bit/pixel. Für Bedienteile/Steuerungen reichen 16 - 64 Farben locker und brauchen erheblich weniger RAM.
Richtig, ich suche nach einer möglichst einfachen Lösung, die TFT als Terminal, beispielsweise an einem Carambola zu nutzen. Auch 20 Zeichen bei 10 Zeilen wären o.k. Und es sollten nur wenige IC auf einer Lochrasterplatte sein. Wie schon oben geschrieben, Propeller wäre gut, mir fehlt aber der Überblick, ob das benötigte Timing damit überhaupt machbar ist. Beim ATmega kenne ich mich mit C leidlich aus, damit wird das Timing aber nicht machbar sein. Ich werde wohl mal versuchen, ein Testbild mit dem LPCXpresso hinzukriegen und dann schauen, ob es sich für mich lohnt weiter zu machen. Danke für die Beiträge. Holger
Holger schrieb: > Auch 20 Zeichen > bei 10 Zeilen wären o.k. Das ist nun sehr ungeschickt! Um eine Zeile mit 20 großen Zeichen zu beschreiben müßte die Zeichengröße auf einem VGA 32x64 sein, wobei dann 10 Zeilen möglich sind, wenn man den Zeichensatz auf 32x48 staucht (keine Unterlängen, keine Grafik). Per Hardware kann man die Pixelbreite aufpusten, indem pro Pixel entsprechend viele CLK-Impulse ausgegeben werden. Die Pixelhöhe kann man aber nur durch Wiederholung der ganzen Zeile erreichen. Bleibt man bei 1 bit/pixel, braucht ein vergleichsweise langsamer AVR recht lange, ein einzelnes Zeichen zu zeichnen. > Ich werde wohl mal versuchen, ein Testbild mit dem LPCXpresso Für ein s/w-Bild werden 640x480/8 = 38400 Byte möglichst an einem Stück und auf jeden Fall per DMA erreichbar benötigt. Auf den ersten Blick überschaue ich nicht, welches RAM der DMA-Controller beim LPC1769 adressieren kann; er bietet aber nur 32kB am Stück. Unter Umständen wird also noch zusätzliches RAM gebraucht. Wenn es einfach bleiben soll, wäre ein separater Displaycontroller (z.B. S1D13705) wohl die bessere Wahl.
Hallo zusammen, da wie man sieht diese Beiträge nicht weiter kommentiert werden, mein Anliegen dem Titel entspricht und ich nicht unnötiger Weise ein weiteren Thread eröffnen möchte, greife ich diesen hier noch einmal auf :) Ich habe zu meinem Display 2 Fragen bei denen ich mir in der Realisierung noch etwas unsicher bin. Ich besitze ein Display (von Reichelt gekauft, Datenblatt siehe Anhang) - TFT-Display 14,5cm (5,7) ohne Touch Panel, 640x480 VGA Ansteuerung erfolgt über das SPARTAN 3 Board von Digilent! Laut Angaben besitzt dieses Display einen integrierten LED Treiber! Gefordert werden 30V bei konstant 40mA (siehe Pic1) Weiter hinten im Datenblatt (S. 12) steht dann nun unter Interface Signals Folgendes (Siehe Pic2). Siehe auch pic3! PIN35 NON CONNECTION -> USING INTERNAL LED DRIVER ANODE -> USING EXTERNAL LED DRIVER PIN36 ......... Also zu meiner Frage zurück: Versteh ich das richtig, das die 30V bei konstant 40mA nur für den externen LED Treiber gültig sind? D.h. wenn ich mir das leben einfach machen möchte und den internen LED Treiber benutze, lass ich Pin 35 offen und steuere Pin 36 mit 0V-2,5V an. Mich verunsichert dabei etwas die Tabelle (pic3). Bedeutet das, dass wenn ich auf Pin 26 0V (also GND) lege meine Backlight am hellsten strahlt ? Weil so wie ich das verstehe wird der PIN 36 (LEDCNTRL) ja mittels einer Spannungsquelle und nicht wie bei LEDs üblich mit einer Stromquelle versorgt. MfG
Auf die Rückseite des Displays ist eine kleine Platine geklebt, die schon den Spannungswandler für die Hintergrundbeleuchtung enthält. Lege einfach Deine Steuerspannung (0 - 2,5V) an Pin36; mehr ist nicht zu machen!
vielen Dank für die schnelle antwort. da ich nur 3,3V VCC am Board habe sollte doch ein 1k Vorwiderstand vorerst genügen um unterhalb von 2,5V zu kommen oder? kenn ja leider nicht die restliche Impedanz . MfG
Ramon F. schrieb: > kenn ja leider nicht die restliche Impedanz . Die kenne ich auch nicht, aber "hochohmig" würde es hinreichend beschreiben. Eine große Zeitkonstante hat der Steuereingang auch noch, sodass man direkt per PWM ansteuern kann. Noch etwas: nimm am besten einen pullup-Widerstand und schalte die Hintergrundbeleuchtung aktiv mit einem Portpin ein. Andernfalls kann/könnte das Display beim Einschalten aufblitzen. Das wollen Wir doch nicht?
Stimmt das wollen wir nicht :) würde es auch ein stinknormaler Spannungsteiler tun? 3,3V | | | | 1k | | | |------------- Pin 36 | | | 1k | | | | - GND MfG
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.