71
SVEU ˇ CILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RA ˇ CUNARSTVA DIPLOMSKI RAD br. 445 Izgradnja ru ˇ cnog ra ˇ cunala Davor Cihlar Zagreb, lipanj 2012.

Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

SVEUCILIŠTE U ZAGREBUFAKULTET ELEKTROTEHNIKE I RACUNARSTVA

DIPLOMSKI RAD br. 445

Izgradnja rucnog racunalaDavor Cihlar

Zagreb, lipanj 2012.

Page 2: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

iii

Page 3: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

SADRŽAJ

1. Uvod 1

2. Sklopovska podrška 32.1. Procesorski modul TDM-3730 . . . . . . . . . . . . . . . . . . . . . 4

2.2. Noseca plocica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3. Napajanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3.1. Automatsko odredivanje izvora . . . . . . . . . . . . . . . . 8

2.3.2. Punjac baterije . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3.3. Baterija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3.4. Pozadinsko osvjetljenje . . . . . . . . . . . . . . . . . . . . . 9

2.3.5. Napajanje za USB host prikljucke . . . . . . . . . . . . . . . 10

2.3.6. Sustav za paljenje i gašenje . . . . . . . . . . . . . . . . . . . 10

2.4. Plocica sa svjetlecom RGB-diodom . . . . . . . . . . . . . . . . . . 11

2.4.1. Komunikacija s plocicom . . . . . . . . . . . . . . . . . . . . 12

2.4.2. Nacini rada . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.4.3. Upravljanje svjetlecom RGB-diodom . . . . . . . . . . . . . 14

2.5. Pojacala za ugradene zvucnike . . . . . . . . . . . . . . . . . . . . . 15

2.6. Ekran osjetljiv na dodir . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.7. Plocica s tipkama . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3. Osnovna programska podrška 173.1. U-Boot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.2. Inicijalizacija sklopovlja u Linuxu . . . . . . . . . . . . . . . . . . . 18

3.2.1. Matricna tipkovnica . . . . . . . . . . . . . . . . . . . . . . 19

3.2.2. Kartica µSD . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2.3. Ekran osjetljiv na dodir . . . . . . . . . . . . . . . . . . . . . 21

3.2.4. Sabirnica I2C . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.2.5. Ulazno/izlazni izvodi opce namjene . . . . . . . . . . . . . . 22

iv

Page 4: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

3.2.6. Funkcija za gašenje sustava . . . . . . . . . . . . . . . . . . 24

3.2.7. Mjerenje stanja baterije . . . . . . . . . . . . . . . . . . . . . 24

4. Periferna programska podrška 264.1. Upravljacki moduli . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.1.1. Virtualni datotecni podsustav za upravljanje i nadzor . . . . . 27

4.1.2. Modul za akcelerometar . . . . . . . . . . . . . . . . . . . . 30

4.1.3. Modul za pracenje stanja baterije . . . . . . . . . . . . . . . 31

4.1.4. Modul za mjerenje intenziteta svjetlosti . . . . . . . . . . . . 32

4.1.5. Modul za upravljanje RGB-diodom . . . . . . . . . . . . . . 34

4.2. Demonstracijski programi . . . . . . . . . . . . . . . . . . . . . . . 37

4.2.1. Demonstracija akcelerometra . . . . . . . . . . . . . . . . . . 37

4.2.2. Demonstracija senzora intenziteta svjetlosti i RGB-diode . . . 37

4.3. Preusmjeravanje zvuka . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.4. Sucelje za podešavanje tipaka . . . . . . . . . . . . . . . . . . . . . . 39

4.5. Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

5. Mehanicka konstrukcija 42

6. Zakljucak 44

Literatura 45

A. Sheme sklopova 47A.1. Napajanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

A.2. Noseca plocica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

A.2.1. LCD-ekran . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

A.2.2. Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

A.2.3. Mreža . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

A.2.4. Napajanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

A.2.5. Memorijske kartice . . . . . . . . . . . . . . . . . . . . . . . 60

A.2.6. USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

A.2.7. Razno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

A.3. Plocica sa svjetlecom RGB-diodom . . . . . . . . . . . . . . . . . . 64

A.4. Pojacalo sa zvucnikom . . . . . . . . . . . . . . . . . . . . . . . . . 65

A.5. Plocica s tipkama . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

B. Nacrt za pleksi-staklo 67

v

Page 5: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

1. Uvod

Veca rucna racunala (engl. tablet) su postala jako popularna dolaskom Appleovog

iPada na tržište, a prijenosna racunala poput Tablet-PC-a su zasjenjena. Kako je moja

želja oduvijek bila napraviti prijenosno racunalo poput Tablet-PC-a, za ovaj diplomski

rad sam odlucio otici korak dalje i ispitati mogucnosti izrade rucnog racunala pomocu

dostupnih komponenti te usporediti rezultate sa stvarnim sustavima.

Komponente su birane prema mogucnostima, cijeni i potrošnji. U nekim sluca-

jevima su odabrane komponente vece efikasnosti (manje potrošnje) i više cijene, dok

su u nekim drugim slucajevima odabrane komponente s najmanjom cijenom jer ih je

potrebno puno ili su same po sebi jako skupe.

Kao operacijski sustav je odabran Linux zbog svoje otvorenosti, jednostavne pri-

lagodbe i velikih mogucnosti, a kao srce cijelog sustava je odabran procesorski modul

TDM-3730 firme TechNexion zbog visokih performansi, lake dostupnosti i relativno

niske cijene te zbog toga što dolazi s predinstaliranim operacijskim sustavom Linux.

Funkcionalni prototip je s obje strane prikazan na slici 1.1.

(a) Prednja strana (b) Stražnja strana

Slika 1.1: Gotov prototip

1

Page 6: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

U prvom dijelu rada je prikazan blok-dijagram i po funkcijama podijeljen opis po-

jedinih sklopovskih komponenti, dok je u drugom dijelu prikazana osnovna i periferna

programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na-

laze sheme sklopova, a u dodatku B se nalazi nacrt za pleksi-staklo.

2

Page 7: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

2. Sklopovska podrška

Sklopovska podrška je modularna i sastoji se od nekoliko komponenti:

– procesorski modul,

– noseca plocica,

– napajanje,

– baterija,

– LCD s panelom osjetljivim na dodir,

– pojacala sa zvucnicima,

– plocica s tipkama.

Blok-dijagram povezanosti komponenti je prikazan na slici 2.1.

Za procesorski i Bluetooth modul su odabrani komercijalno dostupni gotovi moduli

jer bi njihova konstrukcija izlazila iz okvira ovog diplomskog rada, medutim noseca

plocica koja mehanicki i elektricki povezuje ostale module, te modul za napajanje,

pojacala sa zvucnicima i plocica s tipkama su namjenski razvijeni za ovaj uredaj.

Odabir operacijskog sustava je na neki nacin odredivao i odabir procesorskog mo-

dula koji u vecini slucajeva dolazi s predinstaliranim operacijskim sustavom.

3

Page 8: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Noseća pločica

Procesorskimodul

Bluetoo

thm

odul

Ekran osjetljiv na dodir

Ugrađeni zvučnici

Baterija

NapajanjeTipke

Punjač

Periferija: USB, eth,USB OTG, UART

Tipka za paljenjei gašenje

Slika 2.1: Blok-dijagram komponenti

2.1. Procesorski modul TDM-3730

Kao osnova ovog racunala je korišten procesorski modul TDM-3730 firme Tech-

Nexion. Osnova samog modula je Texas Instrumentsov procesor DM3730 [3] iz

OMAP3 serije s pomocnim cipom TPS659301 [8]. Na modulu se nalaze i NAND

flash i LPDDR RAM memorije te modul za bežicni Internet i kontroler za ethernet.

Blok dijagram procesorskog modula je prikazan na slici 2.2, a fizicki izgled modula je

prikazan na slici 2.3.

Procesorski modul je moguce prikljuciti na nosecu plocicu preko standardnog SO-

DIMM konektora. Preko konektora idu svi podatkovni signali i napajanja. Iz modula

je moguce dobiti i napajanje od 1.8V.

Pomocni cip TPS65930 izmedu ostaloga ima i analogni ulaz koji je na modulu

1za napajanje, USB, zvuk i tipkovnicu

4

Page 9: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Slika 2.2: Blok dijagram procesorskog modula TDM-3730

Slika 2.3: Fizicki izgled procesorskog modula TDM-3730

spojen na otpornicko dijelilo izmedu reguliranih 4.2V i 0V. Dijelilo nije dokumentirano

i smetalo je pri mjerenju otpora za prepoznavanje prikljucenog kabla te su stoga oba

otpornika otklonjena.

2.2. Noseca plocica

Noseca plocica (engl. baseboard) na slici 2.4 je središnji dio cijelog sustava na kojem

se nalazi procesorski modul TDM-3730, Bluetooth modul, izvor napajanja od 3.3V i

razne periferne jedinice. Sheme se nalaze u dodatku A.2.

Izvor napajanja od 3.3V je prekidackog buck-boost tipa što znaci da može spuštati

i podizati napon. Takav tip izvora napajanja je potreban jer se 3.3V nalazi izmedu

minimalnog i maksimalnog napona baterije pa nije dovoljno samo podizanje ili samo

spuštanje napona. Za ovu svrhu je odabran cip LTC3536 (U12 u dodatku A.20).

5

Page 10: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

(a) Bez procesorskog i Bluetooth modula

(b) S procesorskim i Bluetooth modulom

Slika 2.4: Noseca plocica

Cip SN75LVDS83 (U1 u dodatku A.11) pretvara paralelni prijenos podataka prema

LCD-ekranu u serijski diferencijalni prijenos (engl. LVDS – low-voltage differential

signaling). Prednost ovog cipa je ugradeni pretvornik logickih naponskih razina koji

omogucuje direktno spajanje na procesorski modul.

Cip za ocitanje otpornickog panela osjetljivog na dodir TSC2046 takoder ima pred-

nost ugradenog pretvornika logickih naponskih razina (U9 u odjeljku A.9). Osim oci-

tanja otpornickog panela, TSC2046 omogucuje i mjerenje stanja baterije. Mjerenje

stanja baterije je vrlo efikasno riješeno tako da otpornicko dijelilo nije konstantno ra-

zapeto na napajanje nego je pozitivni dio stalno spojen, a uzemljuje se samo kada je

potrebno izmjeriti napon baterije. Na taj nacin otpornicko dijelilo ne troši nepotrebno

struju dok se ne koristi.

Na nosecoj plocici se nalazi i USB-razdjelnik (engl. USB-hub) pune brzine

(engl. full speed) koji omogucuje proširenje ovog sustava preko dva prikljucka USB

(u dodatku A.25). Postojecu programsku podršku za prikljucak USB visoke brzine

(engl. high speed) nije bilo moguce iskoristiti, a programska podrška za USB priklju-

cak pune brzine nije u potpunosti implementirana pa se ovaj sklop još ne koristi.

Osim dva prikljucka USB na plocici se nalazi i prikljucak USB-OTG (engl. OTG –

On-The-Go) koji omogucuje povezivanje sustava s racunalom (u dodatkuA.24). Tran-

zistor U13 (u dodatku A.23) omogucuje punjenje iz prikljucka USB-OTG ukoliko je

zatraženo signalom OTG_CHRG_E, odnosno ukliko racunalo može dati dovoljno ve-

liku struju potrebnu za punjenje (sporo ili brzo) i rad cijelog sustava.

Za otkrivanje prisustva slušalica ili podatkovnog kabla te prekidanje procesora u

6

Page 11: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

oba slucaja osmišljena su dva posebna sklopa s usporedivacem analognih signala. U

dodatku A.16 je prikazan sklop za prekidanje procesora prilikom prikljucivanja podat-

kovnog kabla. Podatkovni kabl omogucuje mrežni (engl. ethernet) i serijski priklju-

cak. Kako bi bilo moguce prepoznati tip prikljucka uveden je izvod za identifikaciju.

Unutar samog prikljucka na strani kabla identifikacijski izvod mora biti spojen na ot-

pornik. Vrijednost otpornika tako odreduje o kojem tipu kabla se radi. Ukoliko je taj

otpor beskonacan, kabl nije prikljucen i izlaz iz usporedivaca je logicka jedinica. Pri-

kljucivanjem otpornika manjeg od 1MΩ izlaz iz usporedivaca prelazi u logicku nulu.

Kako bi mjerenje otpornika bilo moguce, identifikacijski izvod je spojen na ulaz A/D

pretvornika na procesorskom modulu.

Prikljucak za slušalice nije namijenjen samo za zvucne signale. Cetvrti kontakt je

spojen na izlaz kompozitne slike (engl. composite video). Kako bi se cip TPS65930

manje opteretio, izmedu cipa i slušalica i je ubaceno pojacalo snage (u dodatku A.14).

Sklop za otkrivanje prisustva slušalica je prikazan u dodatku A.13. Ovaj sklop nije

pouzdan zbog velike RC konstante. Naime, prilikom iskljucivanja slušalica potrebno je

