Produkty Novinky Články Návody Kontakty

Realizace

Obsah nákupního košíku je vidět na obrázku 1.16. Textově je tento seznam uveden v tabulce 1.7. Začneme umístěním trimru R5, konektoru JP1 a JP2 na plošný spoj. Trimr R5 umístíme dvěma vývody pevného odporu trimru směrem k vodiči napájecího napětí, resp. směrem k integrovanému obvodu U1. Vývod sběrače trimru pak bude směřovat k vodiči země. Tři dírky vedle trimru umístíme menší konektor JP1 a to tak, aby po zasunutí zásuvky tato lícovala s hranou DPS.
Značka Ks Název Objednací kód Cena/ks
DIS1 1 LCD displej 16x2, STN, LED GES05105205 274,- Kč
R5 1 Trimr 2k2, 10x10mm; 5%, horizontální GES05302883 5,50 Kč
JP1 1 Konektor male 90° do PCB, 10PIN GES06600571 2,50 Kč
JP2 1 Konektor male 90° do PCB, 4PIN GES06600565 0,75 Kč
-- 1 Zásuvka k PSS s vodičem 30cm, 10PIN GES06615186 19,90 Kč
-- 1 Zásuvka k PSS s vodičem 30cm, 4PIN GES06615182 9,90 Kč
Tabulka 1.7 LCD displej - seznam součástek
obrázek hwkit-lcd-soucastky
Obrázek 1.16 LCD displej - obsah nákupního košíku
Hned vedle konektoru JP1 umístíme delší konektor JP2. Přesné umístění součástek je patrné z obrázku 1.17. Trimr a oba konektory zapájíme. Trimr bude držet v dírkách sám, konektory musíme nejprve lehce přichytit troškou cínu nebo kalafuny za jeden z pinů a pak je zapájet nahotovo.
obrázek hwkit-lcd-pajeni-soucastek
Obrázek 1.17 LCD displej - pájení součástek
Nyní je čas začít pájet spoje. Začneme delším konektorem JP2. Drátky na straně součástek (viz obrázek 1.18) zapájíme mezi piny konektoru JP2 a místem kudy prochází datová sběrnice a řídící signály /Strobe a /Autofeed. Postupujeme od levé strany konektoru JP2 (od trimru R5). První pin konektoru JP1 propojíme s řídícím signálem /Strobe, druhý se signálem /Autofeed, třetí s datovým signálem D0 atd. Na straně spojů tyto drátky spojíme s piny konektoru JP2 vytvořením můstku pomocí většího množství cínu. Potom druhé konce těchto drátků spojíme s vodiči datové sběrnice a vodiči řídících signálů tímto postupem (viz obrázek 1.18) - odizolujeme si kus drátku, přípájíme jej jedním koncem k drátku od konektoru JP2 a pak jeho druhý konec připájíme k již existujícím drátku spojujícím integrovaný obvod U1 s datovou/řídící sběrnicí. Nakonec jej štípacími kleštěmi zakrátíme. Delší drátky pro jistotu připájíme k DPS zhruba uprostřed jejich délky.
Pokračovat budeme se spoji konektoru JP1 a trimru R5. Začneme spoji se zemí, pro které budeme používat modré drátky. U trimru R5 spojíme drátkem se zemí levý a prostřední pin (viz obrázek 1.18). U konektoru JP1 nejprve propojíme drátkem pin 1 a 4 (bráno zleva) a pak pin 1 propojíme se zemí. Oranřovým drátkem, který bude končit jednu dírku před konektorem JP1 spojíme pin 2 konektoru JP1 se společným vývodem odporové sítě RN1, který je připojen na napájení. Potom drátkem modrobíle barvy propojíme pin 3 konektoru JP1 s pravým pinem trimru R5. Nakonec na straně spojů propojíme oranžový a modrobílý drátek s piny konektoru JP1. Použijeme opět odizolované kousky drátku (viz obrázek 1.18).
obrázek hwkit-lcd-pajeni-spoju
Obrázek 1.18 LCD displej - pájení spojů
LCD displej budeme připojovat k HW přípravku pomocí dvou kabelů: 4pinového a 10pinového. Díky výrobci konektorů PSS jsme uštřeni nacvakávání žil kabelu na piny konektoru PSS. Jediné, co musíme udělat je přípájení žil obou kabelů k LCD displeji.
Konektory PSS nasadíme do konektorů JP1 a JP2 na HW přípravku. Černou žílu 4-žilového kabelu zapojeného do konektoru JP1, tedy první žílu zleva, připájíme na pin 1 LCD displeje. Drát nasadíme na displej shora a zapájíme jej ze strany spojů na plošném spoji LCD displeje. Podobně postupujeme u hnědé a červené žíly. Poslední oranžovou žílu ale připájíme až na pin 5 LCD dspleje (viz schéma 1.15)! Pokračujeme dále se 10-žilovým kabelem. Jeho první černou žílu zapájíme na pin 4 LCD displeje, dále hnědou žílu na pin 6 atd až skončíme u pinu 14, ke kterému připájíme desátou bílou žílu. Výsledek je patrný z obrázku 1.19. Pomocí tenkých drátků svážeme žíly obou kabelů k sobě. Nejlépe na několika místech. Vytvoříme tak kompaktnější kabel.
obrázek hwkit-lcd-displej
Obrázek 1.19 LCD displej - kabeláž k displeji
Displej můžeme kvůli kompaktnosti pomocí drátků přichytit k plošnému spoji HW přípravku. Výsledek našeho snažení je vidět na obrázku 1.20.
obrázek hwkit-lcd-komplet
Obrázek 1.20 LCD displej - komplet

