Eingebettetes Linux-LCD nicht kalibriert

7

Ich habe ein neues LCD an mein eingebettetes Linux-Gerät angeschlossen und als ich das System ausführte, stellte ich fest, dass es nach rechts verschoben ist. (Die Anzeige beginnt in der Mitte des LCD)

Ich habe 2 Frame Buffer-Treiber unter dem Linux-Kernel-Treiber gefunden und in folgenden Bereichen geändert:

#ifdef CONFIG_TOPPOLY_TD035TTEA3_320X240
        hsync_len   :  64, 
        vsync_len    :  6,
        left_margin :  125, 
        upper_margin :  70,
        right_margin:  115,  
        lower_margin :  36,
        sync:        0,        
        cmap_static:    0,        
#endif

Aber das Problem ist immer noch da. Was sollte ich tun?

gsk
quelle

Antworten:

1

Bevor Sie Werte in den Kernel codieren, testen Sie sie interaktiv mit fbset. Möglicherweise können Sie die Bedienfeldparameter auf diese Weise in der Produktion aus dem Benutzerbereich heraus festlegen, aber viele Entwickler müssen den Bildschirm frühzeitig beim Booten einschalten.

Um diese bekannten guten Werte frühzeitig festzulegen, können Sie sie in den Kernel einfügen. Wenn die Werte, die Sie in den Kernel einfügen, nicht wirksam zu werden scheinen, ändern Sie möglicherweise nicht die richtige Beschreibung des Bildpuffers für Ihr Gerät. Ich füge häufig einen Syntaxfehler in den Code ein und überprüfe, ob er nicht kompiliert werden kann. Wenn der Compiler meinen Fehler ignoriert, weiß ich, dass der Codeblock durch die Konfiguration deaktiviert ist.

Wenn Sie keine funktionierenden Einstellungen finden, überprüfen Sie das Datenblatt für das Bedienfeld und den LCD-Controller in Ihrem Chip, um sicherzustellen, dass beide kompatible Timings haben.

Adrian Cox
quelle