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

Obsługa wyświetlacza LCD od NOKII E51

17 Cze 2009 22:17 56516 74
  • Poziom 10  
    Witam,

    Zamieszczony tutaj opis powstał po wielu długich, nieprzespanych nocach ;) i znajdował się pierwotnie na mojej stronie www.bikerk6.net, niestety ze względu na pewne problemy z hostingiem i brak czasu strona nie będzie działać do odwołania, więc postanowiłem umieścić ten opis tutaj, mając nadzieję że zawarte w nim informacje będą przydatne szerszemu gronu elektroników :)
    Umieszczony tutaj opis jest sprawdzony dla wyświetlacza telefonu E51, 6500c, 5310, E90(mniejszy) (to jeden i ten sam wyświetlacz). Prawdopodobnie zawarte tu informacje będą prawdziwe również dla innych wyświetlaczy z nowszych telefonów Nokii ze względu na wprowadzenie jednolitego standardu komunikacji z LCD przez tego producenta. Zapraszam do studiowania schematów podłączenia LCD do telefonów (link do strony ze schematami na końcu).

    Obsługa wyświetlacza LCD od NOKII E51

    Wyświetlacz

    Opisywany tutaj wyświetlacz ma rozdzielczość QVGA (320x240 pikseli), przekątną 2,2” i jest w stanie wyświetlić do 16,7 miliona kolorów (24 bpp). Podświetlenie to cztery białe diody LED. Wyświetlacz posiada wbudowany sterownik.

    Standard komunikacji

    Standard komunikacji wykorzystywany przez LCD to Messi-8, opracowany przez MIPI. Jest to organizacja powołana do życia m.in. przez fińskiego producenta telefonów a standardy przez nią opracowywane dotyczą wewnętrznych połączeń (np. procesora z LCD, kamery z procesorem itp.). Interfejs to typowy interfejs 8080 czyli mamy do dyspozycji linie WR, RD, CS, DC i D0-D7. Komendy są dość dobrze przemyślane bo po włączeniu zasilania wysyłamy 2-3 rozkazy i wyświetlacz jest gotowy do użycia (nie ma problemów z koniecznością wysyłania całej masy parametrów konfiguracyjnych - co nie oznacza, że nie możemy niczego zmieniać w ustawieniach).

    Obsługa wyświetlacza LCD od NOKII E51

    Opis wyprowadzeń

    Do komunikacji z wyświetlaczem używane jest 24-pinowe złącze typu board-to-board. Ważne jest żeby zwrócić uwagę na podłączenie wtyku wyświetlacza w odpowiednim kierunku, gdyż złącze nie ma żadnego klucza i jeśli źle ustawimy gniazdo na płytce, to możemy uszkodzić LCD.

    Poszczególne wyprowadzenia to kolejno:

    1. VLED1- katoda pierwszej pary diod (połączyć z VLED2+)
    2. VLED2- katoda drugiej pary diod (połączyć z GND)
    3. VIO napięcie zasilania logiki (połączyć z 1,8V)
    4. GND masa
    5. WRX sygnał zapisu do LCD, dane są zapisywane na rosnącym zboczu tego sygnału
    6. D0 bit 0 danych/komendy
    7. GND? bardzo możliwe, że jest to jakiś sygnał kontrolujący interfejs (połączyć z GND)
    8. D2 bit 2 danych/komendy
    9. D4 bit 4 danych/komendy
    10. D6 bit 6 danych/komendy
    11. CSX Chip Select - aktywny w stanie niskim, jeśli z pinów wyświetlacza nie korzystają inne układy na naszej płytce, to możemy go na stałe połączyć z GND
    12. RESX Reset - aktywny w stanie niskim
    13. TE Tearing Efect - brzmi dość tajemniczo, postaram się opisać to wyprowadzenie później, standardowo nie wykorzystywany (w takim przypadku pozostawić nie podłączony)
    14. D7 bit 7 danych/komendy
    15. D5 bit 5 danych/komendy
    16. GND? kolejny pin prawdopodobnie do konfiguracji sterownika (podłączyć do GND)
    17. D3 bit 3 danych/komendy
    18. D1 bit 1 danych/komendy
    19. DC Data/Command jeśli DC=0 to zapis komendy, jeśli DC=1 to zapis/odczyt danych
    20. RDX sygnał odczytu, w trakcie rosnącego zbocza tego sygnału sterownik ustawia na wyjściach D[7:0] dane
    21. GND masa
    22. VAUX napięcie zasilające dla boostera i innych różności potrzebnych sterownikowi (połączyć z 2,5V)
    23. VLED2+ anoda drugiej pary diod (połączyć z VLED1-)
    24. VLED1+ anoda drugiej pary diod (zgodnie z SM telefonu pojawia się tu napięcie 14V, ja w trakcie prób z wyświetlaczem podłączyłem tu 12V zasilacz)
    25. S1,S2,S3,S4 Cztery rogi złącza wyświetlacza połączyć z masą (koniecznie należy je przylutować, gdyż utrzymują one ramkę gniazda)

    Wszystkie sygnały sterujące muszą być na poziomie 0-1,8V dlatego najprawdopodobniej będziesz musiał używać odpowiednich translatorów napięć. Ja wykorzystałem 74LVC4245AD ze względu na dużą szybkość działania gwarantowaną przy tak niskim napięciu. Dodatkowo wg schematu połączeń w telefonie, pomiędzy mikrokontrolerem a LCD powinny pojawić się filtry przeciwzakłóceniowe, mnie w chwili obecnej nie udało się znaleźć takich które byłyby odpowiednie. Zgodnie z tym samym schematem linie zasilające VIO i VAUX powinny być podłączone do zasilania poprzez dławiki 10uH/0,8A połączone szeregowo z kondensatorami 100nF połączonymi z masą. Schemat poniżej ilustruje prosty układ, który posłużył mi do testów.

    Obsługa wyświetlacza LCD od NOKII E51

    Zapis i odczyt

    Chyba najtrudniejszą częścią było znalezienie kodów komend służących do sterowania wyświetlaczem. Sterownik opisywanego tutaj LCD to najprawdopodobniej LEADIS LDS285 lub podobny.
    Po włączeniu zasilania zobaczymy czarny ekran, by móc wyświetlić na nim cokolwiek musimy wykonać przynajmniej następujące czynności:

    - „twardy reset” czyli podanie ‘0’ na ok. 1 ms na linię RESX wyświetlacza
    - „miękki reset” czyli wysłanie komendy SWRESET (01h)
    - wyjście z trybu Steep, czyli wysłanie komendy SLPOUT(11h)
    - włączenie wyświetlacza komendą DISPON (29h)

    W tym momencie ekran wyświetlacza powinien pokazywać kolorowe kropki, odpowiadające przypadkowym wartościom znajdującym się w pamięci RAM LCD. Zapis do pamięci sterownika odbywa się po wysłaniu komendy RAMWR(2Ch), powoduje ona wyzerowanie licznika kolumn i wierszy pikseli. po wysłaniu tej komendy zmieniamy stan linii DC na ‘1’ i wysyłamy dane kolejno po trzy bajty dla każdego piksela (w kolejności wartość koloru czerwonego, zielonego i niebieskiego). Sterownik po odebraniu trzech bajtów uaktualnia na bieżąco obraz na ekranie wyświetlacza. Ilość danych wysyłanych do LCD nie jest niczym ograniczona – po zapisaniu całej pamięci obrazu licznik kolumn i wierszy sam się zeruje i zaczynamy zapis pierwszego piksela w pierwszej linii. Jest to dość wygodne, bo na dobrą sprawę komendę RAMWR możemy wysłać raz na początku i później tylko wczytywać wartości kolorów dla kolejnych pikseli. Wysłanie jakiejkolwiek innej komendy spowoduje przerwanie zapisu do pamięci a ponowne wysłanie RAMWR spowoduje zapis od pierwszego piksela w pierwszej kolumnie.
    Standardowo wyświetlacz jest ustawiony tak, że pierwszy piksel jest po lewej stronie krawędzi LCD sterownika a linie są równoległe do krawędzi LCD na której jest sterownik (czyli obraz jest w formacie 240x320). Możemy to zmienić za pomocą komend MADCTR(36h), CASET(2Ah) i RASET(2Bh) – po dokładny opis odsyłam do dokumentacji LDS285. Po włączeniu zasilania ustawiona jest 24-bitowa głębia kolorów, możemy ją zmniejszyć np. do 18-bitowej za pomocą COLMOD(3Ah). Jasność poszczególnych składowych kolorów jest następująca: 00h – czarny, FFh – biały, komenda INVON(21h) odwraca kolory wyświetlacza (czyli FFh – czarny, 00h – biały) i działa na już wyświetlony obraz. Odwrócenie kolorów wyłączamy za pomocą INVOFF(20h). Sterownik posiada również cały szereg ustawień dot. wyświetlania obrazu, tj. jasności kontrastu itp. – zapraszam do przestudiowania dokumentacji.

    Tearing Enable Efect

    Linia TE jest wyjściem i służy do synchronizacji zapisu do pamięci LCD z jego odświeżaniem – pozwala to na uniknięcie migotania obrazu, po dokładny opis odsyłam do ww. dokumentacji. Standardowo jest ona nie wykorzystywana, jeśli chcemy jej użyć, to musimy ją włączyć za pomocą komendy TEON(35h).

    Uwagi ogólne

    Układ do którego będziemy podłączać LCD musi być dość szybki (raczej nie polecam AVRów ;) ). Ja do pierwszych prób używałem mikrokontrolera z rodziny STR912, ale ilość danych do przetworzenia raczej przekraczała jego możliwości. Dość łatwo interfejs LCD można dołączyć uC jako zewnętrzną pamięć RAM ( w przypadku STR912 do interfejsu EMI). Obecnie ww. LCD jest dołączony do układu Spartan 3 i dopiero tutaj mam możliwość wyświetlania obrazu z ok. 30fps :) Jeśli pierwszy raz zajmujesz się kolorowymi LCD to proponuję wziąć kalkulator i policzyć sobie z jaką szybkością należy wysyłać dane by czas ich wczytywania nie był zbyt długi oraz ile pamięci potrzeba na przechowanie jednego obrazu – da to Tobie ogóle pojęcie o wymaganiach sprzętowych ;) takiego LCD.
    Ponieważ nie udało mi się ustalić typu złącza taśmy LCD ani kupić zamiennika dla E51 zostało wykorzystane złącze wyświetlacza dla Nokii 6300 – pasuje idealnie :) Mała uwaga co do jego montażu – bardziej wskazana jest lutownica na gorące powietrze, ale lutownicą oporową ustawioną na ok. 300-305oC przy pomocy cienkiej cyny, topnika SMD i plecionki też można przylutować to złącze.

    Linki

    Schematy telefonów
    Dokumentacja sterownika LDS285
    Poniżej znajduje się również sprawdzona przeze mnie biblioteka ze złączem LCD w formacie Protel99SE.
  • IGE-XAOIGE-XAO
  • Poziom 32  
    Całkiem fajny ten wyświetlacz i niedrogi:) Jakie rezultaty osiągnąłeś na STR912? Ile fps'ów? Mam parę sztuk STR911 i może w końcu bym je do czegoś wykorzystał:)
  • IGE-XAOIGE-XAO
  • Poziom 12  
    Czy mógłbyś BikeRk6 napisać (skopiować ten swoj napisany) kawałek programu najlepiej z wszystkimi inicjacjami, taki co to wyświetla piksel , linie czy cokolwiek .... Dla ogolnego zobrazowania jak to działa :)
  • Poziom 43  
    Można wiedzieć jak ten LCD prezentuje się w mocnym świetle?
    Widać cokolwiek na słońcu?
  • Poziom 20  
    ja mam pytanie co do sterowania: Czy zawsze trzeba zapełniać cały LCD. Nie można poprostu wysłać komendy idź do X/Y i wstawić piksela a potem idź do miejsca X2/Y2 i wstaw piksel.
    Gdzie dostane takie złącze?
  • Poziom 17  
    Może zapytać jakiegoś sprzedawcę z aledrogo co ma te złącza, ja kupowałem od "euro_anna" i dostałem gniazdka obcięte z szpuli (gniazda w taśmie są).

    W Maritexie mają możliwość chyba sprowadzenia: http://www.maritex.com.pl/pl/shop/products/ggid/9266 .

    W TME widzę podobne zwane SilmStack od Molex'a, może najlepiej u nich popatrzeć?

    -- DODANE --
    To chyba "slimStac" od Molexa są najpodobniejsze :) http://www.molex.com/molex/products/group?key=board_to_board_connectors&channel=PRODUCTS&langPref=english&selectedKey=1
  • Poziom 12  
    Sprawdziłem na wyświetlaczu od Nokia 6280 (ATMega128 12MHz) i działa,
    komendy są takie same jak dla starszych modeli telefonów Nokia (6610),
    tylko komendy są wysyłane poprzez interfejs równoległy a nie poprzez SPI.
    Część komend inicjalizacyjnych może być zmieniona ale podstawowe zostają
    te same. Współrzędne ekranu są typu 2-bajtowego (Word).
  • Poziom 10  
    Witam wszystkich.

    Czy miał ktoś problem z obsługą tego wyświetlacza? Z moich doświadczeń wynika, że w prosty sposób nie da się sterować każdej jednej sztuki sprzedawanej na allegro, bo niektóre nie chcą się w ogóle zainicjalizować.
    Mam jeszcze pytanie do ludzi, którzy mają dostęp do złączy do tego LCD? Jest możliwość z jakiegoś serwisu odkupienia ich? Wie ktoś coś na ten temat? Ewentualnie zna ktoś odpowiednik z Molexa lub innego standardowego producenta?
    Z góry dzięki za odpowiedź
  • Poziom 25  
    Przecież te złącza można na allegro kupić, na aukcjach są po kilka sztuk, trzeba napisać do sprzedających, może mają większe ilości.
  • Poziom 9  
    sloren napisał:
    Mam jeszcze pytanie do ludzi, którzy mają dostęp do złączy do tego LCD? Jest

    Ja kupiłem kilka sztuk u użytkownika euro_anna na Allegro. Najlepiej mieć kilka sztuk, bo dość ciężko przylutować używając zwykłej lutownicy.

    Ł.
  • Poziom 14  
    Czy działa komuś ten wyświetlacz na napięciu 3V. Według dokumentacji powinien. Pozdrawiam.
  • Poziom 17  
    Witam wszystkich.
    Czy mógłby ktoś przedstawić dokładniejszy opis wraz z czasami do zapisu danych do wyświetlacza?
    Komendy działają u mnie ok ale po wpisaniu RAMWR i wysłaniu danych otrzymuję kolory zbliżone do fioletowego z różnymi odcieniami..
    Nie mam pełnej palety.
    Poza tym czy Wasze złącza do wyświetlacza wydają się być jednorazowe? Po każdym wypięciu wyświetlacza z gniazda i ponownym wpięciu nie wszystkie piny stykają i jestem zmuszony do przelutowania złącza (obecnie trzecie i pady już zaczynają odpadać) :| Zakupione u allegrowicza z postu wyżej.

    Pozdrawiam

    -----------------------
    Edit:

    Napiszę trochę dokładniej:
    po wysłaniu RAMWR i zmianie pinu DC następuje wysłanie trzech bajtów z kolorami RGB.
    Niestety efekt jest taki że drugi bajt zmienia wartość koloru czerwonego, trzeci niebieskiego a zmiana wartości pierwszego nie powoduje żadnych zmian w kolorze piksela.
    Czy ktoś ma na to radę?

    Zastanawiam się czy nie kupiłem przypadkiem "pseudokompatybilnej" chińszczyzny jak to bywało z wyświetlaczami do NOKIA3310 :|
  • Specjalista - Mikrokontrolery
  • Poziom 16  
    atom1477 napisał:
    Można wiedzieć jak ten LCD prezentuje się w mocnym świetle?
    Widać cokolwiek na słońcu?

    Słabo, a na chińskim prawie nic. Mam E51 i wymieniałem LCD, kupiłem chińczyka 2szt. Jeden nie działał.
    Mieliście takie buble u siebie?
  • Użytkownik usunął konto  
  • Poziom 12  
    Witam,
    Blog http://gobotronics.wordpress.com/ jest prowadzony przezemnie, potrzebuję chętnych do pomocy w rozpracowaniu AMOLED'a z Nokii n86/n85...

    Koszt wyświetlacza na alledrogo to około 25PLN, więc chyba jest o co walczyć...

    http://gobotronics.wordpress.com/2011/10/09/n...85n86-amoled-display-hacking-project-amdf001/

    Wszelkie sugestie i pomysły mile widziane...

    Do moderatora : wiem, że post dotyczy innego wyświetlacza, ale moje rozwiązanie do E51 też było tutaj cytowane i myślę, że osoby szukające informacji w tym temacie będą tym postem zainteresowane również.
  • Poziom 38  
    gobo2003 napisał:
    Witam,
    Blog http://gobotronics.wordpress.com/ jest prowadzony przezemnie, potrzebuję chętnych do pomocy w rozpracowaniu AMOLED'a z Nokii n86/n85...

    Koszt wyświetlacza na alledrogo to około 25PLN, więc chyba jest o co walczyć...

    http://gobotronics.wordpress.com/2011/10/09/n...85n86-amoled-display-hacking-project-amdf001/

    Wszelkie sugestie i pomysły mile widziane...

    Do moderatora : wiem, że post dotyczy innego wyświetlacza, ale moje rozwiązanie do E51 też było tutaj cytowane i myślę, że osoby szukające informacji w tym temacie będą tym postem zainteresowane również.


    Te za 25zł to są marne podróbki i to na dodatek LCD zamiast OLED. Oryginalny OLED to tej Nokii jest droższy. No chyba że z demontażu.

    Dodam jeszcze, że oprócz LCD z Nokii E51 powinien również pasować wyświetlacz z Nokii 6300, 3120c, 6120c.
  • Poziom 12  
    zenobeusz, może i podróbki, ale powiedz mi jakim cudem wyprodukowano tak cienki LCD w dodatku bez podświetlenia (ani CCFL, ani LED, ani WLED) , który świeci jak OLED, ma pinout jak OLED, działa z nokią N85/N86 (tam jest inny pinout niż w np. E51), rozumie pakiety wysyłane przez Hurricane'a po MeSSI-8... i twierdzisz ponadto, że to nie jest OLED tylko LCD...

    Jeśli nie zajmujesz się tylko serwisem GSM, czyli wymienianiem wyświetlaczy za pomocą pincety, torxa i majzla to trochę dziwnie ta twoja wypowiedź brzmi...
  • Poziom 38  
    Oj po prostu wiele razy spotkałem się z zamiennikami w postaci LCD w tym modelu, a przy okazji z doświadczenia wiem, że jeżeli coś jest takie tanie, to przeważnie gdzieś musi być haczyk :) Ale nie twierdzę, że zawsze tak musi być.
  • Poziom 12  
    kurcze masz rację, to jest cholerny LCDek... sprytne te małe chińskie rączki są...
    Heh, to w takim razie jaki tam jest kontroler......
  • Poziom 43  
    Jaki by nie był. I tak przecież musi być zgodny z tym w oryginalnym wyświetlaczu.