24 Październik 2017 00:36
Nawigacja
Zachodniopomorski OT PZK
· Strona główna
· Władze ZOT PZK
· Informacje ZOT
· Aktualne składki
· Składki do ZG PZK
· Napisz do ZOT
· Galeria zdjęć

Zawody
· Zawody DNI MORZA
· Dni Aktywności SP1

W sieci
· Ciekawe linki

Technika
· Bosch KF161
· Programator UniProx
· Wyświetlacz LCD Nokia
· >>> wszystkie artykuły
Pobierz
· Publikacje techniczne
· Pozostałe publikacje
· UKE
· Deklaracja PZK

Ostatnie artykuły
· SKŁADKI DO ZG PZK
· SKŁADKI NA ROK 2017
· Opracowania Krzyszto...
· VX3 - SP1WSR
· Trzaski m.cz. w TS52...
Strony klubowe:
· SP1KMK

· SP1KRF

· SP1KZE

· SP1PBW

· SP1PMY

· SP1PNW

· SP1PWP

· SP3YPR

LCD Nokia 3410
NOKIA 3410 (Philips OM6206)


Dawno chciałem napisać o "wygodnym w wielu zastosowaniach sposobie przedstawienia informacji" ,tj. o wyświetlaczu LCD Nokia3410. Jest to graficzny czarno-biały wyświetlacz o rozdzielczości 96 x 65 punktów, posiadający interfejs SPI o maksymalnej prędkości 4 Mb/sek. Napięcie zasilania +2.7V...+3.6V, pobór prądu jest mniejszy od miliampera. Istnieje możliwość pracy (w trybie programowania) w reżimie niskiego poboru energii (wyłączenie).
Bezpośrednio na szkle ekranu znajduje się kontroler zarządzający. Ekran w tym telefonie umieszczony jest w obudowie z tworzywa sztucznego.
Ramka nie jest koniecznym elementem konstrukcji, ekran pracuje i bez niej. Jednak gorąco tego nie polecam - możecie nie zdążyć go podłączyć ! Problem w tym, że listwa z polem kontaktowym, o których mowa niżej, zamocowana jest do szkła tej właśnie ramki. Jest i plus - obudowę z tworzywa można wykorzystać do umocowania wyświetlacza.

Na rysunku widać listwę z kontaktami i rozkład pinów na LCD Nokia3310 (jest identyczny z Nokia3410).
(Niestety rysunek sie nie "wkleił". Łatwo znajdziesz go w sieci - sp1vdv)

Do podłączenia przewodów z kontaktami należy wykonać (lub znaleźć) przyłącze. W ostateczności można przylutować przewody do kontaktów (sprężynek). Podczas lutowania należy zachować ostrożność aby nie przegrzać i nie zbić szkiełka.

Interfejs

Do sterowania wyświetlaczem potrzebujemy 5 linii. Oznaczenia poniżej

Wyjście Oznaczenie Funkcja

1 VDD zasilanie +2.7...+3.3V
2 SCLK Synchronizacja
3 SDIN Dane
4 D/C Reżim: dane(HIGH)/komenda(LOW)
5 SCE (enable) Wybór rezonatora (LOW)
6 GND Masa
7 VOUT (Vlcd) Napiecie wew.
8 RES Reset (LOW)

Pomiędzy VOUT a GND powinien być podłączony kondensator o pojemności od 1uF do 10uF - filtr dla wewnętrznego źródła zasilania LCD. Od razu po podaniu napięcia zasilającego LCD trzeba koniecznie zresetować układ podając na wyjście RES "0". Inaczej można uszkodzić kontroler !
Po zresetowaniu (przeniesienie RES "0" -> "1") kontroler jest gotów do zapisu. Odczyt z kontrolera nie jest przewidziany.

Zastosowanie standardowego protokołu SPI : na wyjście SCE podajemy aktywny niski poziom i po linii SDIN wprowadzamy bity danych. Zatrzaskiwanie bita następuje na przednim zboczu SCLK, przesunięcie na tylnym, dane przechodzą dalej do przodu ku starszym bitom (MSB). Jeśli w czasie nadawania ostatniego bitu z ośmiu na wyjściu D/C jest logiczna "1", to zapis przechodzi do pamięci danych, w przeciwnym wypadku kierowany jest do registrów.



Wyświetlacz i pamięć danych
W kontrolerze realizowana jest matryca pamięci 102x65 bit, ale na ekran wyprowadzonych jest tylko 96x65 punktów. Całe pole ekranu podzielone jest w poziomie na 8 wierszy po 8 pikseli każdy (razem 64 punkty) plus dziewiąty wiersz, który ma tylko jeden piksel. Każdej kolumnie (Xi) danego wiersza (Yi) odpowiada jeden bajt pamięci, przy czym zewnętrznemu pikselowi odpowiada zerowy bit (LSB). Wybierając numer kolumny i wiersza, przekazujemy bajt do pamięci danych i jest on wyświetlany na ekranie w postaci kolumny 8x1. Po zapisie bajtu automatycznie zwiększa się wskaźnik adresu kolumny lub wiersza w zależności od stanu (Function Set, bit H). Jeżeli ponownie prześlemy bajt do pamięci danych, to ujawni się on w tym wierszu (w tej kolumnie) z przesunięciem o jeden piksel w prawo (8 pikseli w dół). Jeżeli w trakcie zapisu nastąpi koniec wiersza y=yi; x=101 to następuje przejście na następny wiersz y=yi+1; x=0. Analogicznie dzieje się tak dla kolumn.
Żeby być pewnym, że zapis zachodzi we właściwym obszarze ekranu, pokazanego wyżej automatycznego przeniesienia wierszy (kolumn) lepiej nie stosować, a obserwować położenie w programie. W szczególnych przypadkach, pozwala to pisać programy i szybko przekompilować na Nokię 3310, która ma tylko 84x48 punktów.

