Moechte ein LCD TFT (QVGA 320*240, 16 Bit Farbtiefe) mit einem LCD
Controller meines ARM9 ansprechen. Das TFT verfügt ueber einen 18 Bit
RGB Anschluss. Also 18 Datenpins(jeweils 6 fuer rot, gruen, blau)
ausserdem ueber einen DataEnable und einen DataClock Pin.
Bei TFTs dieser Art muessen ja folgende Werte aus dem Datasheet
entnommen und im Controller justiert werden: Framerate (=60Hz),
Pixeltakt (=6,4MHzund die Werte jeweils fuer hor. und vertikales Timing:
Frontporch, Backporch, Pulsewidth
Ich bin mir allerdings nicht sicher inwiefern diese Werte dem
beiliegenden Datasheet zu entnehmen sind...
Danke fuer Die Hilfe!
Hallo,
bist du dir ganz sicher, dass beides kompatibel ist?
Wenn ja, evtl. musst du nicht nur den LCD-Controller des ARM einstellen
(timings), sondern auch das TFT selbst (Helligkeit, Kontrast,
Farbwertkorrektur,...).
Diese timing-Sachen "Frontporch, Backporch, Pulsewidth" sind oft
ziemlich standardisiert, also wenn das nicht im Datenblatt steht (was es
aber sollte), dann probier einfach die Werte aus einem Datenblatt eines
vergleichbaren TFT oder die nach dem VGA Standard skalieren. Solange du
den Pixeltakt nicht ganz ausschaltest, geht das Display auch nicht
kaputt. Also probier einfach mal.
Vielleicht hilft dir dieser kleine Auszug im Anhang weiter, trotz dass
deine Auflösung nicht dabei ist.
Hi!
ja also kompatibel ist beides.
Inzwischen konnte ich auch immerhin schon ein Bild anzeigen (vertikale
s/w streifen) allerdings flackert in der oberen haelfte das bild.
Das display hat auch einen VSYNC und HSYNC Eingang und kann in beiden
Modi DE (Dataenable also ohne V/HSYNC) und eben SYNC modus betrieben
werden.
Allerdings steht im Datasheet nix wie ein Modus selektiert werden kann.
Hab die beiden SYNC eingaenge mal pullup/pulldown hilft aber nix.
So kann ja nun eig, nur noch eine Frage des Timings (also pulsewidth,
und der porches sein) oder (siehe Datenblatt im Anhang im ersten post)?
Also wenn die obere Bildhälfte flackert, dann haut was mit VSYNC nicht
hin.
Ich denke, dass der DE mode nur das HSYNC ersetzen kann. Im Diagramm ist
aufgezeichnet, dass beide 1 sind, wenn Inhalt dargestellt wird, also
wird man den jeweils anderen 1 lassen müssen, je nach dem welchen mode
man verwenden will.
Zitat: "Also wenn die obere Bildhälfte flackert, dann haut was mit VSYNC
nicht
hin.
Ich denke, dass der DE mode nur das HSYNC ersetzen kann. Im Diagramm ist
aufgezeichnet, dass beide 1 sind, wenn Inhalt dargestellt wird, also
wird man den jeweils anderen 1 lassen müssen, je nach dem welchen mode
man verwenden will."
Hm ist das nicht eigenartig eine Mischung aus SYNC und DE Mode? Aber Ok.
Nur wie meinst du das genau mit den einen 1 lassen, ich wuerde das LCD
gern im DE Mode betreiben.
Du meinst dann also VSYNC trotzdem verbinden und HYSNC mit Pullup gegen
3,3V?
HAb ich dich da richtig verstanden?
Zitat: "Polarität der Sync-Signale beachtet?"
Auch wenn das im DE Mode eigentlich egal sein sollte, sollten die beide
laut Diagramm im Anahng im ersten Postring invertiert seinn?!
Danke
hilft leider nix. scheint doch ein problem mit den timings / porches zu
sein oder eine polaritaet ist falsch.
auf anfrage beim displayhersteller wurde gesagt dass das disoplay im
de-mode ist wenn hsync und vsync offen sind.
Bei der Ausgabe von vertikalen schwarz-weiss streifen wird die untere
Haelfte angezeigt (die obere wohl auch) aber die obere haelfte des
displays flackert und wabert.
bei der ausgabe von horizontalen streifen flackert das ganze bild.
beim ausgeben eines komplett schwarzen schirms flackert die obere
haelfte
Nur wie geht das mit der vertikalen Synchronisation, wenn nur DE
verwendet wird? Man muss doch über DE irgendwie nicht nur das
Zeilenende, sondern auch das Bildende angeben - wahrscheinlich, wenn für
mehrere Zeilen DE aus bleibt?
Hast du beachtet, dass da nicht nur links und rechts ein "porch"
hingehört, sondern auch oben und unten?
Also das Display verfuegt nur ueber einen DE und Clock anschluss es
erzeugt also die V/H Syncs intern.
Ja dafuer gibts ja horizontal und vertical front/back porches.
Das Display weiss ja wie breit und hoch es ist und kann somit die
Clocktakte mitzaehlen und die noetigen syncs erzeugen. Aber habe
immernoch das beschrieben problem.
Also, du hast DE für 68 CLK-Zyklen auf low, danach high für alle 320
Bildpunkte (320 Zyklen). Wenn sich das ganze 240 mal ereignet hat, dann
legst du DE für die Dauer von 18 Zeilen auf low?
ich weiss nicht wie das display aus dem DE Signal genau die V/H Syncs
erzeugt.
Das DE Signal ist aber ein periodisches Signal bei mir mit 50 us high
pegel.
Die 50 µs stimmen schon mal (49,92 µs). Nun solltest du aber versuchen
darüber das Display auch noch vertikal zu synchronisieren, in dem du es
1145,664 µs lang auf low belässt, um ein neues Bild zu beginnen.
Nein, das ist die Zeit in der Daten an das Display gesendet werden (pro
Bild). Die Zeit, die ich genannt hatte, ist die V-Sync-Zeit, daran
erkennt das Display, dass es sich um ein V-Sync handelt, schließlich
musst du jetzt H-Sync und V-Sync gemeinsam über DE übertragen und das
Aussehen beider Signale unterscheidet sich nun mal in der Dauer, sonst
wüsste das Display ja nicht, ob das nun V-Sync oder H-Sync ist.
50 us ist klar ist fuer die zeilen syncronisation und kommt von:
320 mal 1/clock = 320 mal 156 ns
die andere zeit zur vsync?
die frage ist halt nun auch wie ich diese aus dem lcd datenblatt
entnehme. weil je nach lcd muessen die evlt anders sein denk ich,
Also, ich habe die Werte: 156 408 18 gerechnet (7344 Zyklen), da
kommen die 1145 us raus. So lange muss das Signal auf low sein. Dann
geht es auf high für 320 Zyklen (50µs), wo eine Zeile übertragen wird.
Danach kommt wieder low für 88 Zyklen (13,728 µs), was den backporch
dieser Zeile und den frontporch der nächsten enthält. Dann kommt die
nächste Zeile mit high für wieder 320 Zyklen. usw. bis man alle 240
Zeilen geschrieben hat. Danach kommt der lange low des DE, dessen Dauer
aber scheinbar nicht sonderlich kritisch ist, Hauptsache es sind mehrere
Zeilen, evtl. ist das Minimum 408 * 22,5 Zyklen und das Maximum 408 *
72,5 Zyklen. Die 408 * 18 sind wohl doch etwas zu gering gewählt (ist
eine andere Zeit). Aber probier das erst mal so.
Aja okay klingt einleuchtend und logisch.
Allerdings hab ich eine andere Herangehensweise genutzt (basierend auf
folgendem guten Tutorial:
http://www.sharpsma.com/Page.aspx/americas/en/8cbb0ad8-b24a-41c7-8d13-2ddcec863c84/LCD_Reference_Information/
Dort der Link "Interfacing LCD Panels to Microcontrollers" unter WHITE
PAPERS.
Um nun meinem Mikrocontroller beizubringen das richtige Dataenable
Signal auszugeben muss dieser mit VSPW (vertical sync pulse width), VBPD
(vertical back porch) und VFPD (vertical front porch) konfiguriert
werden. Analog HSPW, HBPW und HFPW. Hierfuer entnimmt man dem Datenblatt
des Displays, meiner Meinung:
VSPW: 3
VBPW: 18 - 3 = 15
VFPW: 262.5 - 240 - 15 = 5
Und Analog fuer:
HSPW: 30
HBPW: 68-30 = 38
HFPW: 408-320-68 = 20
Weiterhin muss angegeben werden die Polaritaet:
- Uebernahme der Daten at Dataclock rising edge
- Data normal (not inv)
- Data Enable normal (not inv)
Hab nat auch schonmal mit VSPW, VBPW und VFPW gespielt aber nix
geaendert...
Das sind nun die Daten (basieren auf dem obigen Tutorial und dem
Datenblatt) die fuer mich auch aufgrund deiner Erklaerung logisch
erscheinen, aber der komische Effekt auftritt.
Jo schon gemacht.
Also der Verlauf fuer die hor. Sync schaut gut aus: 50us high dann low.
Das ganze wiederholt sich eben fuer alle Zeilen des Displays.
Dann kommt der lange low-Pegel (zustaendig fuer die vertikale Sync) und
zwar 1,2ms.
Ist nun halt die Frage wie lange der vertikale low-Pegel low sein muss.
Dessen falscher Wert ist wohl fuer den Bildfehler und das Flackern
verantwortlich vermute ich.
Beeinflussen kann ich die Dauer des langen low-Pegels (vert. Sync) durch
die Angaben VSPW, VFPW und VBPW in den Registern des LCD Controllers.
Dabei sollte ja eigentlich die Verteilung egal sein, es muss nur die
Gesamtsumme stimmen?
>Dann kommt der lange low-Pegel (zustaendig fuer die vertikale Sync) und>zwar 1,2ms.
Mit deiner gewählten Einstellung müssten es schon 1,4 ms sein!
Ansonsten probier mal einen längeren frontporch.
ok getestet leider keine grossen Aenderungen.
Es flackert zwar etwas anders, aber immernoch gleiches Problem:
Obere Haelfte des Bildschirms flackert bei der Darstellung eines Bilds
mit s/w vertikalen Streifen.
Bei hor. Streifen is das ganze Bild verwischt/flackert.