Obsługa wyświetlacza telefonu Nokia 6100 ze sterownikiem Epson S1D15G00: polecenia obsługiwane przez sterownik

 

 

 

Opis adresowania pamięci przez sterownik Epson S1D15G00 przedstawiono w pierwszej części artykułu.
Opis sposobu sterowania wyświetlacza przez STM32Butterfly przedstawiono w trzeciej części artykułu.

Wyświetlacz z Nokii 6100 zastosowano w module KAmodTFT2,
który znajdzie się w ofercie sklepu
KAMAMI.pl
w najbliższym czasie.

 

 

 

 

Sterowanie wyświetlaczem odbywa się przez zapisywanie do niego poleceń z parametrami. W tab. 1 pokazano zbiorcze zestawienie komend obsługiwanych przez S1D15G00.

Tab. 1. Polecenia obsługiwane przez sterownik S1D15G00

Polecenie Opis Kod (hex) Parametr
DISON Włącz sterowanie wyświetlaczem AF Brak
DISOFF Wyłącz sterowanie wyświetlaczem AE Brak
DISNOR Sterowanie normalne A6 Brak
DISINV Inwersja wyświetlania A7 Brak
COMSCN Kierunek skanowania BB 1 bajt
DISCTL Sterowanie wyświetlaniem CA 3 bajty
SLPIN Włączenie uśpienia 95 Brak
SLPOUT Wyłączenie uśpienia 94 Brak
PASET Ustawienie adresu strony 75 2 bajty
CASET Ustawienia dresu kolumny 15 2 bajty
DATCTL Ustawienia sposobu zapisu danych BC 3 bajty
RGBSET8 Zapisanie tablicy konwersji kolorów CE 20 bajtów
RAMWR Zapisanie pamięci RAM 5C Dana
RAMRD Odczytanie pamięci RAM 5D Dana
PTLIN Włączenie trybu partial A8 2 bajty
PLTOUT Wyłączenie trybu partial A9 Brak
RMWIN Start odczyt i zapis z modyfikacją E0 Brak
RMWOUT Koniec trybu odczyt i zapis z modyfikacją EE Brak
ASCSET Ustawienie obszaru skrolowania AA 4 bajty
SCSTART Start skrolowania AB 1 bajt
OSCON Start wewnętrznego generatora D1 Brak
OSCOFF Zatrzymanie wewnętrznego generatora D2 Brak
PWCTRL Sterowanie zasilaniem 20 1 bajt
VOLCTRL Sterowanie napięciem przetwornicy 81 2 bajty
VOLUP Zwiększenie sterowania przetwornicy o 1 D6 Brak
VOLDOWN Zmniejszenie sterowania przetwornicy o 1 D7 Brak
TMPGRD Współczynnik temperaturowy 82 1 bajt
EPCTIN Sterowanie EEPROM CD 1 bajt
EPCOUT Koniec sterowania EEPROM CC Brak
EPMWR Zapis do EEPROM FC Brak
EPMRD Odczyt z EEPROM FD Brak
EPSRRD1 Odczyt rejestru 1 7C Brak
EPSRRD2 Odczyt rejestru 2 7D Brak
NOP NOP 25 Brak
STREAD Odczytanie rejestru statusowego

Funkcja niektórych poleceń obsługiwanych przez sterownik jest oczywista i nie będziemy ich szczegółowo opisywać. Zostaną natomiast opisane komendy bardziej skomplikowane i wymagające szerszego wyjaśnienia.
Adresowanie pamięci obrazu jest powiązane ze sposobem wyświetlania informacji na ekranie. Sterownik może sterować wyświetlaczem z matrycą mającą 168 linii i 132 kolumn. Pamięć obrazu sterownika można traktować jako obszar o organizacji 168×132 słów 12-bitowych. Pozycja danej w pamięci jest określana przez 2 liczniki: licznik kolumn zmieniający swoją wartość od 0 do 131 i licznik wierszy (stron pamięci) zmieniający swoją wartość od 0 do 167. Z modyfikacją liczników adresowych są związane komendy PASET i CASET. Obie komendy mają po 2 argumenty określające początek zakresu zmiany i koniec zakresu zmiany liczników. Poniżej pokazano budowę poleceń PASET oraz CASET.