Registry
Do realizacji trybu pracy służy kilka uprawnionych registrów. Zapis w nich zachodzi przy "0" na wyjściach D/C.

Komenda D/C ; Bajt (D7...D0) ; Wyjaśnienie
Write Data ; 1 dddd dddd ; zapis danych do pamięci wyświetlacza
Function set ; 0 0010 0PVH ; zarządzanie zasilaniem, sposób wprowadzenia, wybór rozszerzonych instrukcji

Pierwsza komenda - przesłanie bajtu do pamięci wyświetlacza, dddd dddd - zwykły bajt danych. Komenda Function Set zmienia 3 zarządzające bity:
P - PowerDown; P=1 - rezonator włączony; P=0 - rezonator w trybie niskiego poboru energii
V -adresowanie ; V=1; po zapisie bajtu zwiększa się wskaźnik adresu wiersza; V=0 - kolumny
H - pobranie instrukcji; H=0 - zwykła; H=1 - rozszerzona

Pobranie instrukcji dla H=0:
Komenda D/C ; Bajt (D7...D0) ; Znaczenie
Display Control ; 0 0000 1D0E ; tryb wyświetlania
Set Y ; 0 0100 0YYY ; ustalenie adresu wiersza (linii)
Set X ; 0 1XXX XXXX ; ustalenie adresu kolumny

Komendy Display Control włączają kolejne tryby wyświetlania:
D=0, E=0 - pusty wyświetlacz
D=1, E=0 - zwykły tryb ("0" - świecąca kropka, "1"-ciemna)
D=0, E=1 - wszystkie elementy włączone
D=1, E=1 - tryb inwersji ("1" - świecąca kropka, "0"-ciemna)

Pobór instrukcji dla H=1:
Komenda D/C ; Bajt (D7...D0) ; Znaczenie
Temperature Control ; 0 0000 01TT ; ustalić współczynnik temperatury
Bias System ; 0 0001 0BBB ; wybrać system zasilania
Set Vop ; 0 1VVV VVVV ; włączyć zasilanie wyświetlacza

Znaczenie i argumenty komend z H=1 długo by wyjaśniać i jest to skomplikowane. Dlatego proponuję posłużyć się czysto dyletanckim sposobem. Wstawiamy : TT=00, BBB=011, VVVVVVV=100 1000, i wszystko będzie . Tym, którym to nie wystarcza - niech czytają datasheet.
Nie przedstawione wyższe kody komend są zarezerwowane i ich stosowanie jest niedopuszczalne.




Inicjalizacja
Następujący kod na pseudo-C pokazuje algorytm inicjalizacji wyświetlacza :
bit_dc=0;
bit_cs=1;
bit_reset=0; // reset
delay(500); //w mikrosekundach
bit_reset=1;
delay(500);

bit_cs=0;
bit_dc=0; // zapis do registru
Send_SPI(0x21); // włączyć zasilanie, testowanie, komendy
Send_SPI(0x13); // bias=3
Send_SPI(0xC8); // włączyć wewnętrzne źródło, Vop=0x48;

Send_SPI(0x20); // zwyczajny zestaw instrukcji
Send_SPI(0x0c); // normalny tryb wyświetlania D=1 E=0
bit_cs=1;

/* Po zrzucie X=0 l0; Y=0, a w pamięci - na wszelki wypadek - resztki */

bit_cs=0;
bit_dc=1; // zapis do pamięci ekranu
for(i=0;i<909;i++) Send_SPI(0); // czyszczenie z resztek - na wszelki wypadek.
bit_cs=1;

// następnie można wybrać X i Y i zaczynamy rysowanie...

Zakończenie
Tekst ten powstał w wyniku braku instrukcji sterownika Philips OM6206 (Nokia3410). Różnica pomiędzy Philips PCD8544 (Nokia3310), a opisanym wyżej sposobem sterowania LCD Nokia 3410 polega na liczbie pikseli i, prawdopodobnie, rozszerzeniu komend. Poza tym interfejs jest bardzo podobny.

Źródło : http://www.radioscanner.ru/forum/topic31754.html
Tłumaczenie : SP1VDV
PS. Artykuł najlepiej traktować jako uzupełnienie datasheet Lcd chip: Philips OM6206 (102x65),
np. tu : http://www.alldatasheet.com/datasheet-pdf/pdf/85628/PHILIPS/OM6206.html (free)

Pozdrawiam
Logowanie
Nazwa użytkownika

Hasło



Nie masz jeszcze konta?
Zarejestruj się

Nie możesz się zalogować?
Poproś o nowe hasło
Szybkie info
Musisz zalogować się, aby móc dodać wiadomość.

07/06/2017 09:07
5-11.06.2017r. Dni Aktywności SP-1

27/04/2017 16:07
13 maja zapraszamy na wersję piknikową Gorzowskich Spotkań Krótkofalowców w... Santoku. Więcej tu: http://sp3ypr.pl/?
ap=gsk6&ak=rozne&ar=
gsk

07/03/2017 22:12
@ SP1MVS - link poprawiony. Dzięki za zwrócenie uwagi.

21/02/2017 09:31
JUŻ OSTATNIE DNI DO ZAPŁACENIA SKŁADKI CZŁONKOWSKIEJ . Sad

22/01/2017 09:38
TO JUŻ DZISIAJ ŚNIEŻYCA 2017 15.30-18.10 Shock

Wygenerowano w sekund: 0.06 Original theme by Nick Jones Modyfied into Gillette_Blue by Harly 555,340 Unikalnych wizyt