puno vremena da se izlazni elektroliti napune i analogni usporedivac prebaci stanje na

izlazu. Nije bilo moguce nabaviti prikljucak s cetiri kontakta i sklopkom za otkrivanje

prisustva utikaca pa je stoga napravljen ovaj pokušaj elektronickog otkrivaca prisustva

slušalica.

Procesor DM3730 ima digitalne izlaze koji rade iskljucivo na 1.8V pa je na nekim

mjestima bilo potrebno postaviti pretvornike naponskih razina (odjeljci A.22, A.27 i

A.28). Kao što je vec prije spomenuto, u nekoliko je slucajeva bilo moguce koristiti

cipove s ugradenim pretvornikom naponskih razina.

2.3. Napajanje

Posebna pažnja je posvecena oblikovanju sklopa za napajanje kako bi uredaj radio

pouzdano i sa što manje gubitaka.

Visoka efikasnost sustava za napajanje je nužna kako bi baterija što duže trajala.

Stoga su sva napajanja prekidackog tipa te ih je moguce iskljuciti dok nisu potrebna.

U dodatku A.1 se nalaze sheme sklopova za napajanje, a na slici 2.5 je prikazana

fizicka implementacija sklopa.

7

Page 12: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Slika 2.5: Implementacija sklopa za napajanje

2.3.1. Automatsko odredivanje izvora

Sustav za napajanje mora samostalno (bez intervencije programske podrške) odrediti

što ce koristiti kao glavni izvor napajanja. U protivnom punjenje baterije ne bi bilo

moguce dok je sustav ugašen ili bi se sustav ugasio prilikom iskljucivanja punjaca ako

programska podrška nije dovoljno brza.

Baterija se koristi samo ako niti jedan od punjaca nije prisutan. U nastavku su tri

tipa podržanog izvora, poredani prema prioritetu:

– brzi punjac (iz gradske mreže): omogucuje struju punjenja od 1A,

– spori punjac (iz USB OTG-a): omogucuje struju punjenja od 0.5A koju je pro-

gramski moguce povecati na 1A,

– baterija.

Diode D1 i D2 dovode vanjsko napajanje u jedan vod koji se kasnije koristi kao

vanjski izvor napajanja. Kroz diode može poteci struja do 2A, a diode D4 i D5 imaju

ulogu logickih ILI vrata za napajanje. One ce provesti ukoliko je prisutan vanjski

izvor napajanja, a ukoliko niti jedan vanjski izvor nije prisutan logicku nulu ce dovesti

otpornik R3. Zbog relativno velike reverzne struje u diodama D1 i D2 otpornik R3

mora biti maksimalno 1kΩ.

Kada je prisutan vanjski izvor napajanja tranzistori Q4 i Q5 su aktivni, a u suprot-

nom je aktivan tranzistor Q1. Aktivacijom tranzistora Q1 odabire se baterija kao izvor

napajanja, a aktivacijom tranzistora Q5 odabire se vanjski izvor napajanja. Tranzistor

Q4 je u ulozi logickog sklopa NE i osigurava da Q1 i Q5 nikada nisu aktivni istovre-

meno.

8

Page 13: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

2.3.2. Punjac baterije

Za punjenje baterije je zadužen cip MCP73861 (U2). Otpornik R6 odreduje pretpos-

tavljenu struju punjenja od 0.5A, a tranzistori Q2 i Q3 su u sklopu logickih vrata ILI

koja kada su aktivna pritežu ulaz PROG na 0V i tako mijenjaju struju punjenja na 1A.

Q3 se aktivira prikljucivanjem vanjskog punjaca, a Q2 je moguce programski aktivirati

ako USB prikljucak na kojeg je uredaj spojen može dati 2A.

Dijagnosticki izlazi CHRG_STAT1 i CHRG_STAT2 su spojeni na prekidne ulaze

procesora kako ne bi trebalo radnim cekanjem dohvacati stanje punjaca. Dijagnosticki

izlaz CHRG_STAT1 oznacava da li se baterija puni (0V ako se puni) ili je puna (1Hz),

a izlaz CHRG_STAT2 oznacava grešku.

2.3.3. Baterija

Korištena je Li-Ion baterija od 8000mAh originalno namijenjena za igracu konzolu

Nitendo 3DS. Iz baterije je izbacen punjac, ali je ostavljen nadzorni cip.

Nazivni napon baterije je 3.6V i pri potrošnji od 4W (npr. 2W za procesorski modul

i 2W za pozadinsko osvjetljenje) sustav bi u idealnom slucaju mogao neprestano raditi

oko 7h što je dovoljno za uredaj ovog tipa.

Uz optimizaciju potrošnje unutar procesorskog modula vijek baterije bi se mogao

znacajno povecati.

2.3.4. Pozadinsko osvjetljenje

Tradicionalno se (i ponekad još uvijek) za pozadinsko osvjetljenje u vecim LCD-

ekranima koristi CCFL (engl. cold cathode fluorescent lamp) cijev koja je relativno

neefikasna, dok se u svim LCD-ekranima namijenjenima za mobilne uredaje koriste

bijele svjetlece diode.

Za ovaj uredaj je korišten LCD-ekran iz prijenosnog racunala sa CCFL cijevi koja

je zamijenjena s 30 jakih bijelih dioda. Umjesto 5W za pozadinsko osvjetljenje je sada

potrebno samo 2W uz nešto malo slabije maksimalno osvjetljenje.

Pozadinsko osvjetljenje izvedeno svjetlecim diodama zahtjeva i poseban izvor na-

pajanja. U prijenosnim se racunalima za CCFL cijev koristi poseban modul koji napon

baterije pretvara u nekoliko kilovolti i takav nikako nije pogodan za svjetlece diode.

Svjetlece diode zahtijevaju strujni izvor, a napon ovisi o broju svjetlecih dioda spojenih

u seriju te o padu napona na pojedinoj diodi.

9

Page 14: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Za ovaj ekran korištena su tri paralelna snopa od deset bijelih svjetlecih dioda spo-

jenih u seriju.

Kao regulator odabran je cip TPS61500 (U3). Taj cip je jedan od rijetkih koji

mogu uz niski napon iz baterije (min. 3V) dati relativno visoku snagu potrebnu za

pozadinsko osvjetljenje. TPS61500 omogucuje i prigušenje intenziteta osvjetljenja

pulsno širinskom modulacijom (engl. PWM – pulse width modulation).

Slijedilo (engl. buffer) U6 gasi pozadinsko osvjetljenje dok je sustav ugašen.

Slika 2.6: LED zamjena za CCFL

2.3.5. Napajanje za USB host prikljucke

Na nosecoj plocici nalaze se dva USB host prikljucka i odluceno je da svaki mora biti

u mogucnosti dati 500mA. Stoga je potrebno napajanje koje iz minimalno 3V može

dati 5V pri potrošnji od 1A.

Kao regulator odabran je cip TPS61032 (U1) zbog svoje vrlo visoke efikasnosti

(preko 90%) i mogucnosti rada pri niskim ulaznim naponima. Uz TPS61032 je potre-

ban minimalan broj dodatnih komponenti (samo zavojnica i kondenzatori). Povratna

veza je ugradena u samom cipu i fiksno odredena za izlaz od 5V.

Slijedilo U5 ima istu ulogu kao i U6 – za gašenje regulatora dok je sustav ugašen.

2.3.6. Sustav za paljenje i gašenje

Tranzistor Q6 spaja i odspaja napajanje nosece plocice u ovisnosti o signalu

TABLET_ON, a tranzistor Q7 prazni kondenzatore na napajanju prilikom gašenja kako

bi se sustav prije i pravilnije ugasio. RC clan R23 i C12 malo odgadaju aktivaciju tran-

zistora Q6 kako bi Q7 manje smetao prilikom prijelaza stanja signala TABLET_ON u

aktivno (manji je problem ako smeta prilikom gašenja).

Sustav za paljenje i gašenje mora omoguciti korisniku prisilno paljenje i gašenje

pomocu tipke, ali mora omoguciti i programsko gašenje. Dodatno, sustav za paljenje

i gašenje mora ugasiti sustav ako se jezgra nije upalila. Na taj se nacin iskorištava

komparator unutar TPS65930 (na procesorskom modulu) koji onemogucuje paljenje

ukoliko je napon na bateriji prenizak.

10

Page 15: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Sve navedene zahtjeve omogucuje sklop sa samo dva logicka sklopa NE (U4A i

U4B) i jednim slijedilom (U18 na nosecoj plocici u dodatku A.2).

Uz pretpostavku da je sustav ugašen (TABLET_ON = 5V), napajanje od 1.8V

je ugašeno pa slijedilo ne može postaviti signal POWEROFF na 0V. Izmedu signala

TABLET_ON i POWEROFF nalaze se dva logicka sklopa NE i moguce je uociti da je

to stabilno stanje.

Tipka S5 je odspojena pa se kondenzator C11 preko otpornika R18 napuni na 5V.

Pritiskom i držanjem tipke S5 kondenzator C11 se prazni preko otpornika R17, ali

tokom nekog vremena ce ulaz sklopa U4B biti prebacen na logicku jedinicu cime ce

izlaz biti prebacen u logicku nulu. Aktivacija signala TABLET_ON aktivira tranzistor

Q6 te noseca plocica dobije napajanje i pocne generirati napon od 1.8V. Kako su iz-

vodi od neinicijalizirani podsustava procesora u stanju visoke impedancije, otpornik

R70 definira nisku razinu na ulazu slijedila koje zatim postavlja POWEROFF signal u

logicku nulu i samim time sustav za paljenje i gašenje dolazi u drugo stabilno stanje

kada je sustav upaljen. Sada je moguce otpustiti tipku i sustav ce ostati upaljen.

Ukoliko napajanje od 1.8V nije proradilo (napon baterije je prenizak) signal

POWEROFF ne bi nikad prešao u logicku nulu i napajanje bi se ugasilo nakon što bi se

ispraznio kondenzator C11.

Prilikom odredivanja vrijednosti komponenti C11, R17 i R18 bitno je da je

R18 R17 te da vremenska konstanta C11 · R17 bude dovoljno duga kako bi se

stigla uspostaviti povratna veza. Nusprodukt je velika vremenska konstanta C11 · R18

koja odreduje minimalno vrijeme izmedu pokušaja paljenja i gašenja.

Programsko gašenje je moguce postavljanjem izvoda 148 u logicku jedinicu. Izvod

mora imati paralelno spojen kondenzator koji zadržava logicku jedinicu jer prilikom

gašenja izvod prelazi u stanje visoke impedancije i ako ne bi bilo kondenzatora, signal

POWEROFF bi se deaktivirao i zapoceo ponovno paljenje sustava.

2.4. Plocica sa svjetlecom RGB-diodom

Plocica sa svjetlecom RGB (engl. red, green, blue) diodom i senzorom osvjetljenja je

samostalan racunalni sustav koji se brine samo za svjetlosne obavijesti (npr. obavijest

o pristigloj poruci ili praznoj bateriji i sl.) i mjerenje intenziteta osvjetljenja okoline.

Shema se nalazi u dodatku A.3.

Plocica se nalazi u gornjem lijevom kutu uredaja smještena unutar kucišta od pleksi

stakla kao što je prikazano na slici 2.7b. Na taj je nacin zašticena od vanjskih utjecaja,

ali svjetlost i dalje može nesmetano prolaziti. Kako bi stala na sam rub širine 8mm

11

Page 16: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

plocica je morala biti vrlo uska.

Na plocici (prikazana na slici 2.7a) se nalazi svjetlosni senzor APDS9303 (lijevo)

i mikrokontroler ATtiny25 [7] (na sredini) koji upravlja sa svjetlecom RGB-diodom

(desno).

(a) Nezašticena s privremenom žicom

za programiranje

(b) Pricvršcena i zašticena

Slika 2.7: Plocica sa svjetlecom RGB-diodom

2.4.1. Komunikacija s plocicom

Plocica je spojena na napajanje od 3.3V, sabirnicu I2C te jedan prekidni signal. Svje-

tlosni senzor i mikrokontroler su spojeni na sabirnicu I2C, a prekidni signal je spojen

samo na svjetlosni senzor.

Svjetlosni senzor se nalazi na adresi 29(16), a mikrokontroler na adresi 12(16). Pro-

tokol za komunikaciju sa svjetlosnim senzorom je opisan u njegovoj dokumentaciji [5],

a protokol za komunikaciju s mikrokontrolerom i upravljanje RGB-diodom je posebno

osmišljen i opisan u nastavku ovog poglavlja.

Protokol za upravljanje RGB-diodom preko I2C sabirnice nije dizajniran u stilu

uobicajenih I2C protokola gdje se prvo šalje adresa podatka koji se zapisuje pa nakon

toga podaci nego se šalju samo podaci. Redni broj okteta odreduje koji se podatak

zapisuje kao što je prikazano u tablici 2.1.

Nije uvijek potrebno poslati paket sa svim oktetima. Moguce je poslati paket koji

