Samsung SMT-7020s TV-Auflösung

  • Ich bin auch nicht wirklich zufrieden mit der Kiste. Habe die gleichen Probleme wie donulfo. Ausserdem habe ich bei meinem 16:9 Loewe an allen vier Seiten des Bildes einen schwarzen Balken. Die automatische Umschaltung funktioniert weder bei 4:3 noch bei 16:9 Material... mhhhh...

    1.VDR: Yeong-Yang A206, AMD Athlon 700, 320 MB-RAM, 160 GB Samsung SV1604N HD, AOpen DVD-1640 Slot-In, DVB-S rev. 1.5, SkyStar2-DVB, GLCD 128*64 T6963
    LinVDR 0.7 mit VDR 1.4.4-2 (Toxic)
    2.VDR: Samsung SMT-7020S, 1GB Kingston CompactFlash, dets ZenSlack-ISO

  • bigbungle
    hast du den 16:9 Fix angewendet, wie er von mir beschrieben ist. bei mir klappt das wunderbar mit 16:9. Du musst was in der xorg.conf und in der sysconfig vom VDR ändern.


    edit:
    achso, du hast noch das zenslack von det. probier es doch mal det´s debian iso. aber vorsicht, die installation läuft ohne sicherheitsabfrage durch...cd nach der installation wieder aus deinem rechner nehmen!!

    <font color="#0000ff">Gigabyte P35-DS3, Pentium E2140, GT220, 2 x DVB-C im Thermaltake DH101<br>gen2vdr V3 &amp; yaVDR 0.3.0a <br></font>

    Einmal editiert, zuletzt von MChrisZ ()

  • Hey MChrisZ:
    Vielen Dank erstmal. Ja habe noch das Zenslack drauf. Habe ein paar Sachen aus dem zenega-Forum probiert. U.a. das TVout_setup angepasst usw...


    Das debian-iso habe ich noch nicht getestet, werde es morgen abend mal ausprobieren! Dank dir!


    gruß
    Ralph

    1.VDR: Yeong-Yang A206, AMD Athlon 700, 320 MB-RAM, 160 GB Samsung SV1604N HD, AOpen DVD-1640 Slot-In, DVB-S rev. 1.5, SkyStar2-DVB, GLCD 128*64 T6963
    LinVDR 0.7 mit VDR 1.4.4-2 (Toxic)
    2.VDR: Samsung SMT-7020S, 1GB Kingston CompactFlash, dets ZenSlack-ISO

  • Ich bin noch nicht zufrieden mit der Bildqualität und aufgegeben habe ich auch noch nicht. Zur Zeit kann ich nur leider noch nix funktionierendes vorweisen.


    Aber mal ein Zwischenstand mit den Sachen die ich herausbekommen konnte.


    - Interlace sieht man nur die Hälfte, da die Dot Clock sich durch Interlace ändert. Sie wird halbiert. Doch aufpassen, in der fb.modes gibt man sie in Pico Sekunden an, dort verdoppelt sich der Wert.
    - Der i815 Grafikchip hat jetzt verschiedene Dotclocks die genutzt werden können. Für die VGA Ausgabe wird normalerweise DCLK2 genutzt. Für das TV/LCD Interface (welches ja für uns wichtig ist) gibt es eine weitere Dotclock welche wir zur Zeit auch benutzen. Diese wird durch den Treiber, genau wie die restlichen TV/LCD Register nicht gesetzt.
    - Man kann auswählen welche Dotclock der TV/LCD nutzen soll. Dies können wir auf DCLK2 stellen, also genau auf die Dotclock welche auch die VGA Ausgabe nutzt. Jetzt passt halt nur die Dotlock des Focus nicht mehr und das Bild wird nichtmehr sauber auf dem TV dargestellt.
    - Dann habe ich mir mal den XBox-Focus-Treiber vorgenommen und dort die PLL (Dotclock) Berechnungen rauskopiert und leicht angepasst das ich das ganze mit meinen eigenen Variablen füttern kann. Leider findet der kein Ergebnis für eine 13.5Mhz Dotclock.
    - Im Moment versuche ich daher erstmal die TV/LCD Register mit Werten zu füllen welche ich vorher aus den VGA Registern auslese. Diese werden ja vom Treiber gesetzt. Die Dotclock möchte ich dazu dann auch auf DCLK2 umschalten. Mit diesen Werten und einer Anpassung des XBox-Treibers sollten dann zumindest erstmal alle Progressiven Auflösungen machbar sein.
    - Wenn das alles soweit klappt wissen wir dann also wie man mit Dotclock usw. genau umzugehen hat. Ich erhoffe mir dann, das es dann auch möglich ist herauszubekommen inwiefern man den Focus auf eine Interlaced taugliche Dotclock bekommt.

  • Maniac 4 president...


    Das hört sich ja alles schonmal richtig gut an...


    Gruß
    DonUlfo


    P.S.: Habe momentan Dets Debian am laufen... wie gesagt, Fussball könnte besser sein...

    VDR#1: TT FF 1.3 | Duron 2600+ | 512MB RAM | easyVDR0.62 | VDR1.4.7 | DolbyDigital 5.1 per ac3dec |ATRIC IR-Einschalter | GraphLCD | NVRAM-wakeup | WakeOnCall über FritzBox | PicoAV Board 1.1 | Atmolight mit Ikea Diodern.
    VDR#2 (HDTV): yavdr 0.2 - Tevii S470 - Zotac ION ITX-F

  • Wenn ich das richtig sehe gehen wir zur Zeit mit 89Hz auf den Focus. Rechenweg dazu:



    Jetzt wissen wir also das wir mit 89hz am Focus ankommen und das die dortigen PLL Register für diese Frequenz gesetzt sind.


    Um das jetzt auf 50Hz umzustellen sollte es reichen LC_CLKD auf 0x00020010 und das 4. Byte von DCLK_0DS auf 0x40 zu setzen.


    Jetzt müsste eigentlich nur noch der Focus entsprechend angepasst werden, dort habe ich auch schon etwas mit den PLL Funktionen des XBox-Treibers rumgespielt. Leider bekomme ich damit kein sauberes Bild auf den TV.


    Hat da jemand mehr Ahnung zu diesen PLL-Registern oder andere Implementierungen als den XBox-Treiber?


    Ps: Verlasst euch nicht auf die Werte die fbset anzeigt, das sind die Werte die er programmieren möchte. Wenn das Hardwareseitig nicht möglich ist, nutzt der Treiber Näherungswerte.

  • Ok, nun bin ich endgültig verwirrt.


    Ich habe gerade mal Seite 29 im Focus PDF mit unseren Werten durchgerechnet. Dort bekomme ich eine Dotclock von 27Mhz. Das wäre genau die Dotclock für 864x625 bei 50Hz. Also genau das was wir für ein Progressives Bild benötigen. Für Interlaced bräuchten wir 13,5Mhz.


    Durch meine Erkenntnisse vorherigen Post lese ich aber aus der Grafikkarte aus, das wir dort mit einer Dotclock von 48Mhz auf den Focus gehen.


    Jemand ne Idee was ich bei der ganzen Sache noch übersehen könnte?

  • Fehler gefunden.


    Im GCC Register LCDTV_C Bit 1 kann man die Dotclock Source wählen. Dort wird mit den Werten die wir zur zeit benutzen die "Dot Clock PLL Reference" über einen externen Pin geliefert.
    Dadurch verfälscht sich die Formel um die vertikale Frequenz zu berechnen. Setzt man das Bit auf 0 wird die "Default PLL Source" genutzt und die Formel passt wieder.
    Jetzt können wir auch LC_CLKD auf 0x00020010 und das 4. Byte von DCLK_0DS auf 0x40 setzen und erhalten ein Bild auf dem TV. Das scheint aber noch nicht hundertprotzentig zu passen. Konsole lässt sich zwar wunderbar lesen, aber das Bild ist horizontal noch leicht out of sync. Beim TV gucken merkt man das extrem, da "wackelt" es hin und her.


    Die Funktionen aus dem XBox-Treiber um die PLL-Werte des Focus zu berechnen funktionieren jetzt übrigens auch ;)
    Das Wackeln ist aber auch mit diesen Werten genauso da.


    Wenn wir das jetzt noch in den Griff bekommen, sind problemlos andere Auflösungen machbar.

  • Das hört sich doch schonmal vielversprechend an !!!
    Ein weiterer Weg zur perfekten Box!!!


    Danke Maniac !! Großes Lob!


    Gruß
    DonUlfo

    VDR#1: TT FF 1.3 | Duron 2600+ | 512MB RAM | easyVDR0.62 | VDR1.4.7 | DolbyDigital 5.1 per ac3dec |ATRIC IR-Einschalter | GraphLCD | NVRAM-wakeup | WakeOnCall über FritzBox | PicoAV Board 1.1 | Atmolight mit Ikea Diodern.
    VDR#2 (HDTV): yavdr 0.2 - Tevii S470 - Zotac ION ITX-F

  • Hallo Maniac


    Ich kann Dir zwar nicht so ganz folgen wo Du die Register


    LCD_CLKD: 0x0001000a
    DCLK_0DS: 0x30404040


    her hast, aber bei Deiner Zerlegung in die Parameter M,N,P
    müßte für M ein Wert >250 <3000 herauskommen (Datenblatt Seite 29).
    Deine Berechnung ergibt aber M=12?



    Gruß Eljo

  • ELJO: Die Werte sind aus den Grafikkarten Registern ausgelesen.


    Das mit M=12 passt schon, da das die Berechnung in der Grafikkarte ist.
    Beim Focus darf M nur zwischen 250 und 3000 liegen wie du schon richtig angemerkt hast.


    Ich hab auch gerade mal die Defaults aus dem Focus Treiber genutzt, dort tritt das Wackeln dann auch auf und das Bild ist grün.
    Das Grün ist nicht weiter schlimm, da das durch die Unterschiedlichen Grafikkarten kommt (XBox nutzt NVidia und stellt den Focus in den Defaults dementprechend ein).


    Da das Wackeln noch da ist tippe ich mal das die Lösung in der Grafikkarte zu suchen ist.

  • Hallo Maniac,


    extrem cool !
    Ich hatte festgestellt, das der i810 am besten mit dem fs454 funktioniert, wenn der inaktive Bereich
    des Bildes etwas kleiner ist.
    Also, statt 864x625 den i810 auf 800x625 stellen, solange die Zeilenfrequenz stimmt synchronisiert der fs454 das auf, findet aber besser den sync.
    Apropos, wie sind HSYNC und VSYNC eingestellt ?


    Haettest du n paar source-schnipsel fuer mich, dass ich da wieder n kernel-patch draus giessen kann?
    Den freescale treiber schmeiss ich dann auch raus, und tu den aus der xbox rein, das sollte kein Problem sein.


    Gruss,


    Giga

  • giga-san: Ich mache da mal was fertig was ich uploaden kann.



    Im i810fb gibts einen Bug den ich gerade gefunden habe. Und zwar in der Datei i810_gtf.c in den Zeilen 145 und 182.
    Dort steht folgender Code:


    Code
    if (blank_s < (xres >> 3))
    		blank_s = xres >> 3;


    blank_s ist ein int, also signed.
    xres ist ein u32, also unsigned.


    Wenn jetzt HTOTAL zu klein ist wird blank_s vorher auf einen negativen Wert gesetzt, durch den Code-Teil oben sollte dieser negative Wert dann mit "xres >> 3" überschrieben werden. Das ganze ist auch soweit erstmal recht logisch.


    Nehmen wir jetzt mal den Wert -4 für blank_s und den Wert 90 für xres>>3 an, würde jeder Mensch sagen blank_s ist kleiner als 90. Für den Rechner ist das aber nicht der Fall. Da der eine Wert Vorzeichenbehaftet ist und der andere nicht.


    Um den Bug zu fixen case ich jetzt einfach xres und yres auf int. Jetzt ist -4 auch wirklich kleiner als 90.


    Im Code sieht das ganze dann so aus.


    Zeile 145

    Code
    if (blank_s < ((int)xres >> 3))
    		blank_s = xres >> 3;


    Zeile 182

    Code
    if (blank_s < (int)yres)
    		blank_s = yres;


    Edit: Die Berechnungen scheinen dort allgemein nicht sehr sauber zu sein. HBLANK_End wird berechnet und hat danach dann jetzt auch einen vernünftigen Wert. Wenn diese in die Register geschrieben werden, werden aber vorne Bits abgeschnitten. Liest man jetzt den Wert aus dem Register aus und rechnet ihn zurück kommt natürlich was ganz anderes raus.


    Edit 2: Vergesst mein erstes Edit, es gibt noch ein Extendes Horizontal End Register, auf welches aber beim Horizontal Blanking End Register nicht hingewiesen wird. Nimmt man das in den Berechnungen dazu passt es. Der oben angegebene Patch ist aber trotzdem nötig.

  • So dann hier mal ein kleines Tool welches die Register für den TV-Out Port anhand der Werte für VGA berechnet. Ich hoffe das meine Formeln darin soweit passen, wenn nicht bitte kurzen Bugreport bei welchem Mode welche Fehlberechnung aufgetreten ist.


    Die Änderungen am i810fb die ich oben geposted hatte, sollten vorher durchgeführt werden. Sonst entstehen bei bestimmten Auflösungen falsche Werte für die Blanks.


    Durch entfernen der auskommentierung des letzten Blocks von i815_setup() können die Werte auch direkt in die entsprechenden Register geschrieben werden.


    Damit das ganze dann noch Bild auf dem TV bringt muss noch das Dotclock Register des i815 und des Focus entsprechend angepasst werden. Da werde ich aber heute Abend nochmal was zu posten.

  • hi,


    super, dass sich in der richtung was tut...
    dann warte ich mal auf deinen nachtrag heute abend, und werde es dann morgen mittag mal ausgiebig testen...


    Gruß
    DonUlfo

    VDR#1: TT FF 1.3 | Duron 2600+ | 512MB RAM | easyVDR0.62 | VDR1.4.7 | DolbyDigital 5.1 per ac3dec |ATRIC IR-Einschalter | GraphLCD | NVRAM-wakeup | WakeOnCall über FritzBox | PicoAV Board 1.1 | Atmolight mit Ikea Diodern.
    VDR#2 (HDTV): yavdr 0.2 - Tevii S470 - Zotac ION ITX-F

  • Ok, dann noch der nachtrag zum PLL-Werte berechnen für den Focus. Einfach oben in die VGA-Variablen eure Werte eintragen. Werden auch vom neuen tvout_setup angezigt. Dann müsst ihr noch LCD_CLKD und Byte 4 von DCLK_0DS setzen. Die Werte dafür einfach aus DCLK_2D übernehmen.


    Beim schreiben des PLL M Registers im Focus ist noch zu beachten das zwar der Wert für M so angezeigt wird wie er für den Focus passt, allerdings ist bei dem Focus Register noch PLL G dabei.


    Der Code ist fast 1:1 vom XBox-Treiber übernommen. Dateiendung bitte auf .c ändern, das Forum akzeptiert nämlich diese Endung leider nicht.

  • Verschiedene Wege zum perfekten Bild?


    Also wenn ich jetzt mal alles was in den verschiedenen Threads richtig verstanden habe, so gibt es ja verschiedene Möglichkeiten um an ein besseres Bild zu gelangen.


    Zum Einen ist da Maniac´s Lösung von hier, ein Interlaced Bild mittels XBOX Treiber zu übergeben.
    Da bin ich mal gespannt, was sich da in Sachen Bildqualität dann tun wird.


    Zum Anderen habe ich irgendwo noch was gelesen, das Bild über Framebuffer auszugeben, was auch eine Verbesserung sein soll...


    Was sind denn die Vorteile der verschiedenen Lsg.?


    Der ultimative Härtetest wird Fussball sein. Denn da sieht man es am besten, wie die Qualität des Bildes ist, bei schnellen Bewegungen, etc...


    MfG


    DonUlfo

    VDR#1: TT FF 1.3 | Duron 2600+ | 512MB RAM | easyVDR0.62 | VDR1.4.7 | DolbyDigital 5.1 per ac3dec |ATRIC IR-Einschalter | GraphLCD | NVRAM-wakeup | WakeOnCall über FritzBox | PicoAV Board 1.1 | Atmolight mit Ikea Diodern.
    VDR#2 (HDTV): yavdr 0.2 - Tevii S470 - Zotac ION ITX-F

  • Interlaced läuft damit leider noch nicht. Ich sehe es aber als Vorbereitung um den Fehler zu finden warum es nicht geht.


    Meine Vermutung ist das es mit der geänderten Dotclock durch den Interlaced Mode zusammenhängt. Deswegen bin ich erstmal in die Richtung gegangen das die Einstellungen für die Focus Dotclock selbst berechnet werden können.

  • Ich hab das ganze jetzt mal zu einem Tool zusammengefasst zum testen.
    Das ist noch nicht für produktive Anwendungen gedacht sondern wirklich nur zum testen/entwicklen.


    Dazu bitte folgende Punkte beachten:


    - Die Focus Geschichte ist größtenteils aus dem XBox-Treiber kopiert
    - Die Focus PLL Berechnung findet nicht immer passende Werte
    - Am besten nur über SSH arbeiten, da zuerst die i815 Regs gesetzt werden und danach erst die Focus Berechnungen durchgeführt werden. Wenn jetzt keine Focus PLL Werte gefunden werden sieht man auf dem TV nichts mehr.
    - In der Scaling Berechnung ist noch der Wurm drin, das Bild wir zu klein angezeigt
    - Sync scheint noch nicht hundertprozentig zu passen, es flackert immer ab und zu ein Bild mit rein



    Ich teste zur Zeit mit folgendem FB-Mode, dazu findet das Tool auch passende Focus Einstellungen.


    Code
    mode "720x576-50"
        # D: 27.000 MHz, H: 31.250 kHz, V: 50.000 Hz
        geometry 720 576 720 576 24
        timings 37037 64 16 39 5 64 5
        accel true
    endmode


    Das funktioniert aber eigenartigerweise nur wenn man das vsync1 der Bootparameter auf 49 setzt, möglicherweise ist das auch unser Problem.


    Für die Impementierung des ganzen (sobald es sauber läuft) in den i810fb würde ich vorschlagen das ganze in der i810_gtf.c vorzunehmen. Dort liegen nämlich die Werte die ich hier auslese in Variablen. Bei diesen müssten dann nur die letzten 3 Bit auf 0 gesetzt werden. Damit entfällt die umständlich Rückrechnung die ich hier vornehme.


    Ich würde mich freuen wenn ihr damit mal ein bischen testet und eure Erfahrungen und Erkenntnisse hier postet.

  • Hallo Maniac
    Also ich habe das mal getestet.
    Habe zendeb von egalus mit 2.6.21.7 Kernel.


    Ich kann bestätigen, daß das Bild zu klein ist (rechts ein schwarzer Balken)
    und ein Bild flackert mit rein.
    Console ist gar nichts zu sehen, flackert und das Bild rollt irgendwie durch.


    Den FB Modus kann ich nicht setzen, obwohl ich vsync1 auf 49 gesetzt habe.
    Folgender Fehler kommt:

    Code
    SMT7020S:/usr/local/src/tvout_setup# fbset "720x576-50"
    ioctl FBIOPUT_VSCREENINFO: Invalid argument


    Wie lautet denn der video=... Parameter im grub, damit das funktioniert ?


    Gruß


    Carlos

    VDR1: AMD Athlon 64 3200+ - Hauppauge Nexus-S, Debian Lenny - Kernel 2.6.28.2 VDR 1.7.21(Tobi)
    VDR2: POV ION 330 -2GB RAM - Tevii S470 MS-Tech 1200 Gehäuse, Debian YaVDR 0.4
    VDR4: Seagate Goflex net - Debian Wheezy - Linux 3.9.5-dockstar-goflex-shyd VDR 2.0.3
    VDR5: SMT-7020S zen2vdr auf Festplatte
    VDR5: SMT-7020S zen2mms 1.3b auf CF-Karte
    TV: Samsung LE46ES8090

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!