Jak ovládat TFT LCD Displej


Nedávno mi „odešel“ starý notebook (PII DELL233MHz), který jsem používal doma na programování atmelů a v práci na nastavování ústředen elektronického zabezpečení. Bylo mi ho líto vyhodit, tak jsem ho rozebral, pár věcí použil jinak a jinde a nakonec mi zbyl displej. Tak jsem ho taky vymontoval abych se pokusil, ovládat ho mikrokontrolérem Atmel.

Předem tohoto článku bych chtěl poznamenat, že v oblasti elektroniky jsem pouhý amatér a samouk. Právě proto je tento článek více osobní než odborný.

Na zadní straně jsem objevil štítek výrobce, kde byl napsán i typ a výrobní číslo.  Jedná se o displej firmy SHARP LQ12S56, který má velikost 12,1“ , a rozlišení 800x600 pixelů. Na internetu jsem našel datasheet k tomuto displeji (viz obrázek  1 a 2) a díky tomu jsem získal nejen zapojení konektoru, ale i časování vstupních signálů a tabulku napájecích a ovládacích napětí včetně absolutních hodnot.

Zapojení konektorů SHARP LQ12S56
Obr. 1 - Zapojení konektorů SHARP LQ12S56

Časování signálů SHARP LQ12S56
Obr. 2 - Časování signálů SHARP LQ12S56

Konektor LCD displeje je opravdu hodně malý pro amatérské podmínky, přesto se mi podařilo na tento konktor napájet 40žilový kabel (používaný např. k HDD). Na druhý konec jsem osadil 40pinový samořezný konektor. Jeden pin GND jsem vynechal. Kabel jsem na straně pájení zalil lepidlem, abych už nikdy nemusel absolvovat ono pájení – byla to fakt piplačka. Tím byl připravený ovládací konektor. Viz obrázek č.3

Připojovací
Obr. 3 - Připojovací "konektor"

Z datasheetu jsem zjistil, že displej má ovládání barevných vstupů R,G,B přímo digitálně tj. 6 bitů na jednu barvu tedy 18bitové rozlišení jednoho pixelu. Toto je výhoda, neboť některé hlavně novější displeje používají propojovací technologii LVDS, čímž se vše stává složitějším.

Druhý konektor na LCD displeji je pro podsvícení.Jedná se v podstatě měnič na vysoké napětí, které je použito pro rozsvícení zářivky. Na tento měnič jsem žádný datasheet nenašel, tak jsem musel trochu laborovat. Objevil jsem na měniči dva integrované obvody:

  1. – DS1803 dvojitý digitální potenciometr
  2. – UC3872DW řízení měniče pro zářivku

Tady už nebyl problém najít příslušné datasheety pro tyto obvody a zjistit tak napájecí napětí a jejich ovládání. Pomocí prozváněčky jsem identifikoval všechny piny konektoru pro podsvícení. Viz obrázek č.4.

Zapojení konektoru podsvícení SHARP LQ12S56
Obr. 4 - Zapojení konektoru podsvícení SHARP LQ12S56

Připojil jsem GND na piny 1 - 3, dále +5V na pin 7 a +12V na piny 8,9,10 a zářivka podsvícení se rozzářila na plný výkon. To mi pro mé pokusy stačilo, nechtěl jsem se zdržovat bastlením něčeho čím bych ovládal obvod DS1803 po linkách SDA a SCL (I2C) a snižoval tak digitálně jas podsvícení displeje.

Konečně jsem se mohl věnovat samotnému ovládání. Ale ouha!! Z datasheetu jsem vyčetl, že hodinový kmitočet displeje je 40MHz a můj oblíbený atmel AT89C52 má maximální frekvenci 24MHz a jeho interní kmitočet je ještě navíc dělen dvanácti. Začal jsem tedy pátrat po rychlejších mikroprocesorech např. AVR apod. Bohužel všechny ač inovované (bez dělení interního kmitočtu – nové typy atmelů apod.) byly pořád pomalé. A tak jsem pátral dál. Nejvýhodnější by bylo hradlové pole např. XILINX, dokonce jsem si stáhnul program XILINX ISE 6 a spoustu literatury a datasheetů, ale přiznám se, že asi po týdnu usilovného čtení a učení jsem hradlová pole vzdal. Předsudky tedy nelhaly.

Naštěstí jsem našel na internetu http://www.volny.cz/ekrakonos/vga1/cz_vga1.htm podobné zapojení, což pro mě byl impulz jak sestavit ovládání pro displej z jednotlivých integrovaných obvodů. Pro napájení displeje +3,3V jsem použil dva paralelně zapojené stabilizátory napětí LE33 v katalogovém zapojení.