sadrži samo sve tri komponente boje (prva tri okteta) nakon cega slijedi oznaka kraja

komunikacije na I2C sabirnici. Moguce je i poslati prvih šest okteta kako bi se odredila

vremena, ali bez izmjene nacina rada.

12

Page 17: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Tablica 2.1: Znacenje okteta pri komunikaciji s mikrokontrolerom

Red. br. Bitovi Znacenje

1 3..0 Intenzitet crvene boje

2 3..0 Intenzitet zelene boje

3 3..0 Intenzitet plave boje

4 7..0 Vremenski razmak izmedu paljenja (N×60ms)

5 7..0 Trajanje upaljenog stanja (N×15ms)

67..6 Broj uzastopnih paljenja (N − 1)

5..0 Brzina postavljanja željenog intenziteta (N − 1)

7 1..0 Nacin rada:

0: Spavanje1: Konstantno svijetlo2: Bljeskanje

2.4.2. Nacini rada

Mikrokontroler za upravljanje RGB-diodom podržava tri nacina rada: spavanje, kons-

tantno svijetlo i bljeskanje.

Za vrijeme spavanja sve tri komponente RGB-diode su ugašene i mikrokontroler

je u stanju spavanja bez watchdoga pa je potrošnja na cijeloj plocici 13µA.

U nacinu rada konstantnog svijetla na RGB-diodi je prikazana odabrana boja. Po-

trošnja u ovom nacinu rada je konstantna i maksimalno iznosi 8.6mA. Ovaj nacin rada

zbog velike potrošnje nije prakticno primjenjiv, ali koristan je prilikom odabira željene

boje.

Posljednji nacin rada je bljeskanje. U tom se nacinu rada RGB-dioda povremeno

pali. Vrijeme ugašenog stanja i trajanje svjetleceg stanja je moguce podesiti po želji.

Paljenje RGB-diode u nacinu rada bljeskanje je postepeno, tj. glatko. Pri najkra-

cem trajanju upaljenog stanja postepeno paljenje traje 75ms (15 stanja intenziteta ×15ms). Brzinu postepenog paljenja je takoder moguce podesiti. Najbrža postavka je

15 i u tom je slucaju paljenje RGB-diode trenutno. Trenutno paljenje RGB-diode je

moguce koristiti ukoliko je potrebno grubo (digitalno) bljeskanje.

Potrošnja za vrijeme cekanja u ugašenom stanju u nacinu rada bljeskanje je nešto

veca nego u nacinu rada spavanja i iznosi 18µA. Razlog tomu je rad watchdog sklopa

koji mjeri proteklo vrijeme.

13

Page 18: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

2.4.3. Upravljanje svjetlecom RGB-diodom

Zbog vece uštede energije mikrokontroler je morao imati sklopovsku podršku za sabir-

nicu I2C kako bi ga pocetak komunikacije mogao probuditi iz stanja spavanja. Zbog

dimenzijskih zahtjeva je mikrokontroler morao biti i vrlo malen pa je stoga ATtiny25

bio najbolji izbor2.

Odredivanje intenziteta svjetlosti pojedine diode je moguce pulsno širinskom mo-

dulacijom (u daljnjem tekstu PWM). Nažalost, odabrani mikrokontroler ima samo dva

sklopovska generatora PWM signala od kojih je jedan multipleksiran s izvodom za

I2C sabirnicu. Iz tog je razloga PWM generator implementiran programski prema od-

sjecku 2.1.

Odsjecak 2.1: Prekidna rutina vremenskog sklopa 0ISR(TIM0_COMPA_vect)

static uint8_t brojac;

brojac = (brojac + 1) & 0x1F; /* 0..31 */

if (brojac < zelena_komponenta) upali_zelenu();

else ugasi_zelenu();

/* ... preostale komponente */

Kako bi se manje energije gubilo na predotporima, postavljeni su predotpori ma-

njih vrijednosti, odnosno, maksimalna struja kroz svjetlecu diodu je iznad maksimalne

prosjecne, ali ispod maksimalne vršne. Radni ciklus (engl. duty cycle) sada mora biti

maksimalno 50% i iz tog razloga staticna varijabla brojac broji do 31 i usporeduje se s

komponentama koje mogu biti maksimalno 15.

Vremenski sklop mora pokretati prekidnu rutinu dovoljno brzo da ljudsko oko ne

primijeti treperenje, ali opet ne prebrzo kako bi procesor stigao obraditi prekid i ostale

poslove. Uz pretpostavku da je 50 perioda u sekundi dovoljno brzo i poznato trajanje

jedne periode od 32 prekida, vremenski sklop mora prekidati procesor 1600 puta u

sekundi, odnosno svakih 625µs.

Unutar 625µs i pri taktu od 8MHz AVR jezgra može izvršiti 5000 jednociklusnih

instrukcija i to se pokazalo dovoljnim za prekidnu rutinu s programskim PWM-om i

za ostale zadatke (komunikaciju i bljeskanje).

2ATtiny dolazi i u manjem pakiranju od SO8, ali nije bio dobavljiv

14

Page 19: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

2.5. Pojacala za ugradene zvucnike

Za potpuni multimedijski doživljaj ovaj uredaj mora imati ugradene zvucnike koji su

dovoljno glasni, a opet dovoljno mali. Zvucnici moraju imati i pripadajuce pojacalo

klase D zbog što vece efikasnosti. Pojacalo mora raditi i na niskom naponu. Sve

te zahtjeve zadovoljava odabrano pojacalo LM4667. U dodatku A.4 se nalazi shema

sklopa, a na slici 2.8 je prikazana fizicka implementacija.

Slika 2.8: Jedno od dva pojacala

2.6. Ekran osjetljiv na dodir

Ekran osjetljiv na dodir sastoji se od dvije odvojene komponente: LCD-ekrana i otpor-

nickog panela osjetljvog na dodir.

LCD-ekran je LP150X08-TLC1, razlucivosti 1024×768 piksela, dijagonale 15

inca i 16 bita dubine boja. Dimenzije LCD-ekrana zbog svoje velicine su odredile

dimenzije cijelog uredaja.

2.7. Plocica s tipkama

Za paljenje i gašenje ekrana, prebacivanje na pocetni ekran te brzi pristup kontroli

glasnoce je ugradena plocica s cetiri tipke u matricnom spoju. Tipke ocitava sklopovski

cip TPS65930. Smještena je u prednjem lijevom dijelu kucišta kao što je prikazano na

slikama 2.9a i 2.9b, a fizicki izgled plocice je prikazan na slici 2.9c. Shema se nalazi u

dodatku A.5.

15

Page 20: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

(a) Smještaj

(b) Prednja strana

(c) Stražnja strana

Slika 2.9: Plocica s tipkama

16

Page 21: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

3. Osnovna programska podrška

Procesorski modul TDM-3730 dolazi s instaliranom osnovnom programskom podr-

škom (bootloaderom i operacijskim sustavom Linux 2.6.37). Bootloader je izveden

u nekoliko faza [2]. Prilikom paljenja se pokrece izvršni kôd iz ROM-a unutar sa-

mog procesora koji izvodi najosnovnije inicijalizacije te pokrece X-Loader. X-Loader

odreduje osnovne uloge izvoda procesora (postavi multipleksiranje izvoda), obavi do-

datne inicijalizacije te pokrece U-Boot. U-Boot je zadnja faza bootloadera u kojem se

izvodi posljednje postavljanje multipleksiranja izvoda i inicijalizacija sklopovlja koje

omogucuje daljnje ucitavanje sustava (npr. ethernet).

Konacno, operacijski sustav Linux prilikom svog pokretanja mora inicijalizirati svo

sklopovlje, pa cak i ono koje ne koristi kako bi tom sklopovlju iskljucio takt i omogu-

cio nesmetan prelazak nacina rada u spavanje. Osim toga, Linux prilikom pokretanja

mora prijaviti sve uredaje koje nije moguce automatski detektirati kako bi ih kasnije

bilo moguce koristiti. Linux takoder može podešavati multipleksiranje izvoda, ali nije

potrebno jer je sve vec postavljeno unutar U-Boota.

X-Loader nije mijenjan i ostao je isti koji je dobiven s procesorskim modulom.

U U-Bootu je bilo potrebno promijeniti postavke multipleksiranja izvoda kako bi se

omogucilo sucelje SPI te neki GPIO izvodi.

3.1. U-Boot

Datoteke vezane uz platformu su odvojene od originalnih TechNexionovih. Mapa

board/technexion/tdm3730 je kopirana u board/technexion/tacna i

u toj kopiji su napravljene potrebne izmjene. Kopirana je i datoteka include/

configs/tdm3730.h u include/configs/tacna.h. Konacno, obnovljena

je datoteka boards.cfg kako bi bilo moguce prevesti U-Boot za novu platformu

Tacna1.1Tacna je kodno ime ovog uredaja

17

Page 22: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

U datoteci board/technexion/tacna/tdm3730.h se nalazi popis svih iz-

voda i odabranih uloga. Primjer koji umjesto UART-a na izvode dovodi GPIO je

prikazan u odsjecku 3.1. Prvi parametar makroa MUX_VAL je naziv izvoda, a drugi

parametar odreduje svojstvo i ulogu izvoda.

Odsjecak 3.1: Primjer postavki multipleksiranja u U-Bootu/*UART2 x 4 PIN*/ \

MUX_VAL(CP(MCBSP3_DX), (IDIS | PTD | DIS | M4)) \

/*(4)GPIO_140 -> (1)UART2_CTS*/ \

MUX_VAL(CP(MCBSP3_DR), (IDIS | PTD | DIS | M4)) \

/*(4)GPIO_141 -> (1)UART2_RTS (ear_mute)*/ \

MUX_VAL(CP(MCBSP3_CLKX), (IDIS | PTD | DIS | M4)) \

/*(0)McBSP3_CLKX -> (4)GPIO_142 -> (1)UART2_TX */ \

MUX_VAL(CP(MCBSP3_FSX), (IDIS | PTD | DIS | M4)) \

/*(0)McBSP3_FSX -> (4)GPIO_143 -> (1)UART2_RX (spk_mute)*/ \ Svojstvo izvoda odreduje da li je omoguceno citanje (IEN) ili nije (IDIS) te da li

su omoguceni pull-up (PTU | EN) ili pull-down (PTD | EN) otpornici ili su one-

moguceni (DIS).

Uloga izvoda može biti M1, M2, M3 ili M4. Moguce uloge su navedene u dokumen-

taciji procesora, ali su navedene i unutar nekih komentara kako bi bilo lakše odrediti

ulogu.

3.2. Inicijalizacija sklopovlja u Linuxu

U mapi arch/arm/mach-omap2/ se nalaze svi izvorni kodovi vezani uz arhitek-

turu OMAP2 na dalje, a sve datoteke unutar te mape koje pocinju s board- su vezane

uz specificnu platformu, tj. plocicu (engl. board).

Ovdje je platforma tdm3730 takoder kopirana u platformu tacna. Kopirana

je datoteka board-taotdm.c u datoteku board-tacna.c te su izmijenjene da-

toteke Kconfig i Makefile. Konacno, u konfiguraciji prevodenja operacijskog

sustava Linux onemoguceno je prevodenje za platformu tdm3730, a omoguceno je

prevodenje za novu platformu tacna.

U nastavku ovog poglavlja su opisane inicijalizacije koje nije implementirala firma

TechNexion.

18

Page 23: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

3.2.1. Matricna tipkovnica

Pomocni cip TPS65930 (kompatibilan s TWL4030) na procesorskom modulu ima

ugradeno sklopovsko skeniranje matricne tipkovnice. Sklopovsko skeniranje, za raz-

liku od programskog skeniranja, omogucuje vecu uštedu energije jer procesor može

spavati dok minimalno sklopovlje skenira za pritiske i prekida (tj. budi) procesor pri

svakom novom pritisku.

U odsjecku 3.2 su prikazani opisnici potrebni za konfiguraciju matricne tipkovnice.

U opisniku tacna_kp_twl4030_data se nalazi broj redaka i stupaca tipkovnice

te pokazivac na opisnik uloga pojedinih tipaka.

Ugradena tipkovnica ima cetiri tipke spojene u matricu 2× 2. Predvidene uloge su

im za podešavanje glasnoce, povratak na glavni ekran te paljenje i gašenje, odnosno,

zakljucavanje ekrana. U listi board_keymap su odredene uloge prema lokaciji tipke

u matrici.

Uvjet CONFIG_KEYBOARD_TWL4030 osigurava da je prilikom prevodenja

ukljucen modul za tipkovnicu.

Odsjecak 3.2: Opisnici tipkovnice#ifdef CONFIG_KEYBOARD_TWL4030

static uint32_t board_keymap[] =

KEY(0, 0, KEY_VOLUMEUP),

KEY(0, 1, KEY_VOLUMEDOWN),

KEY(1, 0, KEY_HOME),

KEY(1, 1, KEY_POWER),

;

