česky english Vítejte, dnes je neděle 22. prosinec 2024

Nebojte se spousty nožiček – část 2: Zobrazení na monitoru a displeji

DPS 2/2010 | Články
Autor: Ing. Jan Weinbrenner

V tomto článku se zaměříme více prakticky a ukážeme si, jak lze k běžně používaným mikroprocesorům a jednočipům připojit VGA monitor, LCD displej a nebo třeba běžný televizor přes PAL signál. Nebudeme však skromní, bude se jednat o připojení VGA monitoru s max. rozlišením 800×600 pixelů, LCD displej se stejným rozlišením a pro PAL signál 720×576 pixelů. To vše bude až v 65 536 barvách. Zmíněné řešení samozřejmě dovoluje nastavit i menší rozlišení a menší barevnou hloubku podle potřeby. Není ani finančně náročné, činí zhruba 250 Kč za řadič a 60 Kč za videopaměť, přičemž oba dva obvody jsou dostupné.

Jaké jsou možnosti použití popisovaného zařízení?

Vizuální stránka výrobku hraje také svou roli v boji s konkurencí. Dnes bychom stěží prodali zařízení se dvěma sedmisegmentovkami, na kterých se zobrazují kódy typu A6. Další postupný krok, jako např. dvouřádkový displej s 16 znaky, představuje již lepší řešení, ale pro dnes používaná zařízení je také nedostatečné. Grafické displeje představují trend, v používání jsou oba typy displejů, jak monochromatické, schopné zobrazit odstíny šedi, tak i barevné. Naše popisované řešení umožní připojit tyto displeje, i když nemají vlastní řadič. Do této skupiny patří některé displeje s rozlišením 320×240 bodů a prakticky všechny displeje s větším rozlišením.

Další důležitou vlastností tohoto řešení je možnost připojení běžného LCD monitoru. Některé nejnovější LCD displeje (jako součástky) mají také kromě standardních vstupů také VGA vstup. Přitom je ale cena např. 12palcového displeje asi 5× vyšší než cena 15palcového LCD monitoru, který máme na stole. Pokud nám to tedy konstrukční možnosti dovolí, můžeme připojit běžný LCD monitor a tím ušetřit peníze.

Níže popsané řešení by bylo také velmi vhodným výukovým prostředkem. Deska obsahuje výkonný DSP procesor a na vyvedenou sběrnici lze připojit např. DA a AD převodník. Bylo by možné připojit reproduktor a mikrofon, nahrát zvuk, v DSP procesoru realizovat filtry, zvuk přehrát přes reproduktor a přitom sledovat průběhy na malém LCD displeji. Jinou možností by bylo např. připojení malého motorku přes PWM a testovat regulaci otáček atd. To vše lze realizovat při podstatně nižší ceně, než je tomu u karty s převodníky do počítače.

Co je potřeba pro konstrukci obrazového řadiče?

Zmíněnou funkci splňuje řadič obrazu firmy Epson S1D13506. Ten potřebuje pro svou funkci 2MB paměť DRAM typu EDO, nebo „fast page“. Použili jsme paměť firmy ISSI IS41LV161008, kterou vyrábí mnoho výrobců pod různým označením. Dále budeme potřebovat oscilátor o kmitočtu 35 MHz a ještě jeden oscilátor, pokud budeme chtít generovat PAL signál. Zmíněný řadič obrazu tedy provádí generování potřebných řídících signálů pro LCD displej, obsahuje DA převodníky pro připojení VGA monitoru a umí generovat PAL signál v příslušných úrovních. Navíc je současně i řadičem připojené paměti, stará se o její nastavení a refresh.

Jak připojit obrazový řadič k procesoru?

Obrazový řadič se z našeho pohledu chová jako připojená paměť SRAM 2 MB × 16 bitů. Potřebujeme tedy 21 adresových signálů, 16 datových signálů a signály pro čtení, zápis a výběr obvodu. Tento požadavek je pro mnohé mikroprocesory splnitelný bez problému, ale některým je potřeba pomoci. Tak např. pokud používáme osmibitový procesor, ten má většinou 8 datových signálů a 16 adresových signálů. Adresovou sběrnici rozšíříme snadno pomocí výstupů, ale s datovou sběrnicí je to složitější, protože nám pro osmibitový procesor 8 bitů chybí. Jako řešení lze využít známá zapojení, která se používají pro připojení běžného pevného disku s 16bitovou datovou sběrnicí. My v našem návrhu použijeme signálový procesor ADSPBF532, který má 16bitovou datovou sběrnici a 20bitovou adresovou sběrnici. Chybějící jeden adresový signál nahradíme pomocí výstupní linky.

Nebojte se spousty nožiček 1

Obr. 1 Připojení displeje

