Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Matryca pasywna DSTN 640x480*3 kontroller

psiemek 16 Sty 2010 15:13 1994 13
  • #1 16 Sty 2010 15:13
    psiemek
    Poziom 21  

    Witam,
    Mam problem. Kupiłem matrycę która ma tylko drivery i wymaga odświerzania ekranu z f=120Hz. Dodatkowo przesyła się do niej po jednym bicie na każdy kolor RGB. Doczytałem się że kolory tworzy się przez odpowiednie odświerzanie ekranu tzn np raz zapalamy dany kolor a później nie. Nazywa się to Frame Rate Modulation. Mam pomysł żeby podłączyć do niego Alterę MAX II, kawałek SDRAM oraz układ który próbkuje sygnał VGA (Analog Devices mają takie) i zrobić z tego monitor. Pytanie tylko czy altera tutaj wystarczy i jak to zrobić. Tzn nie mam pomysłu jak to rozplanować w CPLD. Jakie bloki i co mają robić. Jeśli ma ktoś pomysł to proszę o propozycję. Główny problem to odświeżanie 120Hz ze zmiennym wypełnieniem. Jak to najprościej zrobić w CPLD ?
    Pozdrawiam
    Przemek

    0 13
  • #2 16 Sty 2010 15:44
    atom1477
    Poziom 43  

    Ze dwa lata temu zrobiłem sterownik do takiego LCD.
    Do SX21V001-Z4.
    Sterowanie z zewnątrz.
    To znaczy był sobie CPLD (XC95144XL) i SRAM.
    A dane ładowało się z zewnątrz jakimś mikrokontrolerem.
    Mam 3 wersje:
    1. Ładuje się dane po 8 pixeli, czyli jeden bajt to RGBRGBRG. Kolejny niestety przesunięty bo zaczyna się od B i tak dalej.
    2. Ładowanie po piexlu. Czyli 1 bajt to 00000RGB.
    Tutaj jest prościej.
    3. Ładowanie po pixelu ale po dwa bity na kanał. Czyli 00RRGGBB.
    Z tym że ta wersja trochę mizernie działa bo opóźnienia są źle podobierane i CPLD nie za dobrze steruje LCD-kiem w większej liczbie kolorów (To znaczy w tym trybie Frame Rate Modulation. Dobrze po dwóch latach dowiedzieć się co się zrobiło ;)).
    Projekt porzuciłem bo przeszedłem na procesor ARM z wbudowanym sterownikiem LCD.
    Kod i schemat mogę udostępnić, ale to powstawało w momencie gdy zaczynałem z CPLD i VHDL –em a więc kod woła o pomstę do nieba.

    0
  • #3 16 Sty 2010 17:11
    psiemek
    Poziom 21  

    Gdybyś mógł przesłać kod (lepiej schemat blokowy jak masz ) i ewentualnie schemat (choć nie jest tak ważny). Generalnie ja chcę właśnie zrobić tak że powiedzmy mamy źródło danych gdzie dane przychodzą trzema 8 bitowymi magistralami (3 kolory RGB co daje 24 bitowy kolor) dane idą piksel po pikselu, linia po linii, obraz po obrazie. Wyświetlacz LCD jaki mam potrzebuje dane piksel po pikselu przy czym każdy piksel opisuje 3 bity koloru (wyświetlacz ma 640x480). Dodatkowo dane przesyłane są po 16 bitów (dwa pół-obrazy równocześnie). Pomysł mam taki że do CPLD dopinam 1Mbx16 SDRAMU i odświeżam dane na wyświetlaczu 120 razy na sekundę (pewnie nie dam rady tak szybko i będzie mniej) przy czym w zależności od zawartości danego koloru w pikselu będę go zapalał we wszystkich odświerzeniach lub proporcjonalnie mniej. Tzn jeśli w dany piksel ma wartość np 100 dla koloru RED to w 50 ramkach będzie on zapalony a w pozostałych 70 już nie. Proszę o informację czy dobrze rozumiem rozszerzanie ilości kolorów za pomocą FRM.
    P.S. Atom1477 jakbys napisał czy dużo zasobów CPLD zajęła ci trzecia wersja układu tak żebym się nie zdziwił na końcu że za mały układ wybrałem :-)

    0
  • #4 16 Sty 2010 18:06
    atom1477
    Poziom 43  

    Zajmuje to 99% makroceli więc dużo. Jest na styk.
    SDRAMu to nie pociągnie.
    Kod pisałem ja, ale później wrzuciłem go na elektrodę i ludzie którzy się na tym znają próbowali go poprawiać i niewiele się dało. To znaczy dużo (głownie estetykę kodu i takie tam) ale zużywane zasoby ledwo się zmniejszyły.
    Więc SDRAM będzie problematyczny.
    Jak by co to mam takie układy (XC95144XL) jak i szybkie SRAMy na 3,3V. Mogę za symboliczną opłatą sprzedać. Bo szkoda żeby u mnie leżały i się marnowały.
    Obawiam się że 24-bitowego koloru nie uzyskasz. To wymagało by okresu aż 256 cykli, czyli trwało by to ponad 2 sekundy.
    2…4 bity na kanał to max, ale na szczęście i to da bardzo ładny obraz.
    Ale odświeżanie FRM dobrze rozumiesz. Tylko że musiał byś przeliczać wartość pixela. Bo masz ją jako 8 bitów (256 wartości) a chcesz mieć 120 wartości. Ja bym nie przeliczał tylko przyjął 128 wartości (przy założeniu że układ by wyrobił, ale nie wyrobi dlatego proponuję 2...4bity czyli 4...16 wartości).
    Nawet jak uzyskał byś te 24bity, to z racji tego że to jest DSTN, obraz ładny nie będzie. Do tego potrzeba TFT i tyle.
    Matryca jest dokładnie taka jak mówisz, też ma UData i LData.
    Więcej, myślę że to taki sam LCD (z ARTRONICa).

    Niestety schematu blokowego nie posiadam. Trudno było by go nawet zrobić bo całość powstała jako jeden wielki kloc ;) Bo tak jak mówię wtedy zaczynałem z CLPD. I w sumie od tamtej pory więcej się nie nauczyłem bo przeszedłem na ARMa i CPLD mi już nie było potrzebne. Więc nawet za dużo CI nie napomagam z tym. Mogę co najwyżej wyjaśnić co do czego u mnie służy.

    Schemat elektryczny domyśliłem się że Ci niewiele da, bo i tak można to podłączyć jak się chce.
    Wrzucam kod i tyle.

    Niestety małe sprostowanie.
    99% to zajmuje wersja z 3bitowym kolorem.
    Ta z 6-cio bitowym (2 bity na kanał) nie mieści się w CPLD. Testowałem ją ja jednym kanale. Np. R był 2 bitowy a G i B jednobitowe. Tylko wtedy mieściło się to w CPLD i mogłem to przetestować.

    Mój układ przyjmuje dane na jedna szynę 10-cio bitową.
    Podajesz X1 i zatrzaskujesz. Podajesz X2 i zatrzaskuje. Podajesz Y1 i zatrzaskujesz.
    I teraz podajesz dane (już 8-mio bitowe) i podczas zatrzaskiwania piel będzie rysowany w pozycji [X1, Y1].
    Po tym X1 zostaje zwiększone. I kolejny pixel będzie rysowany dalej. I tak aż dojdzie do X2. Wtedy X przeskakuje spowrotem na X1 a Y1 jest zwiększane o 1.
    To jest bardzo wygodne przy rysowaniu czegoś za pomocą mikrokontrolera.
    Za pomocą zwykłego AVRa osiągałem z 10 klatek na sekundę.

    0
  • #5 17 Sty 2010 10:42
    psiemek
    Poziom 21  

    Dzięki za kod. Choć zmartwiłeś mnie tym że nie koniecznie się to zmieści. Tak z moich wyliczeń wychodziło że 24 bitowy kolor to nie ma szans. Ale myślałem że chociaż 16 bitowy się uda. Ech no nic. Spróbuję policzyć dla 16 bitowego jak to się ma do czasu odświeżania. Co do konstrukcji kodu to będzie mój pierwszy kod w VHDL. Dotychczas pisałem tylko na 8051, avr i army. Więc przeskok w podejściu będzie pewnie duży. Mam nadzieję że dam radę. Moim celem jest zrobienie wyświetlacza do mojego serwerka zrobionego na ThinCliencie. W czasie kiedy nic nie robi ma wyświetlać zdjęcia a jak chcę np. posłuchać radia internetowego to ma służyć jako interfejs z człowiekiem.

    0
  • #6 17 Sty 2010 13:13
    atom1477
    Poziom 43  

    No skoro pisałeś na ARMy to bym się nie zastanawiał i wstawił ARMa z interfejsem to LCD.
    Ale jeżeli koniecznie chcesz CPLD to Ok.
    Wydaje mi się że jak by zrobić to od nowa i od razu poprawnie to mogło by się to uprościć.
    Udoskonalanie takiego śmietnika na pewno będzie trudniejsze niż zrobienie tego od nowa.

    PS. Ja na swojej płytce przewidziałem miejsce na dwa CPLD i byłem ucieszony jak wlazło to w jeden CPLD ;) Choć miałem problem z doprowadzeniem sygnałów bo jak nie wlutowałem jednego CLPD-a to nie miałem jak przekazać kilku sygnałów do tego drugiego CLPD-ka i musiałem robić kilka zwór z drutu.

    0
  • #7 17 Sty 2010 13:21
    _Robak_
    Poziom 33  

    Sory panowie ze sie wcinam w temat, ale czy wiecie moze czy da sie dostac gdzies dokumentacje do matryc LCD full hd telewizorow? Troche szukalem ale nic nie umialem znalezc niestety :( Nie wiem w ogole czy jest to do dostania. No ale moze akurat ma ktos linka :)

    0
  • #8 17 Sty 2010 13:33
    atom1477
    Poziom 43  

    A masz jakiś konkretny na myśli?
    AUO takie produkuje a na swojej stronie ma jakieś datasheety. A jak nie to chociaż symbole LCD więc po nazwie będzie można datasheeta znaleść.

    0
  • #9 17 Sty 2010 13:53
    _Robak_
    Poziom 33  

    Konkretnie chodzi o matryce samsunga 40 cali. Podejrzewam ze wiekszosc matryc steruje sie na takiej samej zasadzie, ale tu tylko podejrzewam ;) Jest firma ktora sprzedaje takie kontrolery, tylko nie pamietam w tej chwili nazwy :( Problem jest taki, ze te ( w zasadzie wszystkie) kontrolery sa dla obrazu dynamicznego i dla zwiekszenia kontrastu rozjasniaja obszar czy ciemnym obszarze, a to jest bardzo nieporzadane przy obrazach statycznych. Jutro bede w pracy to jak by co to napisze jak sie konkretnie matryca nazywa, jesli bez tego nie da rady nic znalezc ;)

    0
  • #10 17 Sty 2010 19:34
    psiemek
    Poziom 21  

    Podejrzewam że większość steruje się po LVDS z prostego powodu - są specjalizowane układy w których zintegrowana jest cała elektronika telewizora z wyjściem LVDS.

    0
  • #11 17 Sty 2010 19:56
    _Robak_
    Poziom 33  

    Ok, tylko LVDS to sposob przeslania danych, jeszcze potrzebowalbym wiedziec jakie dane slac :)

    0
  • #12 17 Sty 2010 19:58
    atom1477
    Poziom 43  

    psiemek napisał:
    Podejrzewam że większość steruje się po LVDS z prostego powodu - są specjalizowane układy w których zintegrowana jest cała elektronika telewizora z wyjściem LVDS.

    Też miałem to napisać, ale zrezygnowałem bo policzyłem jaka powinna być częstotliwość sygnału LVDS.
    Dla HullHD wychodzą jakieś gigaherce.
    Sam LVDS jako interfejs różnicowy być może tam jest, ale raczej jest on równoległy a nie szeregowy.
    Próbowałem znaleźć jakieś informacje w necie ale nie da rady.
    Żeby znaleźć datasheeta a nie sklepy ze sprzętem RTV to niestety trzeba spisać model LCD i producenta z panelu LCD, i tyle.

    0
  • #14 18 Sty 2010 09:22
    atom1477
    Poziom 43  

    Ale LVDS jest równoległy. Jest aż 8 par linni. Jak by była jedna linia to wymagane było by taktowanie 1.188GHz.
    Czy mi sie zdaje czy rozdzielczość tego LCD nie jest wymieniona w tym datashecie?

    Dodano po 9 [minuty]:

    I już wiem dlaczego telewizory LCD i inny sprzęt powszechnego użytku jest taki tani a LCD w sklepach elektronicznych nie.
    Bo parametry LCD montowanych w takim sprzęcie są bardzo kiepskie.
    Zakres temperatur pracy mały. Zakres wilgotności pracy mały. Odporność na wibracje bardzo mała.
    Nic dziwnego że za LCD 8” 640x480 pixeli zapłacić trzeba dwa razy więcej niż za TV 50”.

    0
  Szukaj w 5mln produktów