Obsługa wyświetlacza telefonu Nokia 6100 ze sterownikiem Epson S1D15G00: organizacja pamięci
Opis rozkazów obsługiwanych przez sterownik Epson S1D15G00 przedstawiono w drugiej części artykułu. |
Wyświetlacz z Nokii 6100 zastosowano w module KAmodTFT2,
|
W Nokii 6100 zastosowano kolorowy wyświetlacz z aktywną matrycą o rozmiarze 132×132 punkty (piksele). Moduł może być zasilany napięciem +3,3V, a kolory są wyświetlane z 12-bitową głębią (4096 kolorów). Sterownik wyświetlacza komunikuje się z zewnętrznym sterownikiem przez 3-liniową magistralę SPI. Słowo przesyłane w czasie jednej transakcji ma długość 9 bitów. Moduł ma wbudowane diody podświetlające, bez których działanie kolorowego wyświetlacza LCD nie jest możliwe. Wszystkie sygnały i linie zasilające są wyprowadzone elastyczną taśmą zakończoną specjalnym wtykiem SMD (fot. 1).
Fot. 1. Wygląd wyświetlacza z telefonu Nokia 6100
Pin | Funkcja |
1 | Vcc |
2 | !RESET |
3 | DATA |
4 | CLK |
5 | !CS |
6 | Vcc |
7 | NC |
8 | GND |
9 | VLED- |
10 | VLED+ |
Wyświetlacz stosowany w telefonie Nokia 6100 ma – z punktu widzenia programistów – wadę: są w nim bowiem montowane dwa typy sterowników: Epson S1D15G00 lub Philips PCF8833, które nie są ze sobą kompatybilne! Co gorsza, kupując moduł wyświetlacza nie jesteśmy w stanie określić w jaki wyposażono go sterownik! W artykule przedstawiamy przykład sterowania pracą modułu wyposażonego w sterownik Epson S1D15G00. |
Żeby ułatwić dołączenie wyświetlacza do zewnętrznego sterownika firma KAMAMI.pl opracowała moduł KAmodTFT2, na którym umieszczono (rys. 2): złącze SMD do podłączenia wyświetlacza, bufory linii sterujących (konwertery napięć dopasowujące poziomy stanów logicznych) akceptujące poziomy logiczne +5V, stabilizator LDO napięcia +3,3V i przetwornicę podwyższający napięcie zasilające podświetlacz. Zewnętrzne sygnały sterujące i zasilania podłączono do złącza IDC10 (jak w innych modułach KAmod).
Rys. 2. Zalecany schemat otoczenia wyświetlacza (zastosowany w module KAmodTFT2)
Ponieważ matryca wyświetlacza ma rozmiar 132×132 piksele, to patrząc na wyświetlacz nie możemy z jego wyglądu określić orientacji wyświetlanej informacji. Domyślną orientację wyświetlacza pokazano na rys. 3.
Rys. 3. Domyślna orientacja wyświetlacza
Czasami mechaniczne mocowanie wyświetlacza wymusza odwrócenie obrazu o 180 stopni. Można to zrobić wysyłając do wyświetlacza odpowiednie komendy . Na rys. 4 pokazano orientację po odwróceniu modułu o 180 stopni – zastosowano ją w module KAmodTFT2.
Rys. 4. Alternatywna orientacja wyświetlacza (zastosowana w module KAmodTFT2)
Organizacja pamięci
Sterownik S1D15G00 może sterować kolorowym wyświetlaczem o organizacji 396 segmentów i 168 wierszy. Na każdy piksel przypadają 3 segmenty: koloru czerwonego, zielonego i niebieskiego. Daje to możliwość sterowania wyświetlaczem o rozmiarze 168×132 (168=396/3) pikseli. Znając możliwości sterowania można określić potrzebna pojemność pamięci RAM obrazu. Intensywność świecenia każdego z segmentów koloru (R, G, B) jest kodowana na 4 bitach. Trzy składowe koloru po 4 bity dają 12-bitową głębię kolorów. Zatem pamięć RAM musi mieć pojemność 396x168x4=266112 bitów.
Rys. 5. Umiejscowienie składowych koloru w pamięci RAM obrazu dla 2 pikseli
Na rys. 5 pokazano położenie zakodowanych na 4 bitach składowych koloru dla 2 kolejnych pikseli. Informacja o kolorze pierwszego piksela zajmuje półtora bajtu. Podobnie informacja o kolorze drugiego piksela zajmuje półtora bajtu. Jest to niezbyt wygodna organizacja pamięci z punktu widzenia zorganizowanych bajtowo (8-, 16- lub 32-bitowych) układów sterowania i wymaga dodatkowych zabiegów programowych.
Rys. 6. Umiejscowienie składowych koloru w bajcie (tryb 8-bitowy)
Jeżeli nie potrzeba 12-bitowej głębi kolorów można zastosować tryb z 8-bitowa głębią. Informacja o kolorze jest zapisywana na 8 bitach: D7, D6, D5 dla składowej R, D4, D3, D2 dla składowej G oraz D1, D0 dla składowej B (rys. 6). Po zapisaniu bajtu w trybie 8-bitowym sterownik konwertuje trzy i dwubitowe składowe do 4 bitów i zapisuje w pamięci RAM tak jakby była to głębia 12-bitowa.