Kod 75
Parametr 1 Adres strony początkowej
Parametr 2 Adres strony końcowej

PASET – polecenie umożliwia ustawienie zakresu numerów stron

Kod 15
Parametr 1 Adres kolumny początkowej
Parametr 2 Adres kolumny końcowej

CASET – polecenie umożliwia ustawienie zakresu numerów kolumn

Używając tych komend programuje się zakres adresów w obszarze których będą się zmieniały liczniki stron i kolumn po każdym zapisaniu danej do pamięci obrazu.

 

Rys. 3. Ustawianie zakresów adresów poleceniami CASET i PASET

Rys. 3. Ustawianie zakresów adresów poleceniami CASET i PASET

Żeby pokazać mechanizm działania komend modyfikacji adresów zdefiniujemy obszar w kształcie kwadratu 8×8 pikseli. Do tego celu wykorzystamy komendy: PASET z argumentem 4 (początek) i 11 (koniec) i CASET z argumentem 2 (początek) i 9 (koniec) – rys. 3.
Po wysłaniu tych komend wyświetlanie rozpocznie się od pozycji określonej przez argumenty adresu początku obu poleceń (4, 2). Każde wpisanie danej do sterownika będzie powodowało zwiększanie licznika kolumn od wartości początkowej określonej przez pierwszy argument komendy CASET do wartości końcowej kreślonej przez drugi argument tej komendy (rys. 4). Po osiągnięciu wartości końcowej zwiększany jest licznik stron (wierszy), a licznik kolumn jest zerowany. W ten sposób kolejne zapisanie 64 danych tworzy obraz z 64 pikseli (kwadrat 8×8).
Dalsze wpisywanie danych będzie zapełniało kwadrat na nowo od początku. Jest to bardzo użyteczny mechanizm pozwalający w prosty sposób wyświetlać znaki alfanumeryczne o dowolnej wielkości jak i większe i mniejsze bitmapy. Można również zdefiniować wyświetlanie pojedynczego piksela przez wpisanie do komendy takiego samego adresu początku i końca. 

 

Rys. 4. Zapisywanie zdefiniowanego obszaru

Rys. 4. Zapisywanie zdefiniowanego obszaru

Powiązanie pomiędzy danymi zapisywanymi do pamięci wyświetlacza danymi, a informacją wyświetlana na ekranie określają parametry komendy DATCTL (poniżej).

Kod polecenia DATCTL BC
Parametr 1 * * * * * * P12 P11 P10
Parametr 2 * * * * * * P22 P21 P20
Parametr 3 * * * * * * P32 P31 P30

Pierwszy parametr określa sposób modyfikacji liczników adresowych w zdefiniowanym komendami PASET i CASET obszarze. Na rys. 4 pokazano modyfikację liczników w trybie normalnym, to znaczy po każdym wpisie do pamięci zawartość liczników jest inkrementowana.
Kierunek zmiany licznika stron (wierszy) określa bit P10 pierwszego parametru komendy DATCTL. Dla P10=0 licznik stron jest inkrementowany, a dla P10 jest dekrementowany. Dokładnie tak samo za pomocą bitu P11 programuje się kierunek modyfikacji licznika kolumn.
Bit P12 określa czy po zapisaniu danej zmienia się licznik kolumn, czy licznik stron. W przykładzie po zapisaniu danej inkrementowany jest licznik kolumn. Tak się dzieje kiedy P12=0, gdy P12=1 to po wpisaniu danej inkrementowany jest licznik wierszy, a po osiągnięciu wartości granicznej dopiero jest modyfikowany licznik kolumn. W takim przypadku na rys. 4 czerwone strzałki byłyby zwrócone pionowo poczynając od punktu początkowego.
Parametr 3 definiuje głębię kolorów 8-bitową lub 12-bitową. Dla P32=0, P31=0 i P30=1 do sterownika wpisuje się dane 8-bitowe. Dla P32=0, P31=1 i P30=0 do sterownika wpisuje się dane 16-bitowe mając na uwadze położenie 12 bitów składowych koloru w 16-bitowym słowie.
Komenda COMSCAN umożliwia na odwrócenie wyświetlanej informacji o 180 stopni bez konieczności zmiany mocowania wyświetlacza. Kierunek skanowania linii określa 1-bajtowy parametr komendy (poniżej).

