Kurs AVR6, Elektronika i programowanie

[ Pobierz całość w formacie PDF ]
Kurs AVR-GCC Wyświetlacz LCD od Nokii_3310

 

Artykuł jest dodatkiem poszerzającym tematykę publikowanego na tej stronie .

Jak mówią, jeden obraz wart jest tysiąca słów, dlatego warto zainteresować się wyświetlaczami graficznymi. W tym artykule zajmiemy się wykorzystaniem wyświetlaczy LCD od popularnych niegdyś telefonów komórkowych Nokia 3310/3410. Pewnie niektórzy czytelnicy zastanawiają się, czemu nie wybrałem dużego, kolorowego wyświetlacza o rozdzielczości QVGA. Przede wszystkim ze względu na cenę, szkoda montować w każdym urządzeniu modułu LCD kosztujący ponad 100zł, zaś wyświetlacze od starych komórek praktycznie nic nie kosztują i  też są fajne:) Wyświetlacz od nokii 3310 można kupić na allegro za około 7zł, najlepiej zamówić dwa trzy egzemplarze, na wypadek uszkodzenia - oczywiście u sprzedawcy bez negatywnych komentarzy.

Wyświetlacz LCD od telefonu Nokia 3310 posiada monochromatyczny ekran o rozdzielczość 84x48 (wymiary czynnego pola ekranu 30x20mm). Wyposażony jest w sterownik PCD8544(lub podobny) z szeregowym interfejsem SPI. Dostępny jest wyłącznie tryb graficzny, ale można łatwo programowo zaaranżować tryb tekstowy; przykładowo można pokazać 6 linii tekstu, każda po 14 znaków wielkości 6x8 pikseli.

 

 

Wyświetlacz od telefonu nokia 3310 wraz z oryginalną ramką. Identycznie wygląda wyświetlacz od noki 3410.

 

Wyświetlacz od telefonu nokia 3310 wydobyty z ramki.

 

Wyświetlacz od Nokii3410 wygląda identycznie jak wyświetlacz od Nokii3310, ten sam układ wyprowadzeń złącza, ale ma nieco większą rozdzielczość: 96x65 (można pokazać 8 linii tekstu, każda po 16 znaków 6x8). Wyświetlacz od Nokii3410 wyposażony jest w kontroler "Philips OM6206", który programuje się prawie w ten sam sposób jak kontroler PCD8544 z Nokii3310. Do obsługi obu typów wyświetlaczy będziemy wykorzystywać te same funkcje napisane w języku C.

 

 

LCD Nokia 3310

LCD Nokia 3410

Rozdzielczość

84x48

96x65

kontroler

PCD8544

OM6206

 

Wyświetlacze LCD od telefonów Nokia 3310/3410

 

Podłączenie wyświetlacza do mikrokontrolera AVR

 

Wyświetlacz jest delikatnym elementem, dlatego lepiej jest pozostawić go w jego oryginalnej ramce. Ramkę można odpowiednio przyciąć i wraz z wyświetlaczem przykręcić wkrętami do jakieś płytki, albo przykleić.

Na tylnej stronie ramki wyświetlacza dostępne jest złącze; w telefonie miedziane styki złącza przylegają do ścieżek na płytce drukowanej.

 

Złącze na tylnej stronie wyświetlacza.

 

Nr styku

Sygnał

kierunek

Opis

1

VDD

zasilanie

Zasilanie 2.7 .. 3.3 V

2

SCLK

wejście

Serial clock. Sygnał zegarowy taktujący dane na linii SDIN

3

SDIN

wejście

Wejście danych synchronizowane sygnałem SCLK

4

D/C

wejście

Wejście wyboru rodzaju danych wprowadzanych do sterownika (wyświetlane-1,sterujące -0)

5

SCE

wejście

Wejście aktywujące interfejs szeregowy(aktywny stan niski)

6

GND

zasilanie

Masa zasilania

7

VOUT

zasilanie

Ouptut voltage. Kondensator elektrolityczny 1-10 uF między VOUT i GND.

8

/RES

input

Reset LCD (aktywny stan niski)

 

Opis wyprowadzeń w złączu wyświetlacza od noki 3310/3410

 

Najprostszym sposobem przyłączenia wyświetlacza jest przylutować przewody bezpośrednio do miedzianych styków złącza, bez rozbierania ramki. Ale trzeba lutować szybko i zdecydowanie, inaczej plastykowa listwa, na której osadzone są miedziane styki złącza może się pod wpływem ciepła roztopić i odkształcić.

 

Najprostszym sposobem przyłączenia wyświetlacza jest przylutować przewody do miedzianych styków złącza, bez wyciągania wyświetlacza z oryginalnej ramki.

 

Wyświetlacz z przewodami przystosowanymi do podłączenia do płytki stykowej.

 

Wyświetlacz wymaga napięcia zasilania 2.7-3.3 VDC, zatem najprościej jest zasilać całość: mikrokontroler i wyświetlacz napięciem 3.3V. W takim przypadku wejścia sygnałowe wyświetlacza można podłączyć bezpośrednio do wyprowadzeń portów we/wy mikrokontrolera. Na schematach wejścia sygnałowe wyświetlacza połączone są do wyprowadzeń mikrokontrolera skojarzonych ze sprzętowym interfejsem SPI AVRa atmega. W przykładowych programach, które będziemy dalej uruchamiać, można wybrać sprzętowe lub programowe SPI; w przypadku wyboru programowego SPI, sygnały sterujące wyświetlaczem można przyłączyć do dowolnych porów we/wy AVRa.

 

Schemat 1 Sposób przyłączenia wyświetlacza od nokii3310/3410 do interfejsu SPI mikrokontrolera atmega8(88) zasilanego napięciem 3.3V.

 

Nie wszystkie wersje AVR mogą być zasilane napięciem 3.3V, schemat nr 2 pokazuje, jak można podłączyć wyświetlacz zasilany napięciem 3.3V do mikrokontrolera zasilanego napięciem 5V. Wyświetlacz od Nokii 3310 zużywa minimalne ilości prądu, napięcie 3.3V do jego zasilania można uzyskać stosując dzielnik napięcia: rezystor i dioda zenera 3.3V. Na schemacie wejścia sterujące wyświetlacza połączono z portami we/wy AVRa poprzez bufor 74ls07. Scalony układ 74LS07 zawiera sześć cyfrowych buforów z wyjściami typu otwarty kolektor, wyjścia te zostały podciągnięte rezystorami 330 do napięcia 3.3V.

 

Schemat 2 Sposób przyłączenia wyświetlacza od nokii3310/3410 zasilanego napięciem 3.3V do mikrokontrolera zasilanego napięciem 5V.

Komunikacja z wyświetlaczem

Wyświetlacz od Nokii 3310 wyposażony jest kontroler PCD8544 z szeregowym interfejsem SPI(Serial Peripheral Interface). Interfejs posiada cztery wejścia:

·         SDIN - szeregowe wejście danych,

·         SCLK - sygnał zegarowy taktujący dane na linii, SDIN

·         /SCE - wejście aktywujące interfejs szeregowy,

·         D/C - wejście wyboru rodzaju danych (wyświetlane lub sterujące).

Komunikacja przebiega tylko w jednym kierunku, od mikrokontrolera do wyświetlacza. Zależnie od stanu linii D/C, bajty danych wysyłane do wyświetlacza, mogą być interpretowane przez kontroler jako komendy do wykonania albo dane zapisywane do pamięci RAM obrazu; stan wysoki na linii D/C sygnalizuje daną, stan niski komendę.

Rys.1 pokazuje przebieg transmisji jednego bajtu danych od mikrokntrolera do wyświetlacza Komunikację rozpoczyna się od ustawienia linii /SCE w stan niski, co aktywuje interfejs SPI. Jeśli wysyłany bajt jest komendą, linię D/C ustawia się w stan niski, a jeśli zwykłą daną - w stan wysoki Następnie, linią SDIN, szeregowo(bit po bicie) przesyła się 8 bitów danej, zaczynając od bitu najbardziej znaczącego. Transmisja szeregowa jednego bitu przebiega w następujący sposób: Wpierw na linii danych SDIN ustawia się stan niski lub wysoki, zależnie od wartości przesyłanego bitu; następnie na linii SCLK podaje się impuls: 0-1-0 - kontroler odczytuje kolejne bity danych przy rosnącym zboczu sygnału SCLK. Zmiana na linii /SCE stanu niskiego na wysoki sygnalizuje zakończenie transmisji.

Rys.1 Przesłanie jednego bajtu do wyświetlacza przez SPI.

 

A oto funkcja "lcd_write_byte" realizująca w sposób programowy przesłanie jednego bajtu z mikrokontrolera do wyświetlacza:

 

void lcd_write_byte(unsigned char c_d, unsigned char data )

{

    unsigned char m;

 

    LCD_CE_CLR;

 

    if(c_d) 

       LCD_DC_SET;

    else

       LCD_DC_CLR;

 

    for(char m=0x80; m; m>>=1)

    {       

       if(data & m)

          LCD_DATA_SET;

       else

          LCD_DATA_CLR;

       

       LCD_CLK_SET;

       LCD_NOP;

       LCD_CLK_CLR;

...

[ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • psp5.opx.pl