static struct matrix_keymap_data board_map_data =

.keymap = board_keymap,

.keymap_size = ARRAY_SIZE(board_keymap),

;

static struct twl4030_keypad_data tacna_kp_twl4030_data =

.keymap_data = &board_map_data,

.rows = 2,

.cols = 2,

.rep = 1,

;

#endif

19

Page 24: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

U strukturu za inicijalizaciju cipa TWL4030 (taotdm_twldata) je bilo po-

trebno dodati odsjecak 3.3 kako bi opisnik tipkovnice bio poznat prilikom inicijali-

zacije cipa TWL4030.

Odsjecak 3.3: Prikljucivanje tipkovnice#if defined(CONFIG_KEYBOARD_TWL4030)

.keypad = &tacna_kp_twl4030_data,

#endif

3.2.2. Kartica µSD

Ovaj sustav je predviden da ima dvije memorijske kartice. Jednu za potrebe sustava,

a drugu za potrebe korisnika. Memorijsku karticu za potrebe korisnika je moguce

mijenjati jer je lako dostupna na rubu uredaja dok memorijsku karticu sustava nije

moguce mijenjati jer je fizicki nedostupna. Osim toga memorijsku karticu za potrebe

sustava nije niti dopušteno mijenjati jer bez nje sustav ne može raditi.

Memorijska kartica za potrebe korisnika je spojena na sabirnicu HSMMC koja je

i namijenjena za memorijske kartice. Druga sabirnica HSMMC nije bila dostupna pa

je memorijska kartica za potrebe sustava spojena na zasebnu sabirnicu SPI. Za tu je

sabirnicu bilo potrebno u U-Bootu postaviti ispravno multipleksiranje izvoda.

Opisnik sabirnice SPI je prikazan u odsjecku 3.4. U opisniku sabirnice SPI po-

trebno je navesti sve uredaje prikljucene na sabirnicu jer ih nije moguce automatski

otkriti. Na ovu sabirnicu SPI je spojena samo kartica MMC te je stoga u opisniku

samo jedan element koji povezuje upravljacki modul mmc_spi s uredajem na ovoj

sabirnici SPI koji se odaziva na nultoj adresi.

Upravljackom modulu mmc_spi je potrebno dati dodatni opisnik u kojem je na-

vedeno koje napone kartica mora podržavati.

Sabirnicu SPI je potrebno prijaviti sustavu pozivom na funkciju spi_regi-

ster_board_info unutar funkcije tdm3730_init kao što je prikazano u od-

sjecku 3.5. Funkciji se kao argument zadaje lista sa svim uredajima na sabirnici.

20

Page 25: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Odsjecak 3.4: Opisnik SPI sabirnice i modula za memorijsku karticu#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)

#include <linux/spi/mmc_spi.h>

static struct mmc_spi_platform_data mmc_spi_data =

.ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34,

;

#endif

static struct spi_board_info spi3_board_info[] __initdata =

#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)

.modalias = "mmc_spi",

.max_speed_hz = 50000000,

.bus_num = 3,

.chip_select = 0, /* nulta adresa */

.platform_data = &mmc_spi_data,

.mode = SPI_MODE_0,

,

#endif

; Odsjecak 3.5: Inicijalizacija SPI sabirnice

spi_register_board_info(spi3_board_info,

ARRAY_SIZE(spi3_board_info)); 3.2.3. Ekran osjetljiv na dodir

Na nosecoj plocici se nalazi isti cip (ADS7846) za mjerenje otpornickog panela

(engl. resistive touch panel) kao i na demonstracijskoj plocici firme TechNexion tako

da nije bilo potrebno puno izmjena.

U opisniku cipa ADS7846 je bilo potrebno zapisati podatke poput otpora panela na

X-osi, maksimalan dopušteni otpor pritiska te postavke za istitravanje.

3.2.4. Sabirnica I2C

Na zasebnu sabirnicu I2C su spojeni akcelerometar, senzor osvjetljenja i mikrokon-

troler za upravljanje RGB-diodom. Na sabirnici I2C takoder nije moguce automatski

prepoznati prikljucene uredaje pa je potrebno napraviti listu sa svim prikljucenim ure-

21

Page 26: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

dajima kao što je prikazano u isjecku 3.6. Lista povezuje adresu uredaja s upravljackim

modulom.

Odsjecak 3.6: Lista uredaja prikljucenih na sabirnicu I2Cstatic struct i2c_board_info __initdata taotdm_i2c_2_boardinfo[] =

.type = "mma8450",

.addr = 0x1C,

.irq = OMAP_GPIO_IRQ(18),

,

I2C_BOARD_INFO("tinyRGB", 0x12),

,

.type = "apds9303",

.addr = 0x29,

.irq = OMAP_GPIO_IRQ(13),

; Sabirnicu I2C je potrebno prijaviti sustavu pozivom na funkciju omap_-

register_i2c_bus unutar funkcije taotdm_i2c_init kao što je prikazano

u odsjecku 3.7. Funkciji se kao argument zadaje redni broj sabirnice, maksimalni takt

u kHz te lista sa svim uredajima na sabirnici.

Odsjecak 3.7: Inicijalizacija sabirnice I2Comap_register_i2c_bus(2, 100, taotdm_i2c_2_boardinfo,

ARRAY_SIZE(taotdm_i2c_2_boardinfo));

3.2.5. Ulazno/izlazni izvodi opce namjene

Uz inicijalizaciju sklopovlja je potrebno prijaviti ulazno/izlazne izvode opce namjene

(engl. GPIO – general purpose input/output) te ih postaviti na pocetnu vrijednost. Po-

pis svih izvoda GPIO i njihovih lokacija na modulu i procesoru se nalazi u tablici 3.1.

U odsjecku 3.8 su prikazani primjeri inicijalizacije ulaznog i izvoda. Funkcija

gpio_request prijavljuje zadani izvod sa zadanim opisom, a funkcije gpio_-

direction_input i gpio_direction_output odreduju smjer izvoda. Funk-

22

Page 27: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Tablica 3.1: GPIO izvodi

Izvod na modulu Izvod na procesoru Smjer Funkcija

47 143 izl. Gasi zvucnike

49 141 izl. Gasi slušalice

65 137 ul. Slušalice prisutne

68 12 izl. Omoguci punjenje preko USB-a

69 19 ul. Podatkovni kabl prisutan

72 13 ul. Prekid iz senzora osvjetljenja

74 18 ul. 1. prekid iz akcelerometra

90 20 ul. 2. prekid iz akcelerometra

142 126 izl. Omoguci akcelerometar

144 98 izl. Omoguci 5V napajanje za USB

146 97 izl. Omoguci brzo punjenje

148 101 izl. Gasi cijeli sustav

150 103 ul. Greška prilikom punjenja

152 102 ul. Status punjenja

cija gpio_direction_output osim broja izvoda na procesoru kao drugi argu-

ment prima pocetno stanje izvoda.

Funkcijom gpio_export se omogucuje pristup izvodima GPIO iz korisnickog

adresnog prostora preko mape iz sustavskog datotecnog sustava sysfs. Mapa se nalazi

na lokaciji /sys/class/gpio/ i sadrži datoteku value preko koje je moguce

ocitavati i mijenjati stanje izvoda.

Ukoliko je potrebno, za ulazni izvod GPIO je moguce zatražiti prekid funkcijom

request_irq. Identifikacijski broj prekida je moguce odrediti makroom OMAP_-

GPIO_IRQ.

23

Page 28: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Odsjecak 3.8: Inicijalizacija ulaznog i izlaznog izvoda/* ulazni izvod */

if (!gpio_request(137, "EAR_PLUGED") &&

!gpio_direction_input(137))

gpio_export(137, 0);

printk("ear_pluged ok\n");

/* izlazni izvod */

if (!gpio_request(126, "ACC_EN") &&

!gpio_direction_output(126, 1))

gpio_export(126, 0);

printk("acc_en ok\n");

3.2.6. Funkcija za gašenje sustava

Globalna varijabla pm_power_off je pokazivac na funkciju za gašenje cijelog sus-

tava. Pretpostavljena vrijednost te varijable je NULL što znaci da se sustav ne može

ugasiti. U tom ce slucaju jezgra operacijskog sustava samo ostati u beskonacnoj petlji.

Ovaj sustav podržava automatsko gašenje kao što je opisano u poglavlju 2.3.6 i po-

trebno je izmijeniti globalnu varijablu pm_power_off ukoliko prijava izvoda GPIO

prode uspješno. Funkcija ciju se adresu zapisuje u globalnu varijablu pm_power_-

off se nalazi u odsjecku 3.9. Jedini zadatak te funkcije je da na izvod za gašenje

sustava zapiše logicku jedinicu.

Odsjecak 3.9: Funkcija za gašenje sustavastatic void tacna_power_off(void)

gpio_set_value(101, 1);

3.2.7. Mjerenje stanja baterije

Dodatni analogni ulaz cipa ADS7846 je spojen na napon dobiven izravno iz baterije

kako bi bilo moguce izmjeriti njeno trenutno stanje. No nažalost, upravljacki modul za

cip ADS7846 nema funkciju za ocitanje analogne vrijednosti koju je moguce direktno

pozvati unutar jezgre operacijskog sustava. Stoga je potrebno koristiti ugradeno mjere-

24

Page 29: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

nje baterije na cipu TPS65930 dok se ne nadogradi upravljacki modul za cip ADS7846.

Cip TPS65930 se nalazi iza linearnog regulatora na kojem pad napona uvelike ovisi o

potrošnji sustava tako da ta mjerenja nisu pouzdana.

Kako bi bilo moguce koristiti pretvornik A/D iz cipa TPS65930 potrebno je uklju-

citi upravljacki modul twl4030_madc i dodati opisnik u listu svih prikljucenih ure-

daja omap3_tdm3730_devices.

25

Page 30: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

4. Periferna programska podrška

Za potpunu funkcionalnost uredaja je bilo potrebno implementirati tri upravljacka mo-

dula [9] [10] i prebaciti podršku za akcelerometar iz novije jezgre operacijskog sustava

Linux. Dijagram modula je prikazan na slici 4.1. Plavom bojom su oznaceni imple-

mentirani moduli.

Linux board

tacna_power

OMAP I2C

mma8450 apds9303 tinyrgb

Slika 4.1: Dijagram modula

Takoder, bilo je potrebno korisniku uredaja omoguciti odabir da li ce zvuk biti

preusmjeren na slušalice ili na ugradene zvucnike. Napravljeni su i demonstracijski

programi za akcelerometar, senzor intenziteta svjetlosti i za upravljanje RGB-diodom.

Na nosecoj plocici se nalazi Bluetooth modul koji je spojen na jedno od serijskih

sucelja. Sva programska podrška niske razine je vec ugradena u operacijski sustav

Linux i bilo je potrebno samo povezati serijsko sucelje s Bluetoothom u init-skripti.

26

Page 31: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

4.1. Upravljacki moduli

4.1.1. Virtualni datotecni podsustav za upravljanje i nadzor

Virtualni datotecni podsustav za upravljanje i nadzor (sysfs) je tipicno mapiran

(engl. mount) u mapi /sys, a služi za komunikaciju procesa u korisnickom adresnom

prostoru s uredajima, odnosno upravljackim modulima uredaja [6]. Puno je jednos-

tavniji za korištenje od procfs-a jer nije potrebno brinuti se za otvaranje i zatvaranje

datoteka, nego je samo potrebno procitati odnosno zapisati podatak u meduspremnik.

U mapi /sys su uredaji grupirani na razne nacine simbolickim poveznicama. Pri-

mjerice, u mapi /sys/class su grupirani po svom tipu, a u /sys/bus se nalaze

sve sabirnice.

Svaki uredaj prilikom prijavljivanja dobiva vlastitu mapu u kojoj ima svojstva u

obliku datoteka koje je moguce citati i/ili pisati. Prozivanjem (engl. polling) svojstva

je moguce i cekati na novu vrijednost.

Grupa specificnih svojstava uredaja se definiraju prilikom prijavljivanja uredaja

funkcijom sysfs_create_group kao što je prikazano u odsjecku 4.1. Prili-

kom odjave uredaja grupu sa svojstvima je potrebno izbrisati funkcijom sysfs_-

remove_group. Obje funkcije kao prvi argument primaju lokaciju grupe u sysfsu, a

kao drugi opisnik grupe svojstava.

Odsjecak 4.2 prikazuje opisnik grupe uredjaj_attr_grp, listu svih atributa

uredjaj_attrs, te opisnik atributa "svojstvo". U opisniku grupe nužno je navesti

NULL-terminiranu listu sa svim atributima, a po potrebi je moguce zadati i ime grupe,

odnosno podmape u kojoj ce se svojstva nalaziti. Opisnici svojstva se jednostavno defi-

niraju makroom DEVICE_ATTR ciji prvi argument odreduje ime svojstva, drugi prava

pristupa, a treci i cetvrti redom pokazivace funkcija za ocitanje i izmjenu svojstva.