Kod polecenia COMSCAN BB
Parametr * * * * * P12 P11 P10

  

P12 P11 P10 Kierunek skanowania
COM1 COM80 COM81 COM160
0 0 0
0 0 1
0 1 0
0 1 1
1 -> 80
1 -> 80
80 <- 1
80 <- 1
81 -> 160
160 -> 81
81 -> 160
160 <- 81

Trójargumentowa komenda DISCTL jest używana do ustawiania funkcji związanych z zależnościami czasowymi sygnałów sterujących segmentami wyświetlacza.

Kod polecenia DISCTL CA
Parametr 1 * * * * * * P12 P11 P10
Parametr 2 * * * * * * P22 P21 P20
Parametr 3 * * * * * * P32 P31 P30

Pierwszy parametr określa zależności czasowe sygnałów sterujących CL, F1 i F2 dostępnych na wyprowadzeniach sterownika (znaczenie bitów pierwszego argumentu komendy DISCTL opisano poniżej).

 

P13 P12 Współczynnik podziału sygnału CL
 0
 0
 1
 1
 0
 1
 0
 1
 2
 4
 8
 1
P13 P12 Okres przełączania F1, F2
0
0
1
1
0
1
0
1
8H
4H
16H
pole

Drugi parametr określa zależności pomiędzy współczynnikiem multipleksowania a liczbą linii wyświetlacza. Trzeci parametr określa liczbę linii wyświetlanych inwersyjnie (od 2 do 16). Inwersyjne wyświetlanie jest wyłączone po wyzerowaniu tego parametru (wartość domyślna).
Rozbudowana komenda ACSET (poniżej) pozwala na elastyczne ustawienie obszaru i rodzaju skrolowania

Kod polecenia ASCSET AA
Parametr 1 * * * P15 P14 P13 P12 P11 P10 Adres górnego bloku
Parametr 2 * * * P25 P24 P23 P22 P21 P20 Adres dolnego bloku
Parametr 3 * * * P35 P34 P33 P32 P31 P30 Liczba bloków
Parametr 4 * * * * * * * P41 P40 Tryb skrolowania

Dostępne są 4 tryby skrolowania ustawiane bitami P41 i P40 czwartego parametru komendy (poniżej).

P41 P40 Opis (rys. 5)
0 0 Skrolowanie centralnej części ekranu
0 1 Skrolowanie górnej części ekranu
1 0 Skrolowanie dolnej części ekranu
1 1 Skrolowanie całego ekranu

 

Rys. 5. Tryby skrolowania ekranu

Rys. 5. Tryby skrolowania ekranu

  

Dla współczynnika multipleksowania 1/132 zdefiniowany w sterowniku S1D15G00 blok ma szerokość 4 linii. Dla ekranu o wysokości 132 linii mamy do dyspozycji 32 bloki. Parametry komendy ASCSET definiują adres górnego bloku, adres dolnego bloku oraz liczbę bloków skrolowanego obszaru. Żeby operację przesuwania można było wykonać, to obszar pamięci musi być większy niż pamięć obrazu. Dla tego celu definiuje się dodatkowy obszar nazywany background area o rozmiarze 10 bloków, tak ze cały obszar ma w sumie 42 bloki.
Na przykład przyjmijmy, że będzie skrolowana centralna część ekranu. Obszar skrolowany ma 112 linii czyli 28bloków. Od góry zarezerwujemy na nie skrolowany obszar 8 linii czyli 2 bloki i od dołu 8 linii czyli również 2 bloki. Komenda ASCSET musi mieć parametry:

  • P1 (adres górnego bloku) =2,
  • P2 (Adres dolnego bloku) =39 Ta wartość wynika z dodania wielkości background area (10 bloków) i adresu 29. Adres 29, to 2 bloki górnego obszaru nie skrolowanego i 28 bloków obszaru skrolowanego z zastrzeżeniem że adresy są liczone od 0,
  • liczba bloków 28.