Typické zapojení LE33
Obr. 5 - Typické zapojení LE33
 
Rozložení vývodů LE33
Obr. 6 - Rozložení vývodů LE33

Moc jsem se těšil jak to všechno zapojím a odzkouším na nepájivém kontaktním poli a tak jsem z unáhlenosti nakoupil příslušné integrované CMOS řady 4000-4500. Zapojil jsem vše podle schématu a připojil napájecí napětí a nic. Přepojil jsem tedy obvody čítačů do kaskády na vstup použil krystalový oscilátor v pouzdru DIL8 40MHz a na jeden s posledních výstupů kaskády zapojil LED diodu, která místo cca 1Hz blikání stále svítila. Takže chyba byla v čítání. Ale kde. Znovu jsem prohledal datasheety pro řadu CMOS 4000 a zjistil jsem, že nejvyšší rychlost hradla této řady je 6MHz. AHA!!!. Takže jsem nakoupil stejné obvody, ale řady 74HCT, vše zapojil podle schématu na obrázku č.7, připojil napájecí napětí a nic.

Schéma zapojení testovacího přípravku
Obr. 7 - Schéma zapojení testovacího přípravku

Byl jsem tak natěšenej, že jsem zapoměl zapojit vstupy barev R,G,B. Použil jsem tedy nejvyšší bit R5, G5, B5 a připojil je na GND. Všechny pixely na dispeji zčernaly. Zkusil jsem bit R5 přepojit na +V a všechny pixely na displeji zčervenaly.

Po připojení bitu R5 displej SHARP LQ12S56 zčervenal
Obr. 8 - Po připojení bitu R5 displej SHARP LQ12S56 zčervenal

Paráda, měl jsem fakt radost. Dál jsem zkusil zapojit barvové vstupy RGB do horizontálního časování a to tak , že:

  • Bit R5 na výstup čítače IC8A pin 11 – QA
  • Bit G5 na výstup čítače IC8A pin 10 – QB
  • Bit B5 na výstup čítače IC8A pin   9 – QC

A na displeji se zobrazilo několik barevných a svislých pruhů po osmi barvách.:

Na displeji se zobrazilo několik barevných a svislých pruhů po osmi barvách
Obr. 9 - Na displeji se zobrazilo několik barevných a svislých pruhů po osmi barvách

Pak jsem zkusil to samé, ale s vertikálním časováním a pruhy se zobrazily stejné, ale vodorovné. :

Vodorovné pruhy na displeji SHARP LQ12S56
Obr. 10 -Vodorovné pruhy na displeji SHARP LQ12S56

Pro pořádek dodávám, že měnič pro záživku produkuje rušení okolo 40kHz a ruší tak obraz displeje v horizontální synchronizaci, proje je dobré plechový rámeček okolo displeje připojit na GND. No a teď už zbývá jen připojit pamět SRAM a EPROM pro generátor znaků a mám displej k mému oblíbenému Atmelu. Ale to už je námět na další článek

Jan Smolík
honzasmolik@ volny.cz
Průměr: 4.6 (hodnocení: 25)

40Mhz

Dobrý den,

40Mhz je hodinový kmitočet displeje, který vlastně udává potřebnou dobu k zobrazení jednoho pixelu, což je 25ns. Abychom získali obnovovcí frekvenci musíme vynásobit skutečnou délku jednoho řádku, což je 88+800+40+128=1056 hodinových pulzů x 4+23+600+39=666 řádků a to celé vynásobíme x jeden hodinový pulz tj. 25ns, a výsledek je cca 0,017... takže obnovovací frekvence displeje je cca 17ms. (tedy cca 60Hz)

Nové displeje s vysokým rozlišením a vyšší obnovovací frekvencí musí mít hodinový kmitočet ještě daleko vyšší...

smoldan

40MHz

Nechápu to jak jste zmínil že displej potřebuje kmitočet 40MHz.... Tím jste myslel že pro slušnou obnvovací freqenci je třeba takto vysoký hodinový kmitočet??

re: 40MHz

myslis vetu: Z datasheetu jsem vyčetl, že hodinový kmitočet displeje je 40MHz a můj oblíbený atmel AT89C52 má maximální frekvenci 24MHz a jeho interní kmitočet je ještě navíc dělen dvanácti. ???

neznamena ze je obnovovaci frekvence 40MHz ale ze potrebujes s displejem komunikovat na takove frekvenci. je to ten trosku nestastne zvolena formulace vety, nic vic nic min...