Konacno, funkcije za ocitanje i izmjenu svojstva su prikazane u odsjecku 4.3. Na

temelju argumenta dev je moguce doznati o kojem se tocno uredaju radi (ako je više

istih uredaja), a argument attr omogucuje da više razlicitih svojstava ima iste funk-

cije. Argument buf je meduspremnik.

Uz pretpostavku da se primjer smjesti u mapu /sys/class/power/test,

svojstvu "svojstvo" je moguce pristupiti kroz datoteku /sys/class/power/

svojstvo. Stanje varijable podatak je sada moguce procitati naredbom cat, a

naredbom echo je moguce mijenjati stanje varijable (ali samo ukoliko se zapiše cijeli

broj).

27

Page 32: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Odsjecak 4.1: Primjer definiranja i brisanja grupe svojstva upravljackog modula/* funkcija za prijavu uredjaja */

static __devinit int uredjaj_probe(struct platform_device *pdev)

int err;

/* ... inicijalizacija */

/* stvaranje svojstava */

err = sysfs_create_group(&pdev->dev.kobj, &uredjaj_attr_grp);

if (err < 0)

dev_err(&pdef->dev, "Nije moguce inicijalizirati sysfs!\n");

goto err_sysfs;

/* ... finalizacija */

return 0;

/* ... oporavak od greske */

err_sysfs:

return err;

/* funkcija za odjavu uredjaja */

static __devexit int uredjaj_remove(struct platform_device *pdev)

/* brisanje svojstava */

sysfs_remove_group(&pdev->dev.kobj, &uredjaj_attr_grp);

/* ... deinicijalizacija */

28

Page 33: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Odsjecak 4.2: Primjer opisnika grupe svojstava i opisnika svojstva/* opisnik svojstva "svojstvo", moze mu pristupiti bilo tko */

static DEVICE_ATTR(svojstvo,

S_IRUGO | S_IWUGO,

svojstvo_show, svojstvo_store);

/* lista sa svojstvima grupe */

static struct attribute *uredjaj_attrs[] =

&dev_attr_svojstvo.attr,

/* ostala svojstva */

NULL

;

/* opisnik grupe svojstva */

static struct attribute_group uredjaj_attr_grp =

.attrs = uredjaj_attrs,

/* ostali elementi strukture su opcionalni */

;

Odsjecak 4.3: Primjer funkcija za ocitanje i izmjenu svojstavastatic unsigned long podatak;

/* funkcija za prikaz svojstva */

static ssize_t svojstvo_show(struct device *dev,

struct device_attribute *attr,

char *buf)

return sprintf(buf, "%lu\n", podatak);

/* funkcija za izmjenu svojstva */

static ssize_t svojstvo_store(struct device *dev,

struct device_attribute *attr,

const char *buf, size_t len)

if (strict_strtoul(buf, 0, &podatak))

return -EINVAL;

return len;

29

Page 34: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Prozivanje dogadaja datotecnog podustava za upravljanje i nadzor

Prozivanje sysfs dogadaja omogucuje blokiranje procesa do promjene svojstva uredaja.

Upravljacki modul mora obavijestiti sysfs o izmjeni svojstva funkcijom sysfs_-

notify.

U odsjecku 4.4 je prikazan primjer prozivanja nad datotekom svojstva /sys/

class/power/test/svojstvo. Svojstva nisu tokovi podataka pa je potrebno

prije svakog citanja pokazivac vratiti na pocetak datoteke.

Odsjecak 4.4: Primjer prozivanja sysfs dogadajaint main()

struct pollfd pfd;

char buf[MAX_BUF_LEN];

pfd.fd = open("/sys/class/power/test/svojstvo", O_RDONLY);

if (pfd.fd < 0) err(1, "open");

pfd.events = POLLPRI; /* prioritetni dogadjaj */

for (;;)

if (poll(&pfd, 1, -1) < 0)

err(1, "poll");

lseek(pfd.fd, 0, SEEK_SET);

if (read(pfd.fd, buf, MAX_BUF_LEN) < 0)

err(1, "read");

/* ... obrada medjuspremnika buf */

4.1.2. Modul za akcelerometar

Upravljacki modul mma8450 za akcelerometar nije podržan u Linuxu 2.6.37 nego

tek u 3.1. Uz minimalne izmjene je kopiran u 2.6.37 i dodan u pripadajuce datoteke

Makefile i Kconfig. Modul ima nekoliko grešaka i nedostataka koje bi trebalo

ispraviti. Primjerice, ne postoji podrška za signal za paljenje i gašenje akcelerometra.

Iz tog razloga je prilikom inicijalizacije sustava bilo potrebno rucno izvod GPIO za

paljenje akcelerometra fiksno postaviti na logicku jedinicu. Osim toga, modul vraca

vrijednosti bez predznaka umjesto s predznakom tako da je u korisnickim aplikacijama

potrebno dodavati predznak prema odsjecku 4.5.

30

Page 35: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Odsjecak 4.5: Ispravljanje predznaka u rezultatu mjerenja akcelerometrastruct input_event ev;

/* citanje vrijednosti s akcelerometra */

if ((rd = read(fd, &ev, sizeof(ev))) < sizeof(ev))

perror_exit("read()");

if (ev.type == EV_ABS)

/* ispravljanje predznaka */

if (ev.value & 0x800)

ev.value |= ~0x7ff;

/* ... */

4.1.3. Modul za pracenje stanja baterije

Modul za pracenje stanja baterije, kao što mu samo ime kaže, omogucuje pracenje

stanja baterije korisniku uredaja. Nalazi se u drivers/power/tacna_power.c.

Zbog greške u sklopovlju (ispravljena u shemama u dodatku) nije se moguce pouz-

dati u stanja signala punjaca. Umjesto toga se iskljucivo na temelju napona napajanja

zakljucuje da li je prikljucen vanjski izvor napajanja ili ne. Maksimalni izmjereni

napon na bateriji bez punjaca je 4V, tako da je pri naponu vecem od 4.2V moguce

zakljuciti da je prikljucen vanjski izvor napajanja.

Modul prijavljuje sustavu izvor napajanja tipa baterija prema odsjecku 4.6. Glo-

balno polje tacna_bat_props sadrži popis svih svojstava koje je moguce dohvatiti

preko funkcije tacna_bat_get_prop. Implementirana je podrška za najosnovnija

svojstva potrebna za podsustav APM:

POWER_SUPPLY_PROP_STATUS: vraca status baterije (ili se puni ili se prazni),

POWER_SUPPLY_PROP_VOLTAGE_NOW: trenutni napon baterije (mjeri se po-

mocu funkcije twl4030_get_madc_conversion(12) dostupne iz mo-

dula twl4030_madc),

POWER_SUPPLY_PROP_VOLTAGE_MAX: vraca maksimalni napon na bateriji

koji iznosi 4.2V,

POWER_SUPPLY_PROP_VOLTAGE_MIN: vraca minimalni napon na bateriji

koji iznosi 2.7V,

31

Page 36: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

POWER_SUPPLY_PROP_PRESENT: uvijek vraca istinu jer je baterija uvijek pri-

sutna, tj. nije izmjenljiva,

POWER_SUPPLY_PROP_TECHNOLOGY: uvijek vraca tip baterije Li-ion.

Odsjecak 4.6: Prijava izvora tipa baterijabat->name = "Kruh baterija";

bat->type = POWER_SUPPLY_TYPE_BATTERY;

bat->properties = tacna_bat_props;

bat->num_properties = ARRAY_SIZE(tacna_bat_props);

bat->get_property = tacna_bat_get_prop;

ret = power_supply_register(&pdev->dev, bat);

if (ret)

goto err_psureg1; Iz korisnickog adresnog prostora komponentama ovog modula je moguce pristupiti

preko datoteka u mapi /sys/class/power_supply.

Podsustav APM

Podsustav APM (engl. Advanced Power Manager) je apstrakcijski sloj za upravljanje

potrošnjom namijenjen za IBM-kompatibilna racunala [1]. U ovom se sustavu koristi

samo kako bi graficko sucelje GPE moglo ocitati stanje baterije jer ono ne podržava

drugi nacin. Bilo ga je potrebno ukljuciti u postavkama jezgre operacijskog sustava.

Podsustav APM periodicki pretražuje prikljucene baterije i dojavljuje njihovo sta-

nje korisnickoj aplikaciji.

4.1.4. Modul za mjerenje intenziteta svjetlosti

Upravljacki modul za senzor APDS9303 ne postoji niti u jednoj verziji jezgre, te ga je

bilo potrebno implementirati.

APDS9303 podržava dva nacina mjerenja: automatsko periodicno mjerenje i rucno

mjerenje. Rucno mjerenje je potrebno samo za iznimne slucajeve i stoga ono nije

implementirano. Nije implementirana niti mogucnost izmjene periode mjerenja, ali je

predvidena za daljnji razvoj.

Programi unutar korisnickog adresnog prostora mogu ocitavati vrijednost sa sen-

zora putem datoteke lux0_input unutar mape /sys/class/i2c-adapter/

32

Page 37: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

i2c-2/2-0029/. Prozivanjem datoteke je moguce dohvacati svaku novu vrijed-

nost.

Funkcija za ocitanje svojstva lux0_input blokira izvodenje procesa do prekida

sa senzora. U prekidu se senzoru šalje potvrda prekida i citaju se izmjerene vrijednosti

CH0 i CH1 (vidljiva i infracrvena svjetlost).

Koristi se dretveni prekid što znaci da prekid pokrece dretvu koja se izvodi kad

dode na red. Dretvu, za razliku od obicne prekidne funkcije, je moguce blokirati prili-

kom komunikacije preko I2C sabirnice.

Iz obje vrijednosti se izracunava osvjetljenje u mili luksima prema funkciji u od-

sjecku 4.7. Funkcija koristi iskljucivo cjelobrojne operacije (engl. fixed point). Opera-

cija potenciranja x1.4 je implementirana pomocu pregledne tablice (engl. lookup table).

Formule za izracun intenziteta svjetlosti u luksima u uputama cipa APDS9303 koriste

decimalne faktore. Faktori su pomnoženi s 100000 kako bi se dobili cijeli brojevi. Re-

zultat je stoga u zapisu 100×mLuks kojeg se prilikom prikaza dijeli sa 100 kako bi se

dobio prikaz u mili luksima sa dvije decimalne znamenke.

Odsjecak 4.7: Izracun osvjetljenja u mili luksima// /100 za mili lukse

static u32 apds9303_calc_lux(u16 ch0, u16 ch1)

static const u16 expx_14[16] =

2, 6, 11, 17, 23, 30, 37, 45,

53, 61, 70, 79, 88, 98, 107, 118;

const u32 ratio = (ch0 > 0) ? ch1 * 1024 / ch0 : 2048;

if (ratio <= (u32)(0.52 * 1024))

return 3150 * ch0 - 46 * ch0 * expx_14[(ratio >> 6) & 0x07];

else if (ratio <= (u32)(0.65 * 1024))

return 2290 * ch0 - 2910 * ch1;

else if (ratio <= (u32)(0.80 * 1024))

return 1570 * ch0 - 1800 * ch1;

else if (ratio <= (u32)(1.30 * 1024))

return 338 * ch0 - 260 * ch1;

else

return 0;

33

Page 38: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

4.1.5. Modul za upravljanje RGB-diodom

Ovaj modul je zadužen za komunikaciju s mikrokontrolerom koji upravlja RGB-

diodom. Modul se sastoji od tri sucelja za svjetlece diode (opisano u poglav-

lju 4.1.5) te od svojstva za upravljanje nacinom rada. Modul je smješten u mapi

drivers/leds/, datoteci leds-tinyrgb.c.

Sucelje za svjetlece diode

Sucelje za svjetlece diode omogucuje vrlo jednostavnu implementaciju upravljackih

modula za svjetlece diode [4]. Posebno jednostavan slucaj su svjetlece diode spojene

na izvod GPIO. U tom slucaju nije potrebno raditi posebni upravljacki modul.

Pomocu okidaca (engl. trigger) jezgra operacijskog sustava može sama prema po-

trebi paliti i gasiti svjetlece diode, ali moguce je i imati svjetlece diode namijenjene

rucnom, odnosno korisnickom upravljanju.

Iz korisnickog adresnog prostora svim svjetlecim diodama je moguce pristupiti

unutar mape /sys/class/leds. Svaka svjetleca dioda ima svoju mapu unutar

koje se nalaze datoteke brightness (za odredivanje intenziteta osvjetljenja) i max_

brightness (za dohvacanje maksimalnog intenziteta).

U odsjecku 4.8 je prikazana pojednostavljena prijava svjetlece diode jezgri ope-

racijskog sustava. Postavljanje opisnika svjetlece diode kao globalnu varijablu nije

poželjno i ovdje je postavljeno zbog jednostavnosti. U prakticnom rješenju opisnik se

mora nalaziti u podacima vezanim uz uredaj.

Opisnik svjetlece diode cdev ima dva bitna elementa koja je potrebno inicijali-

