Hilfe bei Timings erstellen vom Datenblatt des Displays

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Ich möchte gern ein altes Display 7 Zoll mit 800x480 Pixeln via DPI24 an den GPIO Pins betreiben.

    Raspberry 3B 1.2


    Wie erstelle ich nun die hdmi-timings mit den Daten des Datenblatts des Display?


    Gibt es da eine Anleitung? Ich habe den DPI Calculator von hier

    https://nerdhut.de/software/raspberry-pi-dpi-calculator/

    benutzt, aber der Screen bleibt schwarz.


    Meine ermittelten Testwerte , die nicht laufen sind diese:

    Wie ermittele ich die H und V Duration Werte?

    Irgendwie mache ich hier alles falsch oder?

    Kann mir jemand auf die Sprünge helfen?

  • Ich habe ja noch das Formike 480x272 4,3 Zoll Display laufen.

    Für das habe ich eine Anleitung und die Parameter im Netz gefunden.

    Ich habe meine Einträge in der config.txt mir dem Datenblatt verglichen.


    Doch auch hier finde ich nicht einen Wert aus dem Datenblatt in den Timing

    Daten der "config.txt" wieder.

    In der Config steht das hier, was auch funktioniert:

    Im Datenblatt ist die Frequenz mit 9 MHz angegeben. In der config.txt stehen 32 MHz?

    Auch Front Porch und Back Porch-Daten sind ganz andere?


    Wie wird das denn nun umgerechnet?

    Wo steht was dazu zum lesen?


    Hier habe ich endlich ein wenig gefunden:

    https://forums.raspberrypi.com/viewtopic.php?t=287902

  • Hi Konfusius,


    Solche Displays kannst Du nicht direkt an den GPIO-Pins betreiben! Die sind dafür zu träge. Die einzigen GPIO-Displays sind welche, die den SPI-Bus benutzen, aber das ist bei Deinen beiden Exemplaren nicht der Fall. Die haben wegen der beschränkten Geschwindidgkeit des SPI-Busses meist auch nur geringe Auflösungen bis maximal(?) 480x272.


    Grundsätzlich ist die Pixelclock die Größe, die die maximale Auflösung bei einer bestimmten Bildwiederholrate (fps) bestimmt:

    pixelclock = Bruttoauflösung horizontal * Bruttoauflösung vertikal * Bildwiederholrate

    Bruttoauflösung = sichtbare Auflösung + Blanking

    Blanking = front porch (vordere Austastlücke)+ sync width (Synchronisationsimpuls) + back porch (hintere Austastlücke)


    Ein Rechner für die VESA-Standard-Videotimings befindet sich unter

    https://tomverbeure.github.io/video_timings_calculator

    Dies ist schon mal ein guter Anhaltspunkt (Daumenwert) für die Länge des Blankings, auch wenn sich nicht alle Displays danach richten...


    für 800x480@60Hz ergeben sich lt. obigen Rechner folgende Standardwerte (CVT):

    horizontales Blanking (H Blank) = 192 (pixel)

    H Front Porch = 24 (pixel)

    H Sync Width = 72 (pixel)

    H Back Porch = 96 (pixel)


    V Blank = 20 (lines)

    V Front Porch = 3 (lines)

    V Sync Width = 7 (lines)

    V Back Porch =10 (lines)


    Pixelclock = (800 + 24 +72 + 96) * (480 + 3 + 7 + 10) * 60 = 29.760.000


    EDIT:
    Dies resultiert in folgenden Videotiming-Zeilen in der /boot/config.txt:

    entweder hdmi_cvt oder hdmi_timings, nicht beides gleichzeitig!

    Code
    # hdmi_cvt (standard CVT):
    hdmi_cvt=800 480 60 6 0 0 0
    
    # set up the size to 800x480 (standard CVT):
    hdmi_timings=800 0 24 72 96    480 0 3 7 10    0 0 0 60 0 29760000 6

    Quelle:

    hdmi_cvt: https://www.raspberrypi.com/do…nfig_txt.html#custom-mode

    hdmi_timings: https://www.raspberrypi.com/do…fig_txt.html#hdmi_timings

  • Nur mal so zum Reinlesen: Anschluss Deiner Displays -- Achtung: nicht verifiziert!


    Das habe ich jetzt nicht im Detail verifiziert, aber vermutlich benötigst Du zum Anschluss dieser Displays einen TFP401 (TMDS DVI receiver/deserializer & Panelbus™ integrated circuit) oder etwas Artverwandtes!


    Soll keine Werbung sein, aber von adafruit gibt es Boards mit diesem Baustein:

    https://www.adafruit.com/product/2218 (ohne Touch)

    https://www.adafruit.com/product/2219 (mit Touch)


    Dann ist auch nicht sicher, dass das Flachbandkabel des Displays mit der Steckerbelegung am adafruit-Board kompatibel ist.


    Ferner ist zu klären, ob Deine Displays LV-TTL (eine Signalleitung pro Farbbit, gegen Masse/GND) oder LVDS/oLDI (differentielle Signale, TFP401) nutzen.


    Viel Spaß und vor allem Erfolg,
    schlizbäda

  • Danke für die Hinweise!

    Den Adapter für das Display habe ich selbst gelötet. Der passte. Die Belegung von dem Ding ist etwas eigen, aber mit Datenblatt kein Problem.

    Einer von meinen Raspis hat wohl einen Fehler. Nachdem ich alles zig Mal durchgegangen bin, habe ich heute den exakt selben Raspi

    wie vor 2 Jahren genommen, wo das Display ja schon mit lief, wie ich schrieb.

    Und damit ging das auf Anhieb. Der neuere läuft damit nicht.

    Nur jetzt habe ich die Parameter aus dem Datenblatt genau umgesetzt, Dank Eurer Hilfe hier und im englischsprachigem Bereich.

    Dieses Display läuft nur mit RGB888, die anderen beiden, die ich habe, wohl auch mit RGB666.

    Ich muss das noch eingrenzen, was da genau defekt ist.


    Das Bild steht noch Kopf, da muss ich noch lesen, wie das in Bullseye mit dem neuen Grafiktreiber gemacht wird, das umzudrehen.

    Hier noch die Daten in der config.txt:

    Code
    dtoverlay=vc4-kms-dpi-generic          
    dtparam=clock-frequency=24500000  
    dtparam=rgb888
    dtparam=hactive=800,hfp=8,hsync=48,hbp=16
    dtparam=vactive=480,vfp=5,vsync=3,vbp=8
    #dtparam=hsync-invert,vsync-invert

    Das sollte nun passen. Sind die selben Daten wie oben.

  • Nur weil's mich interessiert:

    * Mit welchem Protokoll werden jetzt hier die Videodaten übertragen?

    * Welche GPIO-Pins sind beteiligt?

    * Was muss man sonst noch wissen?


    Ansonsten: TOP Arbeit, was Du da abgeliefert hast. Dieser Thread könnte so eine richtige Forumsperle werden...

  • Das läuft jetzt mit den neuen KMS Treibern in Bullseye.

    27 GPIOS gehen dabei drauf. RGB888 , 8 bit pro Farbe und die Steuerleitungen.

    Allerdings geht das im Augenblick nur mit der 32 Bit Version von Bullseye. Mit der 64 Bit will das noch nicht.

    Da werden die GPIOs nicht auf die LCD Funktion umgeschaltet und bleiben auf "Input".

    Im Englischen Bereich ist aber einer der Entwickler mit dabei gewesen, das wird also bestimmt bald gefixt.

    Daran habe ich Tage gehangen, das festzustellen.

    Hier mal der Link dahin:

    https://forums.raspberrypi.com…ic.php?p=2072910#p2072910


    Die Belegung des Selbstbauadapters kann jeder von mir als Tabelle bekommen, falls Bedarf besteht.

    Das habe ich abgeheftet....