www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timings fuer TFT


Autor: Ronald M. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keiner einen Tipp fuer mich?

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Ronald M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)?

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Polarität der Sync-Signale beachtet?

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja HSYNC mal auf 3,3 V stellen und sehen, obs geht.

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die untere Displayhälte funktioniert wohl problemlos?
Hast du mal was anderes ausgegeben, als senkrechte Striche - mal einen 
Farbverlauf getestet?

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also rutscht das Bild immer hoch und runter. Gibst du VSYNC aus? Oder 
machst du das jetzt mit DE?

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich mach das mit DE, VSYNC und HSYNC sind nicht angeschlossen

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aber stimmt das bild springt quasi hoch und runter jeweils ueber die 
haelfte des bildschrims

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wobei dabei auch bei der oberen haelfte (also das huepfende bild) die 
farben vertausch sind, also die weissen balken schwarz und anders herum.

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ah okay.
wie muss ich das machen? an den einstellungen zu verticak back und front 
porch?

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wieso genau 1145 us?

danke

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, wo kommt denn dein DE-Signal her? Kommt es aus dem LCD-Controller? 
Dann musst du das dort irgendwie einstellen.

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
muessten es nicht 156 ns  320  240 = 12 ms sein?

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aber wie kommst du auf die berechneten werte?
koenntest du mal den verlauf des den signals darlegen? am besten mit 
pulsdauerberechnuung

danke

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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,

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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/8cbb...

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.

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Miss doch mal das DE mit dem Oszilloskop nach und schaue was da raus 
kommt.

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stell das mal auf 1,432080 ms, die 1,2 ms sind wohl etwas kurz.

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Werte muss ich denn fuer vertical front/back porch und vert. sync 
pulse width einstellen um an deine Zeit zu kommen?

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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.

Autor: Stefan Helmert (Firma: dm2sh) (stefan_helmert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es geht, mach doch mal Fotos von deinem Aufbau und ein Video von 
dem flackendem Display.

Autor: Ronald M. (Gast) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.