Na obr. 1 je vidět blokové schéma pro připojení k procesoru z katalogového listu, kde je zobrazeno připojení 4bitového displeje. Osmibitový a 18bitový displej, pasivní i aktivní, lze také připojit, je ale potřeba vše správně nastavit v registrech řadiče. Na následujícím obr. 2 je vidět zapojení naší funkční desky řadiče obrazu. Obsahuje VGA konektor, konektory pro připojení napájecího napětí, TFT displeje, PS2 myši a několik vstupně výstupních linek. Obsahuje také vyvedenou SPI a UART sběrnici pro případné připojení k nadřazenému systému. Celý obvod je položen na dvouvrstvé desce a propojen autorouterem.

Nebojte se spousty nožiček 2

Obr. 2 Deska řadiče displeje

Jak se řídí řadič po softwarové stránce?

Zde nás čeká asi nejvíce práce. Jako první musíme nastavit registry pro dané rozlišení a frekvence obrazu. Velkým pomocníkem je v tomto případě volně stažitelný program od výrobce. Vstupem je rozlišení, barevná hloubka obrazu a obnovovací frekvence. Pro LCD displeje také hodnoty synchronizací z katalogového listu. Použitý program nám vygeneruje hlavičkový program nastavení registrů pro použití v jazyku C. Zde je třeba dát pozor na malý a velký endián. Na začátku jsme nutili zobrazovat monitor 1 245 Hz, nebo naopak měl horizontální frekvenci 3 kHz.

Řadič umí zobrazovat námi definovaný hardwarový kurzor na požadované pozici. Zobrazovaný obraz může být také jen částí většího virtuálního obrazu, a proto řadič umí zajistit i jemné rolování obrazu, stejně jako přesouvat bloky dat v paměti. Ale i tak nás ještě čeká další práce na obvodu. Pokud chceme zobrazit bod určité barvy, musíme na příslušné místo do paměti zapsat správnou hodnotu. Pokud chceme nakreslit čáru, musíme zobrazit správné body. Z toho je patrné, že obraz vidíme softwarově jako kus paměti. Všechny grafické primitivy musíme naprogramovat, přičemž si musíme ujasnit, co od výsledku očekáváme.

Když budeme zobrazovat v rozlišení 320×240 bodů v 16 barvách, vše je bez problémů. Pro zobrazení 800×600 pixelů v 65 536 barvách zabírá obraz 1 MB dat a to by pro pomalejší 8bitové procesory mohl být problém. Jenom smazání obrazu by potom mohlo trvat několik sekund.

Jestliže však použijeme rychlý procesor, jako například zde v podobě DSP, potom je úzkým hrdlem dynamická paměť připojena k řadiči. Ale i tak můžeme překreslovat procesorem desítky snímků za sekundu. Z našich vlastních zkušeností můžeme říci, že to byla jedna z nejzajímavějších prací, které jsme dělali. Výsledky jsou ihned vidět na displeji nebo na monitoru. Navíc si člověk může velmi dobře prověřit schopnosti překladače jazyka C. Některé konstrukce bylo třeba z důvodu rychlosti přepsat. Je přeci jenom velký rozdíl, pokud se obraz zobrazí na monitoru za 1/4 sekundy a nebo za 3 sekundy. Některé rutiny je vhodné přepsat do assembleru.

Jak připojit PS/2 myš, popřípadě klávesnici k mikroprocesoru?

Následující řešení si opět popíšeme jenom jednoduše. Lze říci, že PS/2 zařízení používá 2 signály. Jsou to hodiny a data. Jak je vidět na následujícím obr. 3, tak pro připojení PS/2 zařízení použijeme zapojení, které využívá 4 piny procesoru, dva vstupní a dva výstupní. Jedná se o zapojení s otevřeným kolektorem. Musíme tedy nastudovat komunikační protokol např. ze stránek http://www.computer-engineering.org/ps2protocol/. Potom jsme schopni nastavit u myši citlivost a některé další parametry, přečíst posun myši, rolovací kolečko, stav tlačítek atd. Pro počáteční pokusy doporučujeme použít standardní 3tlačítkovou myš. Na jednu věc je potřeba dát pozor. V popisu protokolu je uvedeno, na jakou dobu má být ten který signál nastaven do nějaké hodnoty, a tu je potřeba dodržet.

Nebojte se spousty nožiček 3

Obr. 3 Připojení myši

Závěr

V tomto článku jsme si ukázali připojení vstupně výstupních zařízení v podobě displeje, monitoru a myši. Uvedená řešení lze prakticky využít v konstrukci nových výrobků. Řešení má přínos nejenom z technického, ale i z obchodního hlediska. Přeci jenom se lépe prodává zařízení, u kterého lze na barevném displeji o úhlopříčce 15 cm vidět zobrazenou technologii a měřené hodnoty. I když je zde trochu programování navíc, rozdíl v ceně materiálu oproti dvouřádkovému displeji je jen asi 1 500 Kč. Nedá nám, abychom neuvedli pohled i ze strany kutila. V hodnotě do tisíce korun si postavíme zařízení, ke kterému připojíme televizor a pomocí myši si zahrajeme vlastnoručně naprogramovaný plnobarevný tetris.