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 lcd TM-400160K1 Pytanie o M signal

Bruum 06 Lis 2010 01:39 2898 13
  • #1 06 Lis 2010 01:39
    Bruum
    Poziom 23  

    Witam! Podpowie może ktoś z Kolegów co dać tej matrycy na wejście m?
    W ds jest tylko wzmianka typu:
    ac conversion signal for liquid crystal display driver output.
    Niewiele mi to mówi.

    0 13
  • Pomocny post
    #2 06 Lis 2010 08:40
    tymon_x
    Poziom 30  

    No niestety musisz przejrzeć całą dokumentację sterownika: KS0086 z którego ten wyświetlacz korzysta.

    Przejrzyj dokładnie od strony 1 do 7 oraz stronę 23. Widać, że służy do zmiany napięcia, ale jak dokładnie objawia się to na wyświetlaczu musisz sam sprawdzić (;

    0
  • Pomocny post
    #3 06 Lis 2010 09:30
    ktrot
    Poziom 19  

    Jest to sygnał wejściowy, cyfrowy. Podajesz na przemian stan wysoki i niski. Zmianę najlepiej robić co ramkę. Niektóre matryce nie mają wyprowadzongo sygnału M a jego zmiana jest sprzężona z sygnałem synchronizacji pionowej. Nie podanie tego sygnału przez dłuższy czas spowoduje zniszczenie matrycy lcd.

    0
  • #4 06 Lis 2010 09:39
    tymon_x
    Poziom 30  

    ktrot napisał:
    Nie podanie tego sygnału przez dłuższy czas spowoduje zniszczenie matrycy lcd.


    Dokładnie jak rzecze ktrot, cytat z FAQ: Link
    FAQ napisał:
    The ‘M' signal is a square wave of 50% duty which is used by the LCD to switch the polarity of the display driver voltage to ensure there is no DC component applied across the LC cell. Some LCD's generate this internally and some require it to be supplied.

    0
  • #5 09 Lis 2010 14:12
    Bruum
    Poziom 23  

    Witam i dzięki Panowie!
    Mam jeszcze takie pytanie, szczególnie do kol. ktrot-a, który tą matrycę pięknie okiełznał-czy używać DISPOFF?
    Posiłkuję się pdf-em od matrycy hosidena, tam o tym nie wspominają, ale hosiden sam też sobie m signal robi, więc pytam.
    Przydałby się lepszy kontrast. Zastanawiam się, czy sterowanie dispoff-a coś by poprawiło. Wysłanie ramki trwa u mnie 3,83 ms a przerwa pomiędzy ramkami 11,634 ms. Zwiększenie tej przerwy pogorszyło kontrast "wzmacniając" tło. Nie chciałbym rezygnować z przerw między ramkami-dogodny czas do manipulacji na pamięci obrazu.

    0
  • Pomocny post
    #6 10 Lis 2010 16:52
    ktrot
    Poziom 19  

    /DISPOFF nie ma nic do kontrastu. Ja go nie używam - podączam go na stałe do vcc ale jak masz wolny pin w uc to możesz sterować wyświetlaniem. Za kontrast odpowiada ujemne napięcie vlcd oraz częstotliwość ramki - dla tego wyświetlacza naprawdę dobry kontrast można uzyskać powyżej 100Hz. Jeżeli nie masz takiej możliwości to spróbuj minimalnie zmieniać częstotliwość - może się okazać, że np przy fr=59,66Hz kontast będzie większy niż przy 61,32Hz (liczby absolutnie z powietrza chodzi o idee). Jednak pamiętaj, że przy takim sterowaniu ramkami nie uzyskasz maksymalnego kontrastu - wszystkie matryce stn steruje się liniami a nie ramkami.

    0
  • #7 10 Lis 2010 18:48
    Bruum
    Poziom 23  

    Witam i dzięki za odpowiedź.
    Odświeżanie mam aktualnie 133hz. Na próbę wypełniam pamięć ekranu różnymi wartościami aby podejżeć działanie. Aktualnie jest jeszcze kłopot jak poniżej:
    [img]
    Matryca lcd TM-400160K1 Pytanie o M signal
    [/img]
    Tablica wypełniona jest 0x03, są po dwie linie obok siebie, ale w trzech miejscach promocja-linii za dużo, jakby po jednej połówce przeskoczyło. A sterowanie wygląda tak-równo cała linia:
    Matryca lcd TM-400160K1 Pytanie o M signal
    o co mu może chodzić?

    A1-ramka
    A2-CP2
    A3-CP1
    poniżej dane

    0
  • #8 10 Lis 2010 19:39
    ktrot
    Poziom 19  

    CP1 i CP2 odwrotnie zaznaczone - CP2 to pixel clock. Masz chyba nie najlepiej rozwiązaną synchronizację pionową - będą problemy z pierwsza poziomą linią ale na razie mniejsza o to.
    W pixel clock (cp2) liczy się tylko zbocze opadające - spróbuj wycelować tym opadającym w środek danych. W tej chwili nie wygląda to źle ale jest przesunięte w prawo - w symulacji to są doskonłe prostokąciki ale rzeczywisty układ nie ma tak stromych cp2 i danych. Nie przejmuj się narastającym zboczem - lcd ignoruje je.
    Na pewno odliczasz dokładnie 100 cykli w cp2 dla jednej linii?
    W każdym razie błąd jest w algorytmie - wygląda, że pomija daną 0x00 w kilku miejscach.

    0
  • #9 10 Lis 2010 21:06
    Bruum
    Poziom 23  

    Pozmieniałem parę ustawień i wskoczyło na swoje miejsce.
    Co z tą pierwszą linią?
    Bardzo tu algorytmu nie ma, wszystko jest robione timerami i dma bez użycia rdzenia, dwa pomocnicze przerwania, w wypadku rezygnacji z przerw będzie się można ich pozbyć. Ew. będzie przerwanie na operacje na pamięci obrazu. Z tego wynika część trudności, nie jest to tak elastyczne jak programowa obsługa. Ekran z przebiegami nie jest z symulatora tylko z analizatora stanów logicznych podpiętego do linii sterujących.
    Zjawiskiem, z którym walczę, jest coś, co nazwałbym "poświatą". Jak dam do vram-pamięci obrazu po 0x1 to mam blady obraz, jak dam 0xf to muszę zmniejszyć napięcie vee bo wszystko jest czarne, tło się zaczernia, podobnie przy 0x55. Zjawisko to zmniejsza się wraz ze zmniejszaniem przerwy między ramkami, stąd moje wcześniejsze pytanie o manipulacje np. dispoff, może to by pomogło?. Takie przerwy byłyby przydatne do zapisu do vram. Mam 20kb ramu na pokładzie i dwie tablice się raczej nie zmieszczą, tym bardziej, że chcę przygotować uniwersalną bibliotekę również dla matryc o innych parametrach, oczywiście monochromatycznych. Nie chcę kombinować z zewnętrznym ram-em, bo takie jest założenie, żeby całość zmieścić w procu.

    0
  • Pomocny post
    #10 10 Lis 2010 22:43
    ktrot
    Poziom 19  

    Impuls synchronizacji pionowej powinien pojawiać się razem z zatrzaśnięciem pierwszej linii a nie przed nią. Na razie nieważne - to szczegół.

    Zostaw ten dispoff - nie pomoże ci z kontrastem.
    Ta poświata (ang crosslink) i zmiana kontrastu mają dwie zasadnicze przyczyny: zasilacz vlcd i sterowanie. Co do sterowania już chyba znasz odpowiedź - tak jak pisałem: nie można wyświetlić wszystkich linii i zrobić sobie przerwę. Sterowanie powinno się odbywać wg schematu:
    - zapełniamy rejestr przesuwny i zatrzaskujemu 1 linię jak najszybciej w czasie T1
    - czekamy T2
    - zapełniamy rejestr 2 linii czas T1
    - czekamy T2
    .............................................
    - zapełniamy rejestr ostarniej linii czas T1
    - czekamy T2 !!!
    - zapełniamy pierwszę linię czas T1 ....itd

    T1 jak najkrótszy (ile tylko rejestry przesuwne przyjmą).
    Czasy T1 i T2 niezmienne.
    (T1+T2)*160*100Hz=1s //100Hz 160 linii

    Im dalej odbiegasz od tego schematu tym więcej kłopotów.

    Co do zasilania to przeczytaj pkt 1.3 oraz 3

    0
  • #11 11 Lis 2010 15:30
    Bruum
    Poziom 23  

    Kolejny raz dzięki! Z przebiegów w ds hosidena nie wynikało, że nie można tych przerw stosować. Zaczyna coś w końcu wychodzić. Został w zasadzie jeden chyba problem jak widać na załączonym obrazku:
    Matryca lcd TM-400160K1 Pytanie o M signal
    Pierwszy z lewej odcinek to 0xFF pod adresem [0], niestety jest on wyświetlany w drugiej linii. Następny odcinek to też 0xFF pod adresem vram[7951] (całość 8000).
    Jest wyświetlany w pierwszej linii zamiast w ostatniej. Dodatkowo widać delikatne smużenie w pionie pod nim, gdyby nie to, podejżewałbym problem z adresowaniem, ale nie powinien on powodować smużenia. Wydaje mi się, że matryca na coś tak reaguje.

    p.s.
    Prawdopodobnie wiem co jest. W ds-ie od matrycy sharpa 640x480 jest obrazek pokazujący gdzie ma być impuls ramki.

    0
  • #12 11 Lis 2010 20:31
    ktrot
    Poziom 19  

    Jeden problem ci został? Jesteś optymistą - no i dobrze :) Pionowe pasy można na matrycy wygenerować dowolnym generatorem np. na 555, dopiero stawianie punktów tam gdzie się chce oznacza, że nad matrycą panujesz.

    Jeżeli chodzi o te problemy pierwsza, ostatnia linia a w mniejszym stopniu pierwsza czy ostatnia kolumna odpowiedzią jest prawidłowy przebieg co do najmniejszego taktu - chodzi nie tyle o czas ile o następstwa co po czym. Wysyłam ci przebiegi - inna rodzielczość i organizacja ale identyczne zasady generowania sygnałow sterujących. Zobacz jak wygląda Vsync (DIN). Przeczytaj też komentarze na dole rysunku.

    Nie pisałem, że nie można zrobić przerwy po ramce - podałem ci idealny przebieg a następstwa odstępstw możesz sobie sprawdzić.

    Te cienie ciągnące się w dół są głównie wynikiem złych przebiegów ale w mniejszym stopniu są wynikiem konstrukcji matrycy stn - po prostu te matryce mają crosslinki - wyjaśnienie tego w drugim załączniku. Pozbywasz się ich prosto - zmniejszasz napięcie vlcd, kontrast trochę spadnie ale możesz go zwiększyć poprzez większą częstotliwość ramki (co spowoduje trochę większe crosslinki :).

    Na zachętę powiem ci, że ja mając do wyboru wyświetlacz w tej samej cenie ze sterownikiem albo bez wybiorę ten bez sterownika - naprawdę!

    0
  • #13 11 Lis 2010 20:44
    asembler
    Poziom 32  

    Jakim to procesore sterujesz?
    Prawdopodobnie masz uszkodzoną tasiemkę od wierszy.
    Najlepsza czestotliwościa ramki dla tej matrycy min 75Hz

    0
  • #14 12 Lis 2010 00:08
    Bruum
    Poziom 23  

    Cytat:

    Jeden problem ci został? Jesteś optymistą - no i dobrze

    Na szczyptę optymizmu mogę sobie już chyba pozwolić?
    Matryca lcd TM-400160K1 Pytanie o M signal

    Teraz dopiero jazda z generacją znaków i podstawowej grfiki według potrzeb.
    Odświerzanie 135hz całkowicie sprzętowe, bez przerwań nawet. Zobaczymy jak będzie szedł zapis do vramu. Rdzeń w ogóle na razie nie zaczepiany.
    Spróbowałem na 262hz. Różnicy w obrazie chyba żadnej a zaczęły się kłopoty ze stabilnością, więc wróciłem do 135.

    Cytat:

    Na zachętę powiem ci, że ja mając do wyboru wyświetlacz w tej samej cenie ze sterownikiem albo bez wybiorę ten bez sterownika - naprawdę!

    Rozwiń dlaczego??


    Cytat:

    Jakim to procesore sterujesz?

    stm32f103rbt6, ale docelowo pasowałby z większym ram-em, żeby się może dwie tablice zmieściły.

    0