Działanie tak zdefiniowanego przesuwania pokazano na rys. 6

 

Rys. 6. Działanie mechanizmu skrolowania

Rys. 6. Działanie mechanizmu skrolowania

Uruchomienie tak zaprogramowanego przesuwania następuje po wysłaniu komendy SCSTART. Jej parametrem jest adres bloku od którego rozpoczyna się skrolowanie.
Komenda RMWIN działa w połączeniu z komendami CASET i PASET. Używa się jej do wprowadzenia w sterowniku mechanizmu: odczytaj – modyfikuj- zapisz. W pierwszym kroku odczytywana jest dana z lokacji określonej przez bieżącą zawartość licznika kolumn i licznika strony. Odczytanie nie powoduje modyfikacji liczników adresowych. Dopiero po zmodyfikowaniu danej i jej zapisaniu modyfikowane są liczniki adresowe. Działanie trybu odczytaj- modyfikuj- zapisz kończy komenda RMWOUT.
Rozpoczęcie zapisywania danych jest wykonywane po wysłaniu komendy RMWIN. Wykonanie kodu komendy zawsze powoduje ustawienie liczników adresowych na wartości początkowe ustawione komendami PASET i CASET. Dane są wysyłane do sterownika do momentu wysłania dowolnej komendy.
Wyświetlacze LCD ze sterownikiem S1D15G00 są przeznaczone do pracy w urządzeniach przenośnych zasilanych bateryjnie. Matryce LCD wymagają do prawidłowej pracy napięć wyższych niż napięcie baterii zasilające sterownik (3,3…3,6V). Dlatego w sterownik wbudowano przetwornicę pojemnościową podwyższająca napięcie i programowany układ regulacji napięcia zasilania driverów matrycy. Każdy z układów przetwornicy może być programowo włączany lub wyłączany za pomocą polecenia PWRCTR.

Kod polecenia PWCTR 20
Parametr * * * * P13 P12 P11 P10

P10 – sterowanie układem generowania napięcia referencyjnego
P10 = 1 załączony P10=0 wyłączony
P11 – sterowanie układem regulatora napięcia wyjściowego
P11 = 1 załączony P11=0 wyłączony
P12 – sterowanie drugim stopniem boostera
P12 = 1 załączony P12=0 wyłączony
P13 – sterowanie pierwszym stopniem boostera
P13 = 1 załączony P13=0 wyłączony

Napięcie wyjściowe zależy od napięcia podawanego na nieodwracające wejście wzmacniacza, dzielnika rezystorów Rb i Ra  oraz programowanego współczynnika a. Obie te wartości są programowane za pomocą polecenia VOLCTR (poniżej).

Kod polecenia VOLCTR 81
Parametr1 * * P15 P14 P13 P12 P11 P10 a 
Parametr2 * * * * * P22 P21 P20 1+Rb/Ra

 

Parametr 1+Rb/Ra Napięcie
P22 P21 P20
0 0 0 3.95 Małe

Duże

0 0 1 4.27
0 1 0 4.60
0 1 1 4.93
1 0 0 4.26
1 0 1 5.59
1 1 0 5.92
1 1 1 6.25

Parametr 1 komendy VOLCTR można modyfikować przez wysyłanie komendy VOULP (inkrementacja) i komendy VOLDN (dekrementacja). Modyfikacja odbywa się modulo 256.
Korekcja napięcia zasilania driverów matrycy w funkcji temperatury otoczenia jest programowana komendą TMPGRD (poniżej).

Kod polecenia TMPGRD 82
Parametr * * * * * * P11 P10

 

P11 P10 Współczynnik korekcji [%/oC]
0 0 -0,05
0 1 -0,1
1 0 -0,15
1 1 -0,2


O autorze