Obsługa wyświetlacza telefonu Nokia 6100 ze sterownikiem Epson S1D15G00: organizacja pamięci

Sterownik S1D15G00 umożliwia obsługę kolorowego wyświetlacza telefonu Nokia 6100 przez interfejs SPI. W tym artykule przedstawiamy organizację pamięci tego sterownika.

 

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 z oferty sklepu
KAMAMI.pl.

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.

Tomasz Jabłoński

Autor: