Ovládání grafického LCD z telefonu

   Displej má označení HP97502QC-DYPO, na internetu jsem našel jen popis nejspíš stejného displeje s označením LPH7653 s řadičem PCF8558. Displej jsem získal ze staršího bezdrátového telefonu od Philipsu, ale typ už nevím. Některé zahraniční firmy ho nabíze(jí/ly) jako náhradní díl za v přepočtu asi 200KČ.
   Dipsplej má rozlišení 97x35 bodů a je čistě grafický - nemá vlastní znakovou sadu. Výhodou tohoto displeje je, že je řízen aériovou sběrnicí I2C (400kHz verze), takže postačí 2 vodiče. Pracuje s napájením 3V3 a ještě potřebuje záporných alespoň -5V. Díky nízkému odběru ho lze přizpůsobit 5V logice pomocí odporového děliče. Má i LED podsvětlění.
   Kontrast displeje není sice nijak uchvacující, ale postačuje. Rovněž odezva vlastního LCD je docela pomalá. Lze ho použít jako grafický nebo po vytvoření znakové sady jako znakový displej 4x16 znaků se standardním fontem 5x7 bodů. Znakovou sadu lze uložit třeba do sériové EEPROM 24Cxx připojené na stejnou sběrnici jako LCD.


Číslování a význam vývodů

   Vývody na pásku mají rozteč 1,27mm a číslování je naznačeno na obrázku.


Vývod Název Funkce
1 LED- GND pro podsvětlení
2 LED+ Napájení LED +5V 20mA
3 Vee Záporné napětí -6 až -8V - řídí kontrast (při -6V max 0,1mA)
4 Vcc napájení +3V3 max 0,1mA
5 GND GND displeje
6 SCL hodiny sběrnice I2C
7 SDA data sběrnice I2C

Komunikace s displejem

   Jak už jsem psal, displej komunikuje po 400kHz I2C sběrnici. Do řadiče LCD lze pouze zapisovat. Způsob komunikace naznačuje obrázek.


   Nejprve se vyšle start podmínka. První vyslaný byte je kód řadiče (0x7A). Druhý byte nastavuje funkci řadiče a volí řádek displeje. Třetí byte určuje sloupec displeje. Následuje 1 až 505 bytů obrazových dat (klidně i víc - zapisuje se znovu od začátku). Nakonec se ještě musí vyslat stop podmínka. Ta může být vyslána po libovolném počtu bytů - třeba hned po nastavovacím bytu. Každý datový byte odpovídá svislé osmici bodů. Bit LSB je nahoře. Celý displej je rozdělěn na 5 svislých osmic bodů a 97 sloupců. Na pátou "osmici" zbývají jen 3 body. V následujících tabulkách je uveden význam 2 ovládacích bytů.

Nastavovací byty
Byte DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Význam
Příkaz 0 E D PD V Y2 Y1 Y0 Nastavuje řádek displeje a způsob adresování
Adresa v X 0 adresa Nastavuje sloupec 0 - 100

Adresy řádků
Y2 Y1 Y0 řádek
0 0 0 1
0 0 1 2
0 1 0 3
0 1 1 4
1 0 0 5
Ovládací bity
E D Funkce
0 0 smaže obsah displeje
0 1 neguje obsah displeje
1 0 rozsvítí všechny body
1 1 "odneguje" obsah displeje
Nastavovací bity
PD 0 - normální režim
1 - úsporný režim (vypne LCD)
V 0 - horizontální adresování
1 - vertikální adresování

   Bit PD slouží k uvedení displeje do úsporného režimu (displej se vypne). Bit V určuje způsob adresování. Horizontální adresování znamená, že při zapisování více datových bytů se automaticky zvyšuje hodnota sloupce X. Po naplnění řádku se začíná zapisovat na další opět zleva. Podstatné je, že při zapisování celého displeje najednou se na každý řádek musí poslat 101 bytů, přičemž poslední 4 nejsou zobrazeny. Vertikální adresování znamená, že po každém zápisu se zvyšuje hodnota řádku Y a po zapsání pěti bytů se zapisuje v následujícím sloupci od hora. Graficky je způsob zápisu nakraslen na obrázcích níže. Význam bitů E a D je uveden v tabulce.
   Bity Y2, Y1 a Y0 nastavují počáteční řádek zápisu. Adresa v X nastavuje počáteční sloupec zápisu v rozsahu 0-100 (vidět je jen 0-96).




Ukázkový program

   Záporné napětí generuje měnič s 555. Zenerka omezuje maximální napětí na cca -6,2V, což je pro displej akorát. Impulzy lze případně generovat i procesorem. Displej je napájen přes dělič napětím asi 2,6V. S procesorem je propojen přes dělič, který upravuje napěťové úrovně. Bez děliče a v případě, že je ve sloupci víc než 8 černých pixelů, výrazně poklesne kontrast celého sloupce. Program je určen pro krystal 12MHz Funkce je popsána ve zdrojáku.

Zdroják


Poslední aktualizace: 27.1.2009