Oživení

Před samotnou zkouškou pod napětím provedeme důkladnou vizuální kontrolu. Na straně součástek zkontrolujeme správnost zapojení oproti schématu na obrázku 1.15. Na straně spojů se zaměříme na vodiče datové a řídící sběrnice. Pečlivě zkontrolujeme, že tyto vodiče nejsou vzájemně propojeny a že jsou pevně uchyceny. Dáme si pozor na nechtěné spoje ukryté pod nánosem kalafuny.
Jestliže vizuální kontrola neodhalila žádné nedostatky, zkusme připojit napájecí napětí +5V. Měla by se rozsvítit horní řada znaků LCD displeje (vzi obrázek 1.21). Trimrem R5 musí být možné regulovat jas LCD displeje. Pokud se tak děje je zapojení v pořádku. Další ověření funčnosti provedeme až při implementaci ovladače pro zařízení LCD displeje.
obrázek hwkit-lcd-oziveni
Obrázek 1.21 LCD displej - oživení

Ovladač

Vzorový kód ovladače zařízení lcd1602, včetně projektu v Eclipse je ke stažení zdeInformationhttp://www.ucsimply.cz/products/modsam9260/#Zdrojové kódy. Tento zdrojový kód vznikl doplněním kostry ovldače dskel, kterou jsme si připravili v části o vývoji ovladačů. Zdrojový kód ovladače zařízení led4x můžeme v počítači s Linuxem buď naimportovat do Eclipse a zkompilovat jej v prostředí Eclipse nebo můžeme kompilaci provádět přímo v příkazové řádce příkazem make.
Postup importu projektu ovladače do Eclipse:
  1. V Eclipse v hlavním menu zvolíme File->Import....
  2. V otevřeném dialogovém okně vybereme ve složce General položku Existing Projects into Workspace a stiskneme tlačítko Next.
  3. V dalším okně zvolíme Select archive file a vložíme cestu k archivu zdrojového kódu ovladače a stiskneme tlačítko Finish.
  4. Projekt ovladače se naimportuje do aktuálního pracovního prostoru Eclipse.
  5. Ověříme, že v makefile ovladače je v proměnné KDIR uvedená správná cesta ke stromu zdrojových kódů jádra. Přípomínám, že ovladač musí být kompilován vůči jádru, do kterého ho pak budeme zavádět.
Zdrojové kódy ovladače máme naimportovány. V následujícím textu si zdrojové kód ovladače stručně rozebereme, abychom si objasnili funčknost ovladače.
Ovladač zařízení lcd1602 je ve své podstatě velmi jednoduchý. V rámci inicializace ovladače je provedena i inicializace displeje implementovaná ve funkci init_display() dle inicializační sekvence popsané na obrázku 1.14.
Zobrazování znaků a komunikaci s displejem má na starosti sada funkcí s názvem write_neco(). Z nich se zaměříme na funkci write_buffer(). Ta zajišťuje zobrazení dat z buferu znaků na LCD displeji. Funkce podporuje i dva escape znaky (\t a \r), které pokud jsou součástí řetězce znaků určených k zobrazení, umožňují uživateli posouvat text o jednu mezeru doleva (escape znak \t), případně skočit na další řádek (escape znak \r) - násleující znaky jsou pak zobrazeny na dalším řádku displeje.
Mimo to je podporováno i automatické zalomení textu. Na obrázku 1.22 je vidět zobrazení textu ”Dobrý den mistre!”, který byl do displeje přenesen pomocí příkazu:
$ echo -en "\t\t\t\tDobry den\r\t\t\t\t\tmistre" >/dev/lcd1602 
Poznámka: Při každém systémovém volání open() je displej smazán.
obrázek hwkit-lcd-ovladac-v-akci
Obrázek 1.22 LCD displej - ovladač v akci
Do buferu znaků je možné z uživatelského prostoru zapisovat pomocí systémového volání write() směřovaného na zařízení /dev/lcd1602. To snadno zajistíme např. příkazem echo s volbou -e, která zapne interpretaci escape znaků, a volbou -n, která vypíná automatické přidávání escape znaku konce řádku \n.
Velikost buferu znaků je omezena na 32 znaků (bytů) a zahrnuje i podporované escape znaky.
Systémová volání read() a ioctl() nejsou ovladačem podporována.

Test ovladače

Oživování začneme zapojením napájecího napětí a následně spuštěním pokusného PC. Ovladač zkompilujeme a zavedeme příkazem insmod do jádra na pokusném počítači. V adresáři /dev by se měl objevit soubor zařízení lcd1602. V opačném případě příkaz insmod zahlásí nějakou chybu.
Po zavedení ovladače musí z displeje zmizet první řádek znaků (obdelníků). Pak zkusíme na displej poslat nějaký text, např. příkazem echo - viz výše. V případě problémů bude chyba velmi pravděpodobně v inicializaci displeje. Zkontrolujeme čekací doby mezi jednotlivými kroky inicializační sekvence. Ověříme, že používáme správné řídící signály apod.