zirati: naziv diode oblika "ime:boja:uloga" i funkciju za postavljanje intenziteta. Po

potrebi je moguce odrediti maksimalan intenzitet (pretpostavljena vrijednost je 255) i

još razne druge elemente koji nisu bitni za ovaj uredaj.

Kada okidac ili korisnik zatraži izmjenu intenziteta poziva se callback funkcija

ledica_set_brightness. Primjer funkcije je prikazan u odsjecku 4.9. Jedini

zadatak te funkcije je slanje naredbe sklopovlju za izmjenu intenziteta. Ukoliko ko-

munikacija sa sklopovljem može blokirati, potrebno je koristiti pozadinske zadatke i

samo funkcijom schedule_work pokrenuti zadatak za izmjenu intenziteta. U tom

pozadinskom zadatku se onda izvodi komunikacija sa sklopovljem.

34

Page 39: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Odsjecak 4.8: Prijava sucelja za svjetlecu diodustruct led_classdev cdev; /* opisnik svjetlece diode */

/* funkcija za prijavu uredjaja */

static __devinit int uredjaj_probe(struct platform_device *pdev)

int err;

/* ... inicijalizacija */

/* prijava sucelja za svjetlecu diodu */

cdev.name = "s-dioda:zelena";

cdev.brightness_set = ledica_set_brightness;

err = led_classdev_register(&pdev->dev, &cdev);

if (err < 0)

dev_err(&pdef->dev, "Nije moguce prijaviti svj. diodu!\n");

goto err_led;

/* ... finalizacija */

return 0;

/* ... oporavak od greske */

err_led:

return err;

/* funkcija za odjavu uredjaja */

static __devexit int uredjaj_remove(struct platform_device *pdev)

/* brisanje svojstava */

sysfs_remove_group(&pdev->dev.kobj, &uredjaj_attr_grp);

/* ... deinicijalizacija */

Odsjecak 4.9: Funkcija za izmjenu intenziteta svjetlosti diode

static void ledica_set_brightness(struct led_classdev *cdev,

enum led_brightness brightness)

/* posalje sklopovlju naredbu za izmjenu intenziteta */

postavi_intenzitet(brightness);

35

Page 40: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Upravljanje RGB-diodom iz korisnickog adresnog prostora

Iz korisnickog adresnog prostora svakoj komponenti RGB-diode je moguce pristu-

piti preko datoteke /sys/class/leds/tinyRGB:boja/brightness ("boja"

može biti "r" za crvenu, "g" za zelenu ili "b" za plavu komponentu).

Sam uredaj u sysfsu se nalazi u mapi /sys/class/i2c-adapter/i2c-2/

2-0012/. Definirana su sljedeca svojstva:

mode: nacin rada bljeskanja; može biti "off" (ugašeno), "static" (konstantno svijetlo)

i "fade" (automatsko bljeskanje),

period: razmak izmedu paljenja,

duration: trajanje jednog bljeska,

fade_speed: brzina postepenog paljenja,

num_fade: broj uzastopnih bljeskova unutar jednog paljenja.

Komunikacija s mikrokontrolerom

Kao što je vec prije spomenuto, komunikacija s mikrokontrolerom odvija se preko

sabirnice I2C. Za slanje naredbi se koristi funkcija i2c_master_send. Ta funkcija

omogucuje sirovo slanje podataka koje je potrebno zbog neuobicajenog protokola.

Implementirana je posebna funkcija za slanje naredbi trgb_write. Funkcija

slaže paket s naredbama i unutar kriticnog odsjecka poziva gore navedenu funkciju

za slanje naredbi kako ne bi došlo do kolizije. Ovisno o parametru level šalju se

naredbe boje, boje i vremena ili boje, vremena i nacin rada.

36

Page 41: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

4.2. Demonstracijski programi

4.2.1. Demonstracija akcelerometra

Na slici 4.2 je prikazano graficko sucelje za demonstraciju funkcionalnosti akce-

lerometra. Sucelje je ostvareno pomocu biblioteke GTK+ i prozivanjem datoteke

/dev/input/event2. Upravo ta je datoteka u kojoj je moguce dohvatiti dogadaje

s akcelerometra.

Slika 4.2: Graficko sucelje za ocitanje akcelerometra

4.2.2. Demonstracija senzora intenziteta svjetlosti i RGB-diode

Na slici 4.3 je prikazano graficko sucelje za demonstraciju ocitanja senzora intenziteta

svjetlosti i upravljanja RGB-diodom. Sucelje je ostvareno pomocu biblioteke GTK+.

Trenutno stanje intenziteta svjetlosti okoline dohvaca se prozivanjem datoteke

/sys/class/i2c-adapter/i2c-2/2-0029/lux0_input.

Sucelje omogucuje izmjenu svih svojstava mikrokontrolera za upravljanje RGB-

diodom, a prilikom pokretanja dohvacaju se prethodna stanja svih svojstava.

37

Page 42: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Slika 4.3: Graficko sucelje za ocitanje intenziteta svjetlosti i upravljanje RGB-diodom

4.3. Preusmjeravanje zvuka

Slika 4.4: Prozor-

cic za podešavanje

glasnoce i preus-

mjeravanje zvuka

Zbog greške u sklopovlju za otkrivanje prisustva slušalica bilo je

potrebno napraviti aplikaciju koja korisniku omogucuje rucno us-

mjeravanje zvuka na slušalice i/ili ugradene zvucnike.

Napravljena je GTK+ aplikacija koja se prilikom pokretanja

smjesti u podrucje obavijesti (engl. system tray). Pritiskom na

ikonu se pojavljuje prozorcic za podešavanje glasnoce s dva do-

datna preklopna gumba (engl. toggle button) za paljenje i gašenje

pojedinog izlaza (prikazan na slici 4.4).

Aplikacija omogucuje i onemogucuje izlaze upravljanjem iz-

voda GPIO preko sysfs-a, a glasnocu podešava pomocu biblioteke

Alsa.

38

Page 43: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

4.4. Sucelje za podešavanje tipaka

Sucelje za podešavanje tipaka je dio grafickog sucelja GPE i potrebno je bilo samo

napisati datoteku s postavkama /etc/gpe/key-layout.

Datoteka s postavkama je u zapisu INI. U odsjecku 4.10 je prikazan primjer pos-

tavki za jednu tipku.

Odsjecak 4.10: Primjer postavki za jednu tipku[Global]

image = /usr/share/pixmaps/tacna-keys.png

offset_x = 30

offset_y = 10

[Power]

title = Power Button

symbol = gpe-config-apm.png

key = XF86PowerDown

command = apm --suspend

xpos = 315

ypos = 30 U odjeljku Global se odreduje pozadinska slika i njene koordinate, a u ostalim

odjeljcima ciji su nazivi ime tipke se odreduje redom naslov, slika akcije, naziv doga-

daja u X11, naredba koja ce se pokrenuti pritiskom na tipku i konacno lokacija tipke

na slici.

Na slici 4.5 je prikazan izgled sucelja za podešavanje tipaka, a položaj tipaka na

samom kucištu je prikazan na slici 2.9a. Slika unutar sucelja za podešavanje je nacrtana

prema fizickim tipkama i vijcima.

39

Page 44: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Slika 4.5: Sucelje za podešavanje tipaka

4.5. Bluetooth

Korišteni Bluetooth modul je bio isporucen u nacinu rada prilagodbe Bluetootha se-

rijskom sucelju za mikrokontrolere. Takav nacin rada je previše ogranicen za potrebe

rucnog racunala. Stoga je Bluetooth modul prebacen u BCSP (engl. BlueCore Serial

Protocol) nacin rada. U tom nacinu Linux može izravno slati HCI (engl. host/control-

ler interface) naredbe i koristiti Bluetooth modul za bilo koji protokol, a ne samo za

serijsko sucelje preko Bluetootha.

Za pokretanje Bluetooth podsustava je napravljena posebna pokretacka skripta

(engl. init script) pojednostavljeno prikazana u odsjecku 4.11. Program hciattach

povezuje serijsko sucelje s Bluetooth uredajem. Kao prvi argument prima putanju do

datoteke s tokom podataka serijskog sucelja. Drugi argument je naziv protokola koji

ce se koristiti za komunikaciju s Bluetooth modulom, a treci argument odreduje br-

zinu prijenosa podataka. Ukoliko komunikacija s Bluetooth modulom uspije, program

hciattach stvara virtualni Bluetooth uredaj hci0.

Program hciconfig podešava i pokrece Bluetooth modul. Kao prvi argument se

zadaje kojem Bluetooth uredaju se šalje naredba, a drugi argument je upravo naredba

koju se šalje.

40

Page 45: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Odsjecak 4.11: Bluetooth pokretacka skripta#!/bin/sh

BT_UART=/dev/ttyO2

bt_start()

hciattach "$BT_UART" bcsp 115200

hciconfig hci0 up

bt_stop()

hciconfig hci0 down

killall hciattach

case "$1" in

start)

echo "Starting Bluetooth support"

bt_start

;;

stop)

echo "Stopping Bluetooth support"

bt_stop

;;

esac

exit 0

41

Page 46: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

5. Mehanicka konstrukcija

LCD-ekran s panelom osjetljivim na dodir je najviše utjecao na konstrukciju kucišta.

Citavo kucište je ustvari dimenzije ekrana s time da je deblje za oko 9 mm kako bi

ispod ekrana bilo mjesta za elektroniku.

S obzirom da se radi o prototipu cija je osnovna svrha bila prikazati mogucnosti

takvog racunala, kucište je konstruirano tako da se što jednostavnije može izraditi.

Bitno je bilo i da se sastoji od lako dostupnih materijala. Uobicajen izgled za ovaj tip

uredaja nije bio prioritet.

Kucište se sastoji od gornje strane koja je odredena panelom osjetljivim na dodir

ispod kojeg je smješten LCD-ekran, aluminijskog okvira i zaštite s donje strane.

Rubovi kucišta koji nose prikljucke i tipke te spajaju gornju i donju plohu racunala

izradeni su iz eloksiranog aluminija U-profila. Medusobno su povezani kutnicima od

mesinga u kojima su urezani navoji za vijke koji drže citavu konstrukciju (slika 5.1).

Donji dio kucišta koji štiti elektroniku je od pleksi-stakla kako bi unutrašnjost ra-

cunala bila vidljiva. Nacrt je prikazan u dodatku B.

42

Page 47: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

(a) Donja strana okvira

(b) Gornja strana okvira

(c) Unutarnja strana okvira

Slika 5.1: Konstrukcija okvira

43

Page 48: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

6. Zakljucak

Ovaj diplomski rad prikazuje izgradnju jednog prijenosnog racunala u obliku funkci-

onalnog prototipa. U okviru programske podrške zasnovane na operacijskom sustavu

Linux razvijeni su i doradeni potrebni sustavski moduli te je razvijen i pokoji program,

prvenstveno u svrhu ispitivanja ili prikaza mogucnosti racunala.

Naravno, ovaj rad nije završio proizvodom koji se može odmah komercijalizirati. U

tu svrhu bi trebalo uložiti znatne napore kao bi se doradila sklopovska rješenja, dizajn

samog uredaja, mehanicka konstrukcija te naravno doradila programska podrška za što

bolji korisnicki doživljaj te razvili ili iskoristili postojeci korisnicki programi.

Zanimljivo je da je ukupna cijena utrošenog materijala za izradu prototipa uspore-

diva sa cijenom komercijalnih uredaja istih mogucnosti.

Medutim, primjena ovdje opisane programske i sklopovske implementacije doka-

zala je da se relativno malim naporima u malom vremenu i za malo uloženih sredstava

može razviti upotrebljivo prijenosno racunalo.

44

Page 49: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

LITERATURA

[1] Advanced power management. URL http://en.wikipedia.org/wiki/

Advanced_power_management.

[2] Bootloader Project. URL http://omapedia.org/wiki/Bootloader_

Project.

[3] AM/DM37x Multimedia Device - Technical Reference Manual. URL http:

//www.ti.com/lit/ug/sprugn4p/sprugn4p.pdf.

[4] LED handling under Linux. URL http://kernel.org/doc/

Documentation/leds/leds-class.txt.

[5] APDS9303, 2009. URL http://www.avagotech.com/docs/

AV02-2299EN.

[6] The filesystem for exporting kernel objects, 2010. URL http://kernel.

org/doc/Documentation/filesystems/sysfs.txt.

[7] ATtiny25/45/85, 2011. URL http://www.atmel.com/Images/

doc2586.pdf.

[8] TPS65930/TPS65920 OMAP Power-Management and System Companion Devi-

ces - Technical Reference Manual, 2011. URL http://www.ti.com/lit/

ug/swcu052g/swcu052g.pdf.

[9] Davor Cihlar. Upravljacki modul za operacijski sustav Linux. 2010.

[10] Davor Cihlar. Prenamjena ugradbenog racunalnog sustava. 2011.

45

Page 50: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Izgradnja rucnog racunala

Sažetak

Rad se sastoji od izvedbe prijenosnog racunala tablet zajedno s prilagodbom opera-

cijskog sustava temeljenog na jezgri Linux. Koristeci dobavljive komponente i vlastitu

projektiranu plocicu, izvedeno je racunalo s ekranom osjetljivim na dodir, baterijom,

punjacem, akcelerometrom, svjetlosnim senzorom, zvucnicima i podrškom za sluša-

lice. U radu se opisuju izvedene promjene jezgre Linux, opisuje se hardverska izvedba,

te su navedene sheme sklopovskog dijela rada.

Kljucne rijeci: tablet, linux, ekran osjetljiv na dodir, akcelerometar, svjetlosni senzor,

baterija, napajanje, otvoreni sustav, otvoreni kod, slobodna programska podrška, jezgra

Building a tablet computer

Abstract

This study consists of engineering a tablet computer and modification of an ope-

rating system based on the Linux kernel. Using off-the-shelf components as well as

the self-engineered board, this computer contains a touchscreen, a battery, a charger,

an accelerometer, a light sensor, as well as speakers, along with support for a headset.

This study describes the modifications to the Linux kernel, the hardware, and it also

contains the schematics for the hardware.

Keywords: tablet, linux, touchscreen, accelerometer, light sensor, battery, power sup-

ply, open systems, open source, free software, kernel

Page 51: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Dodatak ASheme sklopova

A.1. Napajanje

TAC_SWITCH-MCPTF-V

1M

1M

V+

10u

100k

GND

V+

GND

NL27WZ04DT

NL27WZ04DT

100n

2 134

S5

R18

R19

C11

R17

1 6

U4A

3 4

U4B

52

U4P C20

POWEROFF

TABLET_ON

Slika A.1: Tipka za paljenje i gašenje

SI4

463

200k

100n

GND

VC

CIN

T

10u 100n

GND GND

V+

GND

27

Si1032R

Q6

R23

C12C21 C22R

9

Q7

TABLET_ON

INT

Slika A.2: MOSFET-i za paljenje i gašenje

47

Page 52: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

+UB

MC

P73

861-

I/SL

GN

D

1613

-05

GN

D

100n

GN

D

20k 10k

GN

D

10k

10k

VDD

Si1

032R

1.6k

GN

DG

ND

100k

VDD

VDD

Si1032R

GN

D

22k

GN

D

+UB 4.

7u

GN

D

100n

GN

D

100

100n

VDD GN

D100n

4.7u

PM

EG

3030

PM

EG

3030

100n

GN

D

VCCINT

VCCINT

VD

D1

4

VD

D2

5

VB

AT3

14

VS

ET

3

PR

OG

7

THR

EF

8

THE

RM

9

TIM

ER

10

EN

16

VS

S1

6

VS

S2

15

VS

S3

11

VB

AT1

12

VB

AT2

13

STA

T12

STA

T21

U2

X2

C1

R1 R2

R4

R5

Q2

R6

R7

Q3

R8

C2

C3

FB1

C24

P1

P2

C25

C26

D1

D2

C28

OTG

_CH

RG

_5V

CH

RG

_STA

T2C

HR

G_S

TAT1

FAS

T_C

HR

G

EX

T_P

WR

_IN

INT

INT

Slika A.3: Punjac baterije

48

Page 53: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

V++UB

1k

GND

5.5V

GND

TPC

8120

SI4

463

GND

100k

10u

GND

100n

GND

Si1032R

1SS355

1SS355

VD

D

R3 R10

Q1

Q5

R22

C16 C23Q4

D4

D5

OTG_CHRG_5V

EXT_PWR_IN

Slika A.4: Odabir izvora napajanja

GND

+5VVC

CIN

T

1251R-15-SM1

123456789101112131415

X1

OTG_CHRG_5V

POWEROFFCHRG_STAT2CHRG_STAT1FAST_CHRGUSB_5V_ENLCD_ENBKL

INT

Slika A.5: Konektor za plocicu s napajanjem

49

Page 54: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

TPS

6103

0PW

PG

4

GN

D

+5V

V+

74LV

C1G

125D

BV

1M

GN

D

6.8u

100n

1u10

u

GN

DG

ND

GN

D

V+

10u

1u

GN

D

100n

1M

V+

220u

GN

D

VB

AT

6

EN

9

SY

NC

8

SW

_21

SW

2

FB12

LBI

7

NC

16

EP

AD

17

GN

D11

PG

ND

_23

PG

ND

_34

PG

ND

5

LBO

10

VO

UT_

213

VO

UT_

314

VO

UT

15

U1

12

4U

5

35 U5P GNDVCC

R21

L2

C13

C14

C15

C17

C18

C19

R31

C29

US

B_5

V_E

NTABLET_ON

+

Slika A.6: Izvor napajanja od 5V

50

Page 55: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

TPS

6150

0PW

P

GN

DG

ND

22u

V+

STP

S2L

40

10u

GN

D

6.8k200k

GN

D

10

10

10

GN

DG

ND

GN

D

47n

GN

D

178k

GN

D

1u47

0n

GN

DG

ND

V+

10u

1u10

0n

GN

D

74LV

C1G

125D

BV

1M

GN

D

100n

1M

V+

VIN

3

EN

4

CO

MP

8

DIM

C6

FRE

Q10

SS

5

AG

ND

7P

GN

D$3

12P

GN

D$2

13P

GN

D$1

14FB

9O

VP

11S

W$2

2S

W$1

1U

3

L1

D3

C4

R11R12

R13

R14

R15

C5

R16

C6

C7

C8

C9

C10

1 2 3 4

X3

1

24

U6

35 U6P GNDVCC

R20

C27

R30

LCD

_EN

BK

L

TABLET_ON

Slika A.7: Napajanje za pozadinsko osvjetljenje

51

Page 56: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

A.2. Noseca plocica

A.2.1. LCD-ekran

DF13A-40DPDP-1.25V

GND GND

15

+3V

3

GND

FPF210X100n

4.7u

GNDGND

15

+3V

3

VC

CIO

100k P$1

P$3P$5P$7P$9

X6

P$11P$13P$15P$17P$19P$21P$23P$25P$27P$29P$31P$33P$35P$37P$39

P$2P$4P$6P$8P$10P$12P$14P$16P$18P$20P$22P$24P$26P$28P$30P$32P$34P$36P$38P$40

FB12

2 4

VIN 1

ON 3GN

D2

FLAGB4

VOUT5U10

C17C18

FB18

R66

TXC-TXC+

TXD0-

TXD1-

TXD2-

TXD3-

TXD0+

TXD2+

TXD1+

TXD3+

I2C_SCL_3.3I2C_SDA_3.3

LCD_PWR

LCD_ONLCD_ON

LIGHT_INT

IO

Slika A.8: Prikljucak za LCD ekran

TSC2046PW

100k

GNDGND

VC

CIO

10k

VC

CIO

+3V

3

10k

VC

CIO

+3V

3

VC

CIO

100n 100n

GND GND

300

300

300

300

VC

CIN

T

VBAT7

VCC1

X+2

X-4

Y+3

Y-5

PENIRQ11

BUSY13 GND 6

DOUT 12DIN 14CS 15

DCLK 16

VREF 9

AUX 8IOVDD 10

U9

R21

R22

R23

1234

JP1

C35 C36

FB25

FB26

FB27

FB28

SPI1_CLK

SPI1_MOSISPI1_MISO

PEN_IRQ

SPI1_CS0

IO IO

IO

IO

INT

Slika A.9: Cip za ocitanje otpornickog panela osjetljivog na dodir

52

Page 57: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

10

1 8

RN2A

2 7

RN2B

3 6

RN2C

4 5

RN2D

1 8

RN3A

2 7

RN3B

3 6

RN3C

4 5

RN3D

1 8

RN4A

2 7

RN4B

3 6

RN4C

4 5

RN4D

1 8

RN5A

2 7

RN5B

3 6

RN5C

4 5

RN5D

1 8

RN6A2 7

RN6B3 6

RN6C4 5

RN6D1 8

RN7A2 7

RN7B3 6

RN7C4 5

RN7D1 8

RN8A2 7

RN8B3 6

RN8C4 5

RN8D

DSS_D21

DSS_D16

DSS_D10

DSS_D19

DSS_D11

DSS_D18

DSS_D4

DSS_D17

DSS_D12

DSS_PCLK

DSS_D5

DSS_D9

DSS_D0

DSS_VSYNC

DSS_D2

DSS_D8

DSS_D3

DSS_D7

DSS_D1

DSS_D6

DSS_D13

DSS_D20

DSS_D14

DSS_HSYNC

DSS_D23

DSS_D22

DSS_D15

DSS_DE

DSS_D15_A

DSS_D22_A

DSS_D23_A

DSS_D14_A

DSS_D13_A

DSS_D1_A

DSS_D3_A

DSS_D2_A

DSS_D0_A

DSS_D5_A

DSS_D12_A

DSS_D4_A

DSS_D11_A

DSS_D10_A

DSS_DE_A

DSS_D21_A

DSS_HSYNC_A

DSS_D20_A

DSS_D6_A

DSS_D8_A

DSS_VSYNC_A

DSS_D9_A

DSS_D17_A

DSS_D18_A

DSS_D19_A

DSS_D16_A

DSS_D7_A

DSS_PCLK_A

Slika A.10: Otpornici za ublaživanje naglih struja

53

Page 58: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

VC

CIN

T

100n

GND

47u

C54 C55

INT

SN75LVDS83BDGGGND

GND

GND

10n

10n

10n

100n

100n

100n

GNDGND

GND GND

GNDGND

+3V

3+3

V3

+3V

3

300

300

300

VCC9

PLLVCC34

LVDSVCC44

D051

D152

D254

D355

D456

D52

D63

D74

D86

D97

D108

D1110

D1211

D1312

D1414

D1515

D1616

D1718

D1819

D1920

D2022

D2123

D2224

D2325

D2427

D2528

D2630

D2750

CLKSEL17

CLKIN31

~SHTDN32

GND_213

GND_335

GND_429

GND_543

GND_621

GND_736

GND_853

GND_95

GND_1049

GND33

U1

C1

C2

C3

C4

C5

C6

FB6

FB7

FB8

LCD_ON

DSS_D15_A

DSS_D22_A

DSS_D23_A

DSS_D14_ADSS_D13_A

DSS_D1_ADSS_D3_A

DSS_D2_ADSS_D0_A

DSS_D5_A

DSS_D12_A

DSS_D4_A

DSS_D11_ADSS_D10_A

DSS_DE_A

DSS_D21_A

DSS_HSYNC_A

DSS_D20_A

DSS_D6_A

DSS_D8_A

DSS_VSYNC_A

DSS_D9_A

DSS_D17_A

DSS_D18_ADSS_D19_A

DSS_D16_A

DSS_D7_A

DSS_PCLK_A

VC

CIO

GND

35

U15P

GN

DV

CC

35

U14P

GN

DV

CC 5

2

U20P

IO

VC

CIO

100n

GND

100n

GND

CLKOUTM 40

CLKOUTP 39

Y0M 48

Y1M 46

Y2M 42

Y3M 38

Y0P 47

Y2P 41

Y1P 45

Y3P 37

IOVCC_2 1

IOVCC 26C43 C44

TXC-TXC+

TXD0-TXD1-TXD2-TXD3-

TXD0+TXD2+TXD1+TXD3+

IO

Slika A.11: LVDS pretvornik

54

Page 59: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

A.2.2. Audio

300

GND

47p220p1.

69k

499

10n

10n

1251RM-08

GND

+3V

3

100n

GND

+3V

374LVC2G07DCK

100n

VC

CIO

GND

100k

+3V

3

FB16

C19

C20R

36

R37

C21

C22

12345678

X9

C48

1 6

U20A

C49

R65

AUDIO_LAUDIO_R

MIC_M

MIC_P

MIC_BIAS

MIC_BIAS_G

SPK_MUTE_3.3SPK_MUTE

IO

Slika A.12: Prikljucak za zvucnike i mikrofon

TS331ILT

100k

VC

CIO

+3V

3

GND

10M

1M

+3V

3

GND

100n

GND

1u

GND

3

14U17

52

R45

R47

R48

C28 C29

EAR_PLUGEDEAR_SENSE

IO

Slika A.13: Sklop za otkrivanje prisustva slušalica (loš)

55

Page 60: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

JAC

K-4

PO

L

GN

D

15

15330

330

100u 100u

GN

D

1u

GN

D

1u 1u

20k

20k

20k

20k

TPA

6111

A2D

GN

330

100n

22u

+3V3

GN

DG

ND

100k

49.9

k

+3V3

100k

74LV

C2G

07D

CK

12

X4

4A

3

4B

FB1

FB9

FB10

FB11

C8 C9

C23

C24 C25

R40

R41

R42

R43

VO

11

IN1-

2

BY

PA

SS

3

GN

D4

SH

UTD

OW

N5

IN2-

6

VO

27

VC

C8

U16

FB17

C26

C27

R44

