wyświetlaczu LCD bez wlasnej pami

Dec 06, 2009 10 Replies

Witam.



Mam standardowy wyświetlacz LCD - Data, Clk, Latch, First Line Mark.



160x240 - odświeżanie w kierunku poziomym (240 kolumn)[1].

Wyświetlacz jak każdy tego typu wymaga odświeżania. Popedzam go więc z taką szybkością, że wyrabia się ok. 30 razy na sekunę wcisnąć wszystkie



240 wierszy.

Sygnał do zmiany polaryzacji poganiany jest razem z odswieżaniem, ale nieco szybciej bo około 100Hz.



Teraz:



Przy odświeżaniu 30Hz na wyswietlaczu każdy zapalony piksel pozostawia poziomą linię - jest widoczna poprzez manipulowanie kontrastem, ale w żadnym polożeniu kontrastu nie jest dobrze: albo nie widać lini ale piksele sa ledwo czytelne, albo piksele doskonale widać - razem z liniami.



Efekt jest widoczny nawet jesli na ekranie widać jeden piksel. Jesli pare w lini - potęguje sie.



Jesli zwalniam odświezanie efekt smug/lini zanika, ale wyświetlacz niefajnie migota. To 30Hz to jednak minimum zeby dało się go oglądać bez problemów.



Zmiana czestotliwości polaryzacji wpływa na smugi, ale w niewielkim stopniu. Najbardziej wpływa szybkość odświeżania.



Teraz pytanie: czy ktoś mogłby z uzyciem swojej szklanej kuli powiedzieć mi gdzie mogę popełniać błąd? Probowalem rożnych kombinacji czestotliwości i jakoś nie bardzi potrafie znaleźć coś, co nie miga i jest widoczne bez smug. Może mam zły algorytm machania wyprowadzeniami.



Zdaje sobie sprawę, że tego typu wyświetlacze zawsze będa muiały smugi. Ale nie aż takie ...



Wczesniej mialem inny wyświetlacz tego typu i na nim nie obserwowałem _aż_ takich smug. A efekt w tej chwili jest tak fatalny, że praktycznie na bank producent nie sprzedawałby takich wyswietlaczy bo nie da się ich uzywać. Dlatego na pewno mam bład, ale gdzie ?



[1] Nie, nie moge go zmienić.
[...]

[...]

W biurze mieliśmy kserokopiarkę z podobnym wyświetlaczem. Wyprowadzone było nawet pokrętło kontrastu, bo czasem wyświetlacza nie dało się odczytać bez kręcenia nim. Nie powiem Ci, co robisz źle, bo nie wiem, ale nie wiem też, CZY cokolwiek robisz źle - w/w przykład pokazuje, że były sobie kiedyś takie podłe wyświetlacze, co tak miały. Pomagało tylko dobieranie tak treści wyświetlanej, żeby możliwie równomiernie średnio 50% zaczernienia było, przez co linie jakby się wyrównywały (tzn. najczytelniejsze ekrany miały dużo różnej zawartości, a najbardziej pomazane były te z jednym przyciskiem OK).

Marek

W tym przypadku raczej to nie to. Wyswietlacza jest współczesny, zakupiony bezpośrednio od producenta (chińskiego) i stosowany powszechnie (podobno, widziałem tylko jedno urzadzenie z nim). O ile dobrze się przyglądałem w to inne urzadzenie, nie widac tam smug, lub były na tyle małe że nie wyróżniały się. Na razie widzę, że znaczne przyspieszenie odświezania zmniejsza smugi, a dobranie prawidłowego stosunku sygnałów First Line oraz przełaczania polaryzacji silnie redukuje efekt. Jednak o ile mam teraz akceptowalne smugi - to ciągle duże i nieestetyczne. W dodatku osiągam już graniczne prędkości odświeżania jakie w ogóle daje radę SAM7. Dalej musze juz optymalizować w asseblerze co jest niefajne.

Użytkownik "Sebastian Biały" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:hfjsee$hh9$ snipped-for-privacy@achot.icm.edu.pl...

to czemu nie dasz dedykowanego kontrtolera, tylko męczysz się własnie z takimi pierdołami, jak smugi ? :)

@

I tak musi tam siedzieć uC ponieważ coś musi obslugiwać Touchscreen, przeprowadzać kalibracje, komunikowac się po uarcie z resztą systemu, obsługiwać klawiaturę, sterować podświetleniem, itd. Po co więc dodatkowy kontroler skoro mam procesor nudzący się przez 99% czasu i mający wystarczająco dużo RAM na bufor ramki? Co prawda przeliczylem się nieco z prędkoscią SAM7, ale jeszcze nie korzystalem z thumb ani z przepisania kodu do RAM, więc mam zapas i mam nadzieje zlikidować smugi.

U¿ytkownik "Sebastian Bia³y" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:hfjtee$in0$ snipped-for-privacy@achot.icm.edu.pl...

o po to w³a¶nie -> "Smugi na wyswietlaczu LCD bez wlasnej pamieci - odswiezanie"

:)

Przeciez on nie zrobi mi nic lepszego od SAM7 :) Po prostu musze nieco przyśpieszyc wrzucanie danych i jest szansa :P

a nie lepiej przestac wymyslac ko³o od nowa, uzyc sprawdzonych i szybkich metod, i zajac sie czyms bardziej produktywnym ? ;)

@

:D Ale to tez jest produktywne :P Zamiast 3 scalaków (uC+kontoler+ram) i płytki z 2 warstwami mam jeden scalak i jedną warstwę.

Ale rozumiem twój punkt widzenia :)

<ciach>

Czy w tym wyswietlaczu sygnal M: /*----- dokumentacja przecietnego LCD---------- 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.

------- koniec dokumenacji --------- jest generowany przez Ciebie czy jest ukald na plycie wyswietlacza do tego sygnalu? bo moze czestotliwosc tego "M" masz za niska. Pozdrawiam.

Generuje sam.

Dokumentacja milczy o czestotliwości tego sygnału. Dlatego próbowalem od czestotliwości zbliżonych do odswieżania aż po okolice czestotliwosci latcha wierszy. Ciężko wyczuc jak byc powinno prawidłowo.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required