R46

R64

34

U20

B

CO

MP

OS

ITE

AU

DIO

_L

AU

DIO

_R

EA

R_M

UTE

_3.3

EA

R_S

EN

SE

EA

R_M

UTE

+ +

Slika A.14: Pojacalo za slušalice

56

Page 61: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

A.2.3. Mreža

VC

CIO

100n

GND

C42

IO

+3V

3

100n

GND

C41

HC_05

GND GND

+3V

3

GND+3

V3

VC

CIO

GND

TXB0106PW

GND

TX1

RX2

CTS3

RTS4

PCM_CLK5

PCM_OUT6

PCM_IN7

PCN_SYNC8

AIO09

AIO110

RST11

3V312

GND13 NC

14

VB

US

D-

15

CS

B16

MO

SI

17

MIS

O18

CLK

19

VB

US

D+

20

GN

D1

21

GND2 22PIO0 23PIO1 24PIO2 25PIO3 26PIO4 27PIO5 28PIO6 29PIO7 30PIO8 31PIO9 32

PIO10 33PIO11 34

U3VCCA2

A11

A23

A34

A45

A56

A67

OE8 GND 9

B6 10B5 11B4 12B3 13B2 14B1 16

VCCB 15U4

TP8

TP9

TP10

TP11

TP12

TP13TP14

BT_CTSBT_RTS

BT_RXBT_TX

BT_RX_3.3VBT_TX_3.3VBT_RTS_3.3VBT_CTS_3.3V

UART_RX_BUFUART_TX_BUF

UART_RXUART_TX

BT_

CS

BT_

MO

SI

BT_

MIS

OB

T_S

CK

IO

Slika A.15: Bluetooth modul s pretvaracem naponskih razina

TS331ILT

GND

VC

CIO

10M

1M

VC

CIO

GND

10n 100n

GND GND

100k

VC

CIO

10k

VA

RIS

TOR

CN

0402

GND

100k

VC

CIO

3

14U19

52

R53

R54

C30 C31

R55

R56

R57

R50

CABLE_DETECTCABLE_SENSE

CABLE_SENSE_A

IO IO IOIO

Slika A.16: Sklop za otkrivanje prisustva podatkovnog kabla

57

Page 62: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

ST60-10P

15

GND

VC

CIO

100k

VA

RIS

TOR

CN

0402

VA

RIS

TOR

CN

0402

GND GND+5

V

15100n

GND120

120

120

120

65432

789

10

1

SHLD1SHLD2

X5

FB13

R49

R51

R52

FB20

C34

TP1

FB21

FB22

FB23

FB24

UART_RX_BUF

UART_TX_BUF

ETH_RXP_AETH_RXN_AETH_TXP_AETH_TXN_A

CABLE_SENSE

CABLE_UNUSEDUART_RX_BUF_AUART_TX_BUF_ACABLE_SENSE_B

CABLE_UNUSED_A

IO

Slika A.17: Podatkovni prikljucak

5453-37

10

+3V

3

GND

1n

RD+1

CRD2

RD-3

TD+6

CTD7

TD-8 TX- 9CTX 10TX+ 11

RX- 14CRX 15RX+ 16

T1

R59

C32

ETH_TXP

ETH_TXN

ETH_RXN

ETH_RXP ETH_RXP_A

ETH_RXN_A

ETH_TXP_A

ETH_TXN_A

Slika A.18: Transformator za ethernet

58

Page 63: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

A.2.4. Napajanje

GND+5

V

1251RM-15

VC

CIN

T

123456789101112131415

X8

OTG_CHRG_5V

LCD_ENBKL_A

CHRG_STAT1_ACHRG_STAT2_APOWEROFF_A

USB_5V_EN_AFAST_CHRG_A

KPD_C0KPD_C1KPD_R0KPD_R1

INT

Slika A.19: Prikljucak za napajanje

100n

GND

10u

VC

CIN

T

C39C40

INT

LTC3536MSE

GNDGND

+3V

3

0 X0

GND

47p

6.49

k 1M

49.9

k

220p

221k

GND

22u

GND

4.7u

100n

GND

VC

CIN

T

VC

CIN

T

VC

CIN

T

SW14

VIN9

MODE/SYNC3

SHDN10

RT1

SGND2 PGND 5

VIN8

VC 12FB 11

VOUT 7

SW2 6U12

R26

R27

R28

C11

R29

R30

R31

C12

R32

C13

L1

C50

TP17

TP18

INT INT INT

Slika A.20: Izvor napajanja od 3.3V

59

Page 64: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

A.2.5. Memorijske kartice

GND

VPP

VC

CIO

100k

10k

10k

10k

10k

10k

10k

33

10k

GND

100n

GND

SH

LD1

S1

SH

LD2

S2

SH

LD3

S3

SH

LD4

S4

DAT18

DAT07

VSS6

CLK5

VDD4

CMD3

CD/DAT32

DAT21

CDCD

CD_GNDCD_GND

X11

R1

R2

R3

R7

R8

R9

R10

R19

R20

C47

MMC1_CD

MMC1_CLK0

MMC1_CMD

MMC1_DAT0MMC1_DAT1

MMC1_DAT2MMC1_DAT3

MMC1_WP

IO

Slika A.21: Memorijska kartica MMC spojena na uobicajenu sabirnicu

VC

CIO

100n

GND

C38

IO

+3V

3

100n

GND

C37

GNDGND

+3V

3

ADG3304BRUZ 100k+3V

3

VC

CIO

+3V

3

GND

10

10

10

10

100k

GND

100n

GND

DAT21

CD/DAT32

CMD3

VDD4

CLK5

VSS6

DAT07

DAT18

SH

LD1

S1

SH

LD2

S2

SH

LD3

S3

SH

LD4

S4

X10

VCCA1

VCCY14

EN8

NC_26

NC9

GND7

A1 2

A2 3

A3 4

A4 5

Y1 13

Y2 12

Y3 11

Y4 10

U8

R24

1 8

RN1A

2 7

RN1B

3 6

RN1C

4 5

RN1D

R62

C52SPI3_CLK

SPI3_MOSI

SPI3_MISO

SPI3_CS0

SPI3_CS0_3.3SPI3_MOSI_3.3

SPI3_CLK_3.3

SPI3_MISO_3.3

IO

Slika A.22: Memorijska kartica MMC spojena na sabirnicu SPI

60

Page 65: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

A.2.6. USB

VC

CIO

100n

GND

C51

IO

SI4463CDY-T1-GE3

74LVC1G07DCK

100k

100k

VC

CIO

S1

S2

S3

G4

D 8

D 6

D 7

D 5

U13

2 4U14

R38

R39

OTG_VBUS OTG_CHRG_5V

OTG_CHRG_E

IO

Slika A.23: Prosljedivanje izvora napajanja iz USB-a

15

GND

15

4.7u

GND

12345

FB14

FB15

C14

OTG_IDOTG_DPOTG_DMOTG_VBUS

Slika A.24: USB OTG

61

Page 66: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

+3V3

100n

GN

D

100n

C57

C58

gree

n

+3V3

100

LED

1

R58

ETH

_LD

_LIN

K

TUS

B20

46B

VF

+3V3 GN

D

10k

100n

GN

D

+3V3

+3V3

1.5k

GN

D

TPS

20X

XB

DB

VG

ND10

0n

+5V

GN

D

27 27 27 27

15k

15k

15k

15k

PN

8752

0-S

PN

8752

0-S

15 15 15 15

SN75240P

SN75240PSN75240P

SN75240P GN

DG

ND

GN

D6M

Hz

100n

GN

D

X

15k

15k

15k

15k

GN

D

1.5k

+3V3

VC

C_2

25

VC

C3

~RE

SE

T4

~OV

RC

UR

110

~OV

RC

UR

214

~OV

RC

UR

318

~OV

RC

UR

422

TSTM

OD

E31

BU

SP

WR

8

~EX

TME

M26

XTA

L130

TSTP

LL/4

8MC

LK27

EE

DA

TA/G

AN

GE

D6

GN

D_2

7

GN

D28

SU

SP

ND

32

EE

CLK

5

XTA

L229

~PW

RO

N1

9

~PW

RO

N2

13

~PW

RO

N3

17

~PW

RO

N4

21

DP

01

DP

112

DP

216

DP

320

DP

424

DM

02

DM

111

DM

215

DM

319

DM

423

U5

R5

C7

R6

OU

T1

GN

D2

OC

3E

N4

IN5

U6

C10

R11

R12

R13

R14

R15

R16

R17

R18

1 2 3 4

X2

1 2 3 4

X3

FB2

FB3

FB4

FB5

GND 7X8

U7A

GND 5X6

U7B

GND 1X2

U7C

GND 3X4

U7D

Y1

C33

TP7

R63

R72

R73

R74

R75

R76

US

B_D

M

US

B_D

PH

OS

T_D

M1

HO

ST_

DP

1

HO

ST_

DM

2H

OS

T_D

P2

US

B_S

US

PE

ND

HO

ST_

OC

_A

USB USB

Slika A.25: USB hub

62

Page 67: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

A.2.7. Razno

MMA8450QR1GND

VC

CIO

4.7u

GND

100n

100k

GND

VDD_21

VDD14

EN8

SDA6

SCL4

SA07

NC_22

NC_33

NC_416

NC15

GND_213

GND_35

GND_412

GND10

INT1 11

INT2 9

U2

C15C16

R71

SDA2SCL2

ACC_EN

ACC_INT1ACC_INT2

IO

Slika A.26: Akcelerometar

VC

CIO

100n

GND

C46

IO

+3V

3

100n

GND

C45

PCA9306DCT

VC

CIO

+3V

3

GND

0 10k

10k

+3V

3

+3V

3VC

CIO

VREF12 VREF2 7

GND 1

SCL13

SDA14SCL2 6

SDA2 5

EN8

U11

R25

R60

R61

TP15TP16

SDA2SCL2 I2C_SCL_3.3

I2C_SDA_3.3

IOIO

Slika A.27: Pretvarac naponskih razina za sabirnicu I2C

63

Page 68: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

VC

CIO

100n

GND

C53

IO

SN74LVC07APW

VC

CIO

GND

100k

100k

VC

CIO

VC

CIO

100k

GND

1M

GND

1u

GND

27

VCC14

1A1

2A3

3A5

4A9

5A11

6A13

GND7

1Y 2

2Y 4

3Y 6

4Y 8

5Y 10

6Y 12

U18 R67

R68

R69

R70

C56

R77

LCD_ENBKL

LCD_ENBKL_A

CHRG_STAT1_ACHRG_STAT2_APOWEROFF

POWEROFF_ACHRG_STAT2CHRG_STAT1

USB_5V_EN_AFAST_CHRG_A

USB_5V_ENFAST_CHRG

IO

IO IO

Slika A.28: Pretvarac naponskih razina

A.3. Plocica sa svjetlecom RGB-diodom

GND

+3V

3

SCLSDAINT

+3V

3

GND

1u

C1

Slika A.29: Prikljucak

ATTINY45

+3V

3

GND

SM

LP36

RG

B1W

SM

LP36

RG

B1W

SM

LP36

RG

B1W

22 133

33

GND GND GND

10k

+3V

3

VCC8

PB1(MISO) 6

PB5(NRES) 1GND4

PB0(MOSI) 5

PB2(SCK/ADC1) 7

PB3(ADC3) 2

PB4(ADC2) 3

U2

LD1G

LD1R

LD1B

R1

R2

R3

R4

SCL

SDALED_B

LED_RLED_G

Slika A.30: Mikrokontroler s RGB-diodom

64

Page 69: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

APDS-9303

+3V

3

GND

VDD 1

GND2

SEL3

SDA5SCL4

INT 6

U1

SCLSDA

INT

Slika A.31: Senzor intenziteta svjetlosti

A.4. Pojacalo sa zvucnikom

GND

VD

D

GND

390n

390n

1u

0X

100

GND

330

330

74AHC1G04DBV

0

GND

VD

D

GND

100n

AG

ND

SHDN1

IN-2

IN+4

GAIN5

V01 6

GND$2 7GND$18

VDD 9

V02 10

U1

LM4667MM

+-

C1

C2

C3

R2

FB1

FB2

FB3

2 4IC1

35

IC1P

GN

DV

CC

R1

C4

P1

P2

P3

P4

P5

Slika A.32: Pojacalo sa zvucnikom

65

Page 70: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

A.5. Plocica s tipkama

TAC_SWITCH-PTH TAC_SWITCH-PTH

TAC_SWITCH-PTH TAC_SWITCH-PTH

1 342

S1

1 342

S2

1 342

S3

1 342

S4

P1P2P3P4

R0

C0C1

R1

Slika A.33: Plocica s tipkama

66

Page 71: Izgradnja rucnog raˇ cunalaˇ - bib.irb.hr · programska podrška s prikazom pojedinih programskih rješenja. U dodatku A se na- U dodatku A se na- laze sheme sklopova, a u dodatku

Dodatak BNacrt za pleksi-staklo

67