projektovanje i realizacija akcelerometraes.elfak.ni.ac.rs/seminar works rts/projektovanje i... ·...
TRANSCRIPT
Elektronski fakultet u Nišu Katedra za elektroniku Sistemi za akviziciju podataka Sistemi za rad u realnom vremenu
Projektovanje i realizacija akcelerometra
student: Vukašinović Ivan br. indeksa: 10710 smer: Elektronika
z
xya
Sadržaj
Sadržaj
1. Projektni zadatak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2. Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3. Blok šema uređaja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4. Komponente uređaja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.1. Akcelerometar – LIS3L02AS4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.1.1. Karakteristike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.1.2. Opis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.1.3. Mehaničke karakteristike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.1.4. Električne karakteristike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.1.5. Radna ograničenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.1.6. Terminologija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.1.7. Funkcionalnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.1.8. Preporuke za izradu aplikacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.1.9. Tipične karakteristike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.1.10. Kućište komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2. Mikrokontroler – C8051F310 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2.1. Karakteristike . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 17 4.2.2. Konfiguracija pinova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 18 4.2.3. Električne karakteristike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.4. A/D konvertor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.2.5. Električne karakteristike A/D konvertora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.2.6. Radna ograničenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.2.7. C2 (ISP) interfejs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.2.8. Kučište komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3. RS-232 interfejs ka računaru – MAX3222 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3.1. Karakteristike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3.2. Opis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3.3. Konfiguracija pinova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3.4. Primer operativnog kola .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.3.5. Električne karakteristike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.3.6. Vremenske karakteristike .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.3.7. Radna ograničenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.3.8. Kućište komponente . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.4. LC displej 2x16 karaktera – HD44780 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.4.1. Konfiguracija pinova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.4.2. Električne karakteristike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.4.3. Radna ograničenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.4.4. Tabela karaktera . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.4.5. Algoritam inicijalizacije displeja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.5. Napajanje – LM7805 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.4.1. Karakteristike . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.4.2. Opis . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.4.3. Konfiguracija pinova i opis operativnog kola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.4.4. Radna ograničenja . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.4.5. Električne karakteristike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.3.6. Kučište komponente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.6. Napajanje – TS2937 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.6.1. Karakteristike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.6.2. Opis . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.6.3. Konfiguracija pinova i opis operativnog kola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.6.4. Električne i temperaturne karakteristike . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.6.5. Kućište komponente . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5. Električna šema uređaja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 6. 3D izgled štampane ploče sa komponentama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7. Izgled štampane pločice i spisak komponenata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
8. Kod inicijalizacije kontrolera i LC displeja generisan pomoću Configuration Wizard-a i Keil uVision-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
9. Korišćena literatura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
z
xya
Projektni zadatak
- 1 -
1. Projektni zadatak
Projektovanje i realizacija akcelerometra
Sistem realizovati koristeći mikrokontroler C8051F310 i MEMS inercijalni senzor LIS3L02AS4. U sistemu predvideti konektor za programiranje i on-line debagiranje pomoću C2 interfejsa, tzv. ISP programiranje, kao i RS232 konektor za serijsku vezu sa PC-em. Blok napajanja treba da sadrži linearni naponski regulator za 3.3V (predlog TS2937). Interfejs prema korisniku se sastoji od 2 tastera i LCD displeja (Hittachi HD 44780 2x16). Napomena: S obzirom da je napon potreban za napajanje IC 3V obratiti pažnju na level shift-er za RS232 vezu predlog je MAX3222 Zadaci: 1. Realizovati električnu šemu kompletnog sistema kao i potrebne biblioteke za IC koja ne postoje u biblioteci 2. Realizovati PCB sistema kao i potrebne biblioteke komponenti 3. Koristeći pomoćni alat Configuration Wizard Config2 prema potrebama aplikacije izgenerisati firmware i dati komentare za takvu realizaciju 4. Dati algoritam i firmware za inicijalizaciju displeja U radu koristiti softverski alat Protel DXP 2004 i Keil uVision
z
xya
Uvod
- 2 -
2. Uvod
Šta je akcelerometar
Akcelerometar je elektromehanički uređaj koji meri sile ubrzanja koje mogu biti: - statičke – gravitaciona sila - dinamičke – izazvane kretanjem ili vibriranjem sistema čije se ubrzanje meri.
Primena akcelerometra Akcelerometri se koriste u brojnim mašinama i specijalizovanoj elektronskoj opremi. Neki od primera su: - Robotika ( pozicioniranje) - Avioni - Automobili (detekcija sudara i aktiviranje vazdušnih jastuka, alarmi za automobile) - Kontrola ljudskih pokreta (detekcija pada kod starijih osoba i osoba sa invaliditetom) - Računari (detekcija slobodnog pada zbog zaštite podataka) - Računarske igre (za ulazne uređaje kod virtuelnih igara)
Kako se koriste
Merenjem količine statičkog ubrzanja – gravitacione sile, možemo naći ugao pod kojim predmet stoji u odnosu na ravan – zemlju. Merenjem količine dinamičkog ubrzanja možemo analizirati način na koji se predmet pomera, da li ide uzbrdo ili nizbrdo, horizontalno ili vertikalno.
Način realizacije Postoji više različitih načina realizacije akcelerometra: Piezootporni efekat – sadrže piezo otpornike koji se usled ubrzanja deformišu i menjaju svoju otpornost. Piezoelektrični efekat - sadrže mikroskopsku strukturu kristala koje pod uticajem sila ubrzanja bivaju napregnute što prouzroukuje generisanje napona. Merenje promene kapacitivnosti – dve mikrostrukture jedna uz drugu imaju određenu kapacitivnost između sebe, ukoliko sile ubrzanja pomere jednu od struktura dolazi do promene kapacitivnosti. Konverzijom kapacitivnosti u napon dobijamo akcelerometar. Holov efekat – usled kretanja (ubrzanja) menja se električno polje što biva konvertovano u ele- ktrični signal (napon ili struju). Magnetno-otporni – promena otpornosti materijala usled prisustva magnetnog polja. Transfer toplote – promena položaja ugrejane mase (centra akcelerometra) praćena merenjem temperature duž osa osetljivosti (x,y,z).
MEMS akcelerometri
MEMS (mikro-elektro-mehanički-sistem) - je integracija mehaničkih elemenata, senzora, aktuatora i elektronike na silikonskoj podlozi (supstratu) upotrebom mikrofabrikacione tehnologije. Dok se klasične elektronske komponente (tranzistori, kondenzatori, otpornici) izrađuju tehnologijom integrisanih kola, (CMOS, Bipolarna, BICMOS tehnologija), mikromehaničke komponente se izrađuju sličnim procesom kojim se selektivno odstranjuju (nagrizaju) delovi silikonskog supstrata ili dodaju novi strukturni slojevi da bi se formirale mehaničke ili elektromehaničke komponente.
z
xya
Uvod
- 3 -
Primeri MEMS akcelerometra: 2-osni akcelerometar na principu transfera toplote
Sadrži komoru sa gasom sa grejnim elementom u sredini i četiri temperaturna senzora na svojim ivicama. Topao vazduh ide gore a hladan dole, što važi i za gasove. Ukoliko akcelerometar miruje, jedino što deluje na njega je sila gravitacije, i tada je topli gas raspoređen tako da sva četiri temperaturna senzora mere istu temperaturu. U slučaju da akcelerometar postavimo pod određenim uglom, topli "džep" sa gasom se naginje ka jednom ili možda dva temperaturna senzora pa tada postoji razlika u temperaturama koju mere senzori na osnovu koje se može utvrditi na koju se stranu uređaj okrenuo.
X
YX
Y
Slika 2.1. Primer sa 2-osnim MEMS akcelerometrom
3-osni akcelerometar na principu piezootpornika
3-osni mems akcelerometar u svom centru ima pokretni deo (centar mase) koji je spojen sa četiri dopirana piezootporna materijala. Kada je izložen ubrzanju u bilo kom smeru, pomeranje centra mase izaziva deformisanje sva četiri piezootporna materijala što prouzrokuje promenu njihove otpornosti čijim se očitavanjem detektuje kretanje (ubrzanje, usporenje) u određenom smeru.
Način detekcije kretanja-ubrzanja
Jačina naprezanja
Piezo otpornik
Ubr ž x (y)-osezanje du Ubr ž z-osezanje du
SpojeviCentar mase
Fx FyFz
Slika 2.2. Primer sa 3-osnim MEMS akcelerometrom
z
xya
Uvod
- 4 -
Bitne stavke prilikom odabira akcelerometra:
1. Analogni ili digitalni izlaz – što zavisi od hardvera na koji ga povezujemo.
Analogni akcelerometri na svojim izlazima daju kontinualan napon proporcionalan merenom ubrzanju. Digitalni akcelerometri uglavnom koriste pulsno širinsku modulaciju (PWM) za njihove izlaze što znači da ćemo na izlazu akcelerometra imati kvadratni napon određene frekvencije i vreme trajanja visokog nivoa napona na izlazu proporcionalno je veličini ubrzanja.
2. Broj osa osetljivosti – za većinu projekata 2 ose su dovoljne, ali ukoliko želimo 3D pozicioniranje potreban nam je 3-osni akcelerometar ili dva 2-osna postavljena pod pravim uglom jedan u odnosu na drugi.
3. Maksimalan opseg merenja ubrzanja – ukoliko merimo nagib koristeći samo silu zemljine teže, dovoljan nam
je akcelerometar od ±1.5g. Ako merimo samo kretanje automobila, aviona ili robota, ±2g bi trebalo da bude dovoljno. Za projekte koji doživljavaju iznenadna startovanja i zaustavljanja potreban nam je akcelerometar od ±5g i više.
4. Osetljivost – generalno, što veća osetljivost to je bolje što znači za malu promenu u ubrzanju na izlazu ćemo
dobiti veću promenu signala. Kako je lakše izmeriti veće promene signala sledi da dobijamo tačnija očitavanja. 5. Propusni opseg – što znači, koliko puta u sekundi možemo da imamo tačna očitavanja sa akcelerometra. Za
sporo pokretljive aplikacije, kao što je merenje nagiba, propusni opseg od 50Hz bi bio dovoljan.Ukoliko želimo da merimo vibracije ili veoma pokretljivu mašinu potreban nam je propusni opseg od nekoliko KHz.
Akcelerometri mere silu ubrzanja u jedinicama “g“. Jedan “g“ je jačina zemljine teže tj. g=9.81m/s². Neka od referentnih merenja za veličinu g.
1g Jačina (sila) zemljine teže koja deluje na objekat.
0 – 2g Opseg jačine ubrzanja koju oseća čovek pri hodanju. 10 –50g Opseg jačine ubrzanja (usporenja) koju oseća automobil pri saobraćajnoj nesreći.
100-2000g Opseg jačine ubrzanja koju podnosi laptop prilikom pada na beton sa visine od 1m. 15000g Opseg jačine ubrzanja koju ima metak pri ispaljivanju iz oružja.
Tabela 2.1
z
xya
Blok šema uređaja
- 5 -
3. Blok šema uređaja
LCD 2x16 karaktera
Mikrokontrolersa
A/Dkonvertorom
Akcelerometar
RS-232interfejs
C2 (ISP)interfejs
programiranje/debagiranje/
testiranje
Start/Stop Testiranje
Slika 3.1. Blok šema uređaja
4. Komponente uređaja
- Akcelerometar - LIS3L02AS4 - Mikrokontroler sa A/D konvertorom - C8051F310 - RS-232 interfejs ka računaru - MAX3222 - LC displej 2x16 karaktera – HD44780 - Napajanje – LM7805 i TS2937
z
xya
Akcelerometar – LIS3L02AS4
- 6 -
4.1. Akcelerometar
LIS3L02AS4 MEMS INERCIJALNI SENZOR
3-Osni - ±2g/±6g LINEARNI AKCELEROMETAR 4.1.1. Karakteristike NAPAJANJE OD 2.4V DO 3.6V NISKA POTROŠNJA ODABIR PUNE SKALE ±2g/±6g REZOLUCIJA 0.5mg PRI PROPUSNOM OPSEGU OD PREKO 100Hz UGRAĐENO SAMOTESTIRANJE I ISKLJUČIVANJE IZLAZNI NAPON, OFSET I OSETLJIVOST SRAZMERNI NAPONU NAPAJANJA OTPORAN NA JAKE POTRESE NEMA OLOVA I EKOPAK KOMPATIBILAN
4.1.2. Opis LIS3L02AS4 je 3-osni akcelerometar niske potrošnje koji sadrži senzor (osetljivi element) i ima interfejs integrisanog kola (IC interfejs), koji uzima informacije sa senzora i obezbeđuje analogni signal na svom izlazu. Senzor, koji detektuje ubrzanje, napravljen je specijalnim postupkom razvijenim od strane ST-a (STMicroelectonics) za proizvodnju inercijalnih senzora i aktuatora na silicijumu (Si). IC interfejs urađen je korišćenjem standardnog CMOS procesa koji omogućava visok nivo integracije za projektovanje odgovarajućeg kola sa karakteristikama koje odgovaraju karakteristikama senzora. LIS3L02AS4 ima korisnički odabirljive pune skale od ±2g ili ±6g i može meriti ubrzanja (usporenja) pri propusnom opsegu od 1.5KHz po svim osama (X, Y, Z). Propusni opseg može biti redukovan korišćenjem eksternih kapacitivnosti. Mogućnost samotestiranja omogućuje proveru mehaničke i električne putanje signala senzora. LIS3L02AS4 dostupan je u SMD kućištu i temperaturni opseg u kome može raditi je od -40°C do + 85°C. Pripada porodici proizvoda namenjenih raznim aplikacijama: - Mobilni terminali - Ulazni uređaji za računarske igre - Detekcija slobodnog pada za zaštitu podataka ( u prenosnim računarima) - Sistemi protiv krađe - Robotika
SO24
Slika 4.1.1. Kućište Tabela 4.1.1. Kodovi za naručivanje
Broj komponente Kućište Isporuka E-LIS3L02AS4 SO24 tuba E-LIS3L02AS4TR SO24 lenta i kotur
z
xya
Akcelerometar – LIS3L02AS4
- 7 -
SAMO-TESTIRANJE
KOLO ZA PODEŠAVANJE CLOCK
POJAČAVAČ
REFERENTNAVELIČINA
MUX DEMUX
X+Y+Z+
X-Y-Z-
S/H
S/H
S/H
Routx
Routy
Routz
Voutx
Vouty
Voutz
Slika 4.1.2. Blok dijagram
OSE OSETLJIVOSTI
RezervisanRezervisan
RezervisanRezervisanRezervisan
FS
NCNCNCNCNCNC
NCNCNC
NCNC
GNDVdd
Vouty
STVoutx
PDVoutz
1
2345
6
78
910
1112 13
24232221
20191817
1615
14
1
13
X
Z
Y
Slika 4.1.3. Konfiguracija pinova (pogled odozgo)
Tabela 4.1.2. Opis pinova
Broj pina Ime pina Funkcija 1 do 5 NC Nepovezan u čipu
6 GND 0V - masa 7 Vdd Napajanje 8 Vouty Izlazni napon za y-osu 9 ST Samotestiranje (Logička 0: normalni režim rada; Logička 1: samotestiranje)
10 Voutx Izlazni napon za x-osu 11 PD Isključivanje (Logička 0: normalni režim rada; Logička 1: isključivanje) 12 Voutz Izlazni napon za z-osu 13 FS Odabir pune skale (Logička 0:puna skala od 2g; Logička 1: puna skala od 6g)
14 - 15 Rezervisan Ostaviti nepovezan ili povezati na napon napajanja Vdd 16 Rezervisan Povezati sa Vdd ili sa masom (GND) 17 Rezervisan Ostaviti nepovezan ili povezati na napon napajanja Vdd 18 Rezervisan Ostaviti nepovezan ili povezati na masu (GND)
19 do 24 NC Nepovezan u čipu
z
xya
Akcelerometar – LIS3L02AS4
- 8 -
4.1.3. Mehaničke karakteristike1 (Temperaturni opseg od -40°C do + 85°C). Svi parametri su definisani pri Vdd=3.3V i T=25°C, ukoliko nije drugačije naglašeno. Simbol Parametar Testni uslovi Min Nom2 Maks Jedinica
FS pin povezan na masu (GND) ±1.8 ±2.0 g
Ar Opseg ubrzanja3 FS pin povezan na Vdd ±5.4 ±6.0 g
Puna skala = 2g Vdd/5-10% Vdd/5 Vdd/5+10% V/g So Osetljivost4 Puna skala = 6g Vdd/15-10% Vdd/15 Vdd/15+10% V/g
SoDr Promena osetljivosti sa temperaturom Delta od +25°C ±0.01 %/°C
Voff Nulti-g nivo4 T=25°C Vdd/2-10% Vdd/2 Vdd/2+10% V
OffDr Promena nultog-g nivoa sa temperaturom Delta od +25°C ±1.1 mg/°C
Najbolje uklapanje prave linije Puna skala = 2g
X,Y osa ±0.3 ±1.5 %FS
NL Nelinearnost5 Najbolje uklapanje prave linije
Puna skala = 2g Z osa ±0.6 ±2 %FS
CrossAx Ukrštene ose6 ±2 ±4 %
An Gustina šuma ubrzanja Vdd = 3.3V; Puna skala = 2g 50 μg/ Hz
T=25°C, Vdd = 3.3V Puna skala = 2g, X osa -20 -50 -100 mV
T=25°C, Vdd = 3.3V Puna skala = 2g, Y osa 20 50 100 mV Vt
Promena izlaznog napona pri
samotestiranju7,8,9 T=25°C, Vdd = 3.3V Puna skala = 2g, Z osa 20 50 100 mV
Fres Rezonantna frekvencija senzora10 Za sve ose 1.5 kHz
Top Temperaturni opseg -40 +85 °C Wh Težina proizvoda 0.6 gram
Tabela 4.1.3. Mehaničke karakteristike
1 Proizvod je fabrički kalibrisan pri 3.3V. Uređaj može biti napajan od 2.4V do 3.6V. Voff, So i Vt parametri će varirati u zavisnosti od napona napajanja. 2 Tipične specifikacije nisu zagarantovane. 3 Potvrđeno testovima i merenjima početnog ofseta i osetljivosti. 4 Nulti-g nivo i osetljivost u suštini su srazmerni naponu napajanja. 5 Garantovano projektovanjem čipa. 6 Doprinos merenju izlaznog signala pri nagibu/ubrzanju duž bilo koje upravne (normalne) ose. 7 “ Promena izlaznog napona pri samotestiranju” definisano je kao - Logic0)(VstLogic1)(Vst VoutVout ==
8 “ Promena izlaznog napona pri samotestiranju” menja se sa kubom napona napajanja ( 3Vout )
9 Kada je puna skala nameštena na ±6g, “ promena izlaznog napona pri samotestiranju” je jedna trećina definisane vrednosti. 10 Minimalna rezonantna frekvencija je Fres=1.5KHz. Propusni opseg senzora = 1/(2*π*110KΩ*Cload) gde je Cload>1nF.
z
xya
Akcelerometar – LIS3L02AS4
- 9 -
4.1.4. Električne karakteristike1 (Temperaturni opseg od -40°C do + 85°C). Svi parametri su definisani pri Vdd=3.3V i T=25°C, ukoliko nije drugačije naglašeno. Simbol Parametar Testni uslovi Min Nom2 Maks Jedinica
Vdd Napon napajanja 2.4 3.3 3.6 V
Idd Struja napajanja srednja vrednost
PD pin povezan na masu (GND)
0.85 1.5 mA
IddPdn Struja napajanja u režimu rada isključen
nominalna vrednost PD pin povezan na Vdd 2 5 μA
nivo logičke 0 0 0.8 V Vst Ulaz samotestiranja
nivo logičke 1 2.2 Vdd V Rout Izlazna impedansa 80 110 140 KΩ Cload Kapacitivno opterećenje3 320 pF
Ton Vreme uključivanja pri izlasku iz moda isključivanja Cload in μF 550*Cload+0.3 ms
Tabela 4.1.4. Električne karakteristike
4.1.5. Radna ograničenja Promene veće od dole navedenih nazvani “radna ograničenja” mogu izazvati trajna oštećenja na komponenti. Funkcionalnost komponente pod ovakvim uslovima se ne podrazumeva. Izlaganje komponente do maksimuma radnih uslova na duže vremenske intervale može uticati na pouzdanost rada komponente.
Simbol Kategorija Maks. vrednost Jedinica Vdd Napajanje -0.3 do 7 V Vin Ulazni napon na bilo kom kontrolnom pinu (FS, PD, ST) -0.3 do Vdd+0.3 V
3000g u trajanju od 5ms APOW Ubrzanje (bilo koja osa, sa napajanjem Vdd=3.3V) 10000g u trajanju od 1ms 3000g u trajanju od 5ms AUNP Ubrzanje (bilo koja osa, bez napajanja) 10000g u trajanju od 1ms
TSTG Temp. opseg skladištenja -40 do +125 °C 2(HBM) kV
200(MM) V ESD Zaštita od električnog pražnjenja 1500 (CDM) V
Tabela 4.1.5. Radna ograničenja
Ovo je komponenta osetljiva na udarce, nepravilno rukovanje može trajno oštetiti komponentu. Ovo je ESD osetljiva komponenta, nepravilno rukovanje može trajno oštetiti komponentu.
1 Proizvod je fabrički kalibrisan pri 3.3V 2 Tipične specifikacije nisu zagarantovane. 3 Minimalna rezonantna frekvencija je Fres=1.5KHz. Propusni opseg senzora = 1/(2*π*110KΩ*Cload) gde je Cload>1nF.
z
xya
Akcelerometar – LIS3L02AS4
- 10 -
4.1.6. Terminologija Osetljivost
Opisuje pojačanje senzora i može biti određeno primenjivanjem ubrzanja od 1g. Osetljivost senzora možemo odrediti merenjem statičkog ubrzanja tako što ćemo usmeriti odgovarajuću osu (npr. z-osu) ka centru zemlje i očitati vrednost napona na izlazu senzora (Voutz), zatim rotiramo senzor za 180° (usmerimo ka nebu) i ponovo očitamo vrednost napona na izlazu senzora (Voutz) tako primenjujući silu ubrzanja od ±1g. Oduzimanjem veće vrednosti izlaznog napona od manje vrednosti i deljenjem rezultata sa 2 dobijamo osetljivost datog senzora. Ova vrednost se veoma malo menja tokom vremena i sa promenom temperature. Tolerancija osetljivosti opisuje opseg osetljivosti velike grupe senzora. Nulti-g nivo
Opisuje izlazni signal senzora kada sistem miruje (ne postoji kretanje - ubrzanje). Senzor u stanju mirovanja na horizontalnoj površini izmeriće 0g po X osi i 0g po Y osi dok će na Z osi izmeriti +1g. Idealna izlazna vrednost napona je kada je napon napajanja 3.3V, Vdd/2=1650mV. Odstupanje od idealnog 0g nivoa (1650mV u ovom slučaju) se naziva Nulti-g nivo. Odstupanje (ofset) preciznog MEMS senzora je na neki način rezultat naprezanja senzora (komponente) pa se on može malo promeniti posle montiranja na štampanu ploču ili usled izlaganja jakim mehaničkim naprezanjima. Odstupanje se malo menja usled promene temperature. Nulti-g nivo pojedinačnog senzora je veoma stabilan za njegov radni vek. Tolerancija nultog-g nivoa opisuje opseg nultog-g nivoa grupe senzora. Samotestiranje
Samotestiranje omogućava testiranje mehaničkih i električnih delova senzora, omogućavajući seizmičkoj masi da se pomera usled uticaja elektrostatičkih test-sila. Samotestiranje je isključeno kada je ST pin povezan na masu (GND). Kada je ST pin povezan na Vdd primenjuje se pokretačka sila na senzor simulirajući ubrzanje. U tom slučaju izlazi senzora će biti izloženi promeni napona u odnosu na njihove statičke nivoe što je povezano sa odabranom punom skalom i, u zavisnosti od napona napajanja, sa osetljivošću senzora. Kada je ST pin “aktiviran“, izlazi senzora predstavljaju algebarsku sumu signala, nastalih pod uticajem ubrzanja koje deluje na senzor, i elektrostatičkih test-sila. Ako se izlazni signali senzora menjaju u granicama navedenim u tabeli 4.1.3, onda senzor radi ispravno i parametri interfejsa čipa su u definisanim granicama. Izlazna impedansa
Opisuje otpornik unutar izlaza svakog kanala. Ovaj otpornik je deo filtera koji se sastoji od spoljašnjeg kondenzatora od najmanje 320pF i unutrašnjeg otpornika. Usled visoke vrednosti unutrašnjeg otpornika, samo mali, jeftini, spoljni kondenzatori su potrebni za generisanje niske granične frekvencije. Pri radu sa A/D konverzijom važno je koristiti ulazna kola sa visokom ulaznom impedansom da bi se izbegle greške merenja. Obratiti pažnju da minimalne kapacitivnosti formiraju graničnu frekvenciju iznad rezonantne frekvencije senzora. Za ravne frekvencijske odzive, granična frekvencija daleko ispod rezonantne frekvencije se preporučuje. Generalno, najmanji mogući propusni opseg za određenu aplikaciju treba biti izabran da bi se dobili najbolji rezultati. 4.1.7. Funkcionalnost LIS3L02AS4 je analogni tro-osni linearni akcelerometar visokih performansi i niske potrošnje zapakovan u SO24 kućište. Sadrži osetljivi element (senzor) i ima interfejs integrisanog kola koji uzima informacije sa senzora i obezbeđuje analogni signal na svom izlazu. Osetljivi element (senzor)
Patentiran (zaštićen) proces je korišćen za izradu površinski montiranog mikro-mašinskog akcelerometra. Tehnologija omogućuje pokretanje lebdećih silikonskih struktura koje su zakačene na substratu na nekoliko tačaka nazvanih kotve (sidra) koje su slobodne da se pokreću u smeru delovanja ubrzanja. Da bi bio kompatibilan sa tradicionalnim načinom pakovanja (kućišta), na senzor je postavljena “kapica“ da bi se izbeglo blokiranje pokretnih delova senzora u fazi stavljanja u kućište (livenje, hermetizacija). Kada se primeni ubrzanje na senzor, centralni deo senzora (seizmička masa) se pomeri u odnosu na svoju normalnu poziciju (kad nema ubrzanja), pri tome izazivajući neravnotežu (disbalans) u kapacitivnom mostu. Ovaj disbalans se meri integraljenjem napona koji predstavlja odziv na naponski impuls primenjen na “osetljivi“ kondenzator. U stanju mirovanja, nominalna vrednost kondenzatora je nekoliko pF a kada je primenjeno ubrzanje maksimalna promena kapacitivnog tovara je do 100fF.
z
xya
Akcelerometar – LIS3L02AS4
- 11 -
Interfejs integrisanog kola (IC)
U cilju povećanja robusnosti i otpornosti na spoljne poremećaje kompletan lanac procesiranja signala koristi potpuno diferencijalnu strukturu. Poslednji stepen konvertuje diferencijalni signal u jednoznačni koji je razumljiv spoljnom svetu. Signali sa senzora su multipleksirani i vode se na niskopropusni kapacitivni pojačavač koji sadrži CDS (“Correlated Double Sampling“ ) – duplo uzorkovanje na svom izlazu da bi poništio ofset i 1/f šum. Izlazni signal je demultipleksiran i prosleđen na tri S&Hs (“Sample&Hold“ – kolo uzorkovanja i pamćenja) jedan po svakom kanalu i koji je dostupan na izlazu. Niskopropusni ulazni pojačavač radi na 200kHz dok je frekvencija semplovanja (uzorkovanja) tri S&Hs kola 66kHz. Ovo omogućuje veliki koeficient preuzorkovanja (“oversampling“), što vodi do redukovanja šuma u propusnom opsegu i dalje do preciznog izlaznog oblika signala. Svi analogni parametri (nulti-g nivo, osetljivost i samotestiranje) su srazmerni naponu napajanja. Povećanje ili smanjenje napona napajanja dovodi do skoro linearnog povećanja ili smanjenja osetljivosti i ofseta. Napon samotestiranja menja se sa kubom napona napajanja (Vout³). Fabričko podešavanje
Interfejs integrisanog kola (IC) fabrički je podešen za Osetljivost (So) i Nulti-g nivo (Voff). Vrednosti parametara podešavanja smeštene su unutar komponente u nepromenljivu strukturu. Pri svakom aktiviranju komponente, parametri podešavanja se učitavaju u registre da bi bilo upotrebljeni u toku rada komponente, što omogućava korisniku korišćenje komponente bez kalibracije (podešavanja). 4.1.8. Preporuke za izradu aplikacije
12
3456
78
91011
12 1314
1516
17181920212223
24
Vdd
10µF 100nFGND GND
ST
PD
Digitalni signali
Cload z
Cload x
Cload y
Opcionalno
Opcionalno
Opcionalno
FS
Vout Z
Vout X
Vout Y
GND
Z
X
Y
1
13
OSE OSETLJIVOSTILIS3L02AS4
GND
Slika 4.1.4. LIS3L02AS4 Električno povezivanje
z
xya
Akcelerometar – LIS3L02AS4
- 12 -
Kondenzatori za eliminisanje smetnji napajanja (100nF keramički + 10μF Al) trebaju biti postavljeni što bliže
komponenti. LIS3L02AS4 omogućava ograničenje opsega Voutx, Vouty i Voutz upotrebom eksternih kondenzatora. Preporučeni opseg frekvencije je do 1.5kHz. Kondenzatori moraju biti dodati na izlaznim pinovima za formiranje niskopropusnog (NF) filtera zbog smanjivanja šuma. Jednačina za izračunavanje granične frekvencije eksternog filtera je:
( )z y, x,CR21 tf
loadout ⋅⋅
=π
Ako u gornjem izrazu zamenimo vrednost unutrašnjeg otpornika (Rout) koji ima nominalnu vrednost 110kΩ, gornja jednačina može biti uprošćena:
( )[ ]Hzz y, x,C
μF45.1t f
load=
Tolerancija unutrašnjeg otpornika može varirati do ±20% u odnosu na nominalnu vrednost od 110kΩ pa će i granična frekvencija varirati. Minimalna kapacitivnost od 320pF za Cload(x, y, z) je potrebna u svakom slučaju.
Granična frekvencija Vrednost kondenzatora 1 Hz 1500nF
10 Hz 150nF 50 Hz 30 nF 100 Hz 15 nF 200 Hz 6.8 nF 500 Hz 3 nF
Tabela 4.1.6. Odabir kondenzatora za Cload(x, y, z)
Odziv izlaza u odnosu na orijentaciju
X=1.65V (0g)Y=1.65V (0g)Z=0.99V (-1g)
X=1.65V (0g)Y=1.65V (0g)Z=2.31V (+1g)
X=1.65V (0g)Y=0.99V (-1g)Z=1.65V (0g)
X=0.99V (-1g)Y=1.65V (0g)Z=1.65V (0g)
X=1.65V (0g)Y=2.31V (+1g)Z=1.65V (0g)
X=2.31V (+1g)Y=1.65V (0g)Z=1.65V (0g)
POGLED ODOZGO
GORNJI DEO
DONJI DEO
GORNJI DEO
DONJI DEO
POVRŠINA ZEMLJE
Slika 4.1.5. Odziv izlaza u odnosu na orijentaciju komponente
Slika 4.1.5. odnosi se na LIS3L02AS4 komponentu napajanu sa 3.3V.
z
xya
Akcelerometar – LIS3L02AS4
- 13 -
4.1.9. Tipične karakteristike
Mehaničke karakteristike na 25°C
Nulti-g nivo (V) Osetljivost (V/g)
Proc
enti
u de
lovi
ma
(%)
Proc
enti
u de
lovi
ma
(%)
Slika 4.1.6. Nulti-g nivo X ose na 3.3V Slika 4.1.7. Osetljivost X ose na 3.3V
Nulti-g nivo (V) Osetljivost (V/g)
Proc
enti
u de
lovi
ma
(%)
Proc
enti
u de
lovi
ma
(%)
Slika 4.1.8. Nulti-g nivo Y ose na 3.3V Slika 4.1.9. Osetljivost Y ose na 3.3V
Nulti-g nivo (V) Osetljivost (V/g)
Proc
enti
u de
lovi
ma
(%)
Proc
enti
u de
lovi
ma
(%)
Slika 4.1.10. Nulti-g nivo Z ose na 3.3V Slika 4.1.11. Osetljivost Z ose na 3.3V
z
xya
Akcelerometar – LIS3L02AS4
- 14 -
Mehaničke karakteristike dobijene merenjem u temp. opsegu od -40°C do +85°C
Proc
enti
u de
lovi
ma
(%)
Proc
enti
u de
lovi
ma
(%)
Promena nultog-g nivoa (mg/deg.C) Promena osetljivosti (%/deg.C) Slika 4.1.12. Promena nultog-g nivoa X ose Slika 4.1.13. Promena osetljivosti X ose sa temperaturom sa temperaturom
Promena nultog-g nivoa (mg/deg.C) Promena osetljivosti (%/deg.C)
Proc
enti
u de
lovi
ma
(%)
Proc
enti
u de
lovi
ma
(%)
Slika 4.1.14. Promena nultog-g nivoa Y ose Slika 4.1.15. Promena osetljivosti Y ose sa temperaturom sa temperaturom
Proc
enti
u de
lovi
ma
(%)
Proc
enti
u de
lovi
ma
(%)
Promena nultog-g nivoa (mg/deg.C) Promena osetljivosti (%/deg.C) Slika 4.1.16. Promena nultog-g nivoa Z ose Slika 4.1.17. Promena osetljivosti Z ose sa temperaturom sa temperaturom
z
xya
Akcelerometar – LIS3L02AS4
- 15 -
Električne karakteristike na 25°C
Proc
enti
u de
lovi
ma
(%)
Proc
enti
u de
lovi
ma
(%)
Gustina šuma (µg/ (Hz) )½ Potrošnja struje (mA) Slika 4.1.18. Gustina šuma na 3.3V (X, Y ose) Slika 4.1.19. Potrošnja struje na 3.3V
Proc
enti
u de
lovi
ma
(%)
Proc
enti
u de
lovi
ma
(%)
Gustina šuma (µg/ )(Hz)½ Potrošnja struje (µA) Slika 4.1.20. Gustina šuma na 3.3V (Z ose) Slika 4.1.21. Potrošnja struje u isključenom stanju na 3.3V
z
xya
Akcelerometar – LIS3L02AS4
- 16 -
4.1.10. Kućište komponente
Da bi izašli u susret ekološkim zahtevima, ST nudi ove komponente u ECOPAK kućištima. Ova kućišta ne sadrže olovo (drugi nivo) u okviru standarda JEDEC JESD97.ECOPAK kućišta su zaštitni znak STMicroelectronics-a. ECOPAK specifikacije dostupne su na internet adresi: www.st.com
SO24Težina: 0.60gr
Tabela 4.1.7. Dimenzije kućišta Slika 4.1.6. Kućište
1 12
1324
e
E H
Identifikacija Pina 1
A1
L
C
k
0.25 mmDebljina pina
Visinanaleganja
hx45°
C
A
A1
D
dddB
C
Slika 4.1.7. Mehanički podaci kućišta
mm Dimenzije min tipično maks A 2.35 2.65
A1 0.10 0.30 B 0.33 0.51 C 0.23 0.32 D 15.20 15.60 E 7.40 7.60 e 1.27 H 10.0 10.65 h 0.25 0.75 L 0.40 1.27 k 0° (min), 8° (maks)
ddd 0.10
z
xya
Mikrokontroler – C8051F310
- 17 -
4.2. Mikrokontroler sa A/D konvertorom
C8051F310 4.2.1. Karakteristike Napon napajanja: 2.7 do 3.6V Jezgro 8051 µC velike brzine, izvršava 70% instrukcija u 1 ili 2 sistemska takta Do 25 MIPS pri 25 MHz sistemskog takta Kolo za debagiranje na čipu obezbeđuje punu brzinu ADC 10-bitni, 200ksps, do 21 programabilnih spoljnih ulaza sa AMUX Precizan programabilni unutrašnji oscilator: - 24.5 MHz(2% tačnosti), podržava rad UART-a - Spoljni oscilator: Kristal, RC, C, ili takt (1 ili 2-pinski mod) 1280 bajta RAM memorije podataka, 16kB fleš memorije; programabilne (ISP) u 512 bajtnim sektorima (512 bajta su ezervisani) Hadrver SMBus (I2C kompatibilan), SPI i UART serijski portovi Programabilan 16-bitni brojač/tajmer tabela sa pet zapamti/uporeti modula, WDT Četiri 16-bitna brojač/tajmer opšte svrhe “Power on reset” na čipu, Vdd monitor, i temperaturni sensor (±3ºC) Dva naponska komparatora 29 U/I portova; svi mogu raditi sa 5V 32-pinsko LQFP kućište
Slika 4.2.1. Mikrokontroler C8051F310
z
xya
Mikrokontroler – C8051F310
- 18 -
4.2.2. Konfiguracija pinova
C8051F310
P0.1P0.0
GNDVdd
RST/C2CK
P3.0/C2DP3.1
P3.2P3
.3P3
.4P2
.7
P2.6
P2.5
P2.4
P2.3
P2.2
P1.2P1.3P1.4
P1.5P1.6
P1.7
P2.0P2.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P1.0
P1.1
123456
7
8
9 10 11 12 13 14 15 16
1718192021
2223
24
2526272829303132
Slika 4.2.2. Konfiguracija pinova (pogled odozgo)
Br. pina Ime pina Tip Opis 1 P0.1 Digital U/I Port 0.1 2 P0.0/VREF Digital U/I / Analogni Ulaz Port 0.0 / Spoljašnji VREF ulaz 3 GND Masa 4 VDD Napajanje 5 RST/C2CK Digital U/I Reset / Signal takta za C2 interfejs 6 P3.0/C2D Digital U/I Port 3.0 / Bidirekcioni signal za C2 interfejs
7-26 P3.1 – P1.0 Digital U/I ili Analogni Ulaz Port 3.1, Port 3.2, ... Port 1.0 27 P0.7 Digital U/I Port 0.7
28 P0.6/CNVSTR Port 0.6 / ADC0 spoljni ulaz za start
konverzije 29-30 P0.5 – P0.4 Digital U/I Port 0.5 / Port 0.4
31 P0.3/XTAL2 Digital U/I / Analogni Izlaz ili Digitalni Ulaz Port 0.3 / Izlaz za spoljni signal takta 32 P0.2/XTAL1 Digital U/I / Analogni Ulaz Port 0.2 / Ulaz za spoljni signal takta
Tabela 4.2.1. Opis pinova
z
xya
Mikrokontroler – C8051F310
- 19 -
4.2.3. Električne karakteristike
Parametar Uslovi Min Nom Maks Jedinica Napon napajanja VRST 3.0 3.6 V
Napon čuvanja podataka u RAM-u - 1.5 - V Temperaturni opseg rada -40 - +85 ºC
SYSCLK(frekvencija sistemskog takta) 0 - 25 MHz
Tsysl (SYSCLK “low“ vreme) 18 - - ns Tsysh (SYSCLK “high“ vreme) 18 - - ns
Napojna struja – CPU aktivan (Normalan način rada, uzimanje instrukcija iz fleš memorije) - 7.8 8.6 mA - 0.38 - mA - 31 - µA IDD
VDD=3.0V,F=25MHz VDD=3.0V, F=1MHz VDD=3.0V, F=80kHz VDD=3.6V, F=25MHz - 10.7 12.1 mA
IDD osetljivost napajanja F=25MHz F=1MHz - 67
62 - - %/V
IDD osetljivost frekvencije
VDD=3.0V, F≤15MHz, T=25 ºC VDD=3.0V, F>15MHz, T=25 ºC VDD=3.6V, F≤15MHz, T=25 ºC VDD=3.6V, F>15MHz, T=25 ºC
- - - -
0.39 0.21 0.55 0.27
- - - -
mA/MHz
Napojna struja – CPU neaktivan (prazan hod)
IDD
VDD=3.0V, F=25MHz VDD=3.0V, F=1MHz VDD=3.0V, F=80kHz VDD=3.6V, F=25MHz
- - - -
3.8 0.20 16 4.8
4.3 - -
5.3
mA mA µA mA
IDD osetljivost napajanja F=25MHz F=1MHz - 44
56 - - %/V
IDD osetljivost frekvencije VDD=3.0V, F≤15MHz, T=25 ºC
VDD=3.0V, F>15MHz, T=25 ºC VDD=3.6V, F≤15MHz, T=25 ºC VDD=3.6V, F>15MHz, T=25 ºC
- - - -
0.21 0.15 0.28 0.19
- - - -
mA/MHz
Napojna struja Oscilator neaktivan, Vdd monitor neaktivan - <0.1 - µA
Tabela 4.2.2. Električne karakteristike
z
xya
Mikrokontroler – C8051F310
- 20 -
4.2.4. A/D konvertor ADC0 podsistem kontrolera C8051F310 sastoji se od dva analogna multipleksera (AMUX0) sa ukupno 25 ulaza, A/D konvertorom (ADC0) sa 200 ksps i 10-bitnim A/D konvertorom tipa sukcesivna aproksimacija (SAR) sa integrisanim “track and hold“ i programabilnim “prozorskim“ detektorom. AMUX0, modovi konverzije i prozorski detektor softverski se podešavaju preko registra specijalne namene (SFR) pokazano na slici 4.2.3. ADC0 radi u “jednostranom“ i “diferencijalnom“ modu i može biti konfigurisan da meri signale sa pinova P1.0 – P3.4, izlaz temperaturnog senzora ili Vdd u odnosu na P1.0 – P3.4, Vref ili GND. ADC0 je aktivan samo kada je AD0EN bit u ADC0 kontrolnom registru (ADC0CN) setovan na logičku ”1”, a neaktivan kada je na logičkoj ”0”.
AD0Busy (W)Timer 0 prekoračenjeTimer prekora2 čenjeTimer prekora1 čenjeCNVSTR UlazTimer 3 prekoračenje
AD0WINT
Windowcompare
logic32
SYSC
LK
RE
F
Startkonverzije
Vdd
(+)
(-)
P1.0
P1.7
P2.0
P2.7P3.0
P3.4
Temp.senzor
Vdd
P1.0
P1.7P2.0
P2.7P3.0
P3.4Vref
GND
Slika 4.2.3. Blok dijagram A/D konvertora Analogni multiplekser
AMUX0 selektuje pozitivne i negativne ulaze za A/D konvertor. Bilo koji od sledećih može biti selektovan kao pozitivni ulaz: P1.0 – P3.4, temperaturni senzor ili pozitivan napon napajanja (VDD). A za negativan ulaz bilo koji od sledećih: P1.0 – P3.4, VREF, ili GND. Kada je GND selektovan kao negativni ulaz, ADC0 radi u “jednostranom“ modu, u svim drugim slučajevima radi u “diferencijalnom“ modu. Ulazi ADC0 selektuju se u AMX0P i AMX0N registrima. Kod konverzije izmedju “jednostranog“ i “diferencijalnog“ moda se razlikuje. Registri ADC0H i ADC0L sadrže viši i niži bajt izlaznog koda pri završetku svake A/D konverzije. Podaci (kod) mogu biti desno-poravnani ili levo-poravnani, u zavisnosti od vrednosti bita AD0JST (ADC0CN.0). U “jednostranom“ modu, konverzioni kodovi su predstavljeni kao 10-bitni neoznačeni celi brojevi (integer). Ulazi se mere od 0 do VREF *1023/1024. Primeri kodova su prikazani u tabeli 4.2.3. Ne korišćeni bitovi u ADC0H i DC0L registrima postavljeni su na ”0”.
Ulazni napon Desno-poravnani ADC0H:ADC0L(AD0LJST=0)
Levo-poravnani ADC0H:ADC0L(AD0LJST=1)
VREF x 1023/1024 0x03FF 0xFFC0 VREF x 512/1024 0x0200 0x8000 VREF x 256/1024 0x0100 0x4000
0 0x0000 0x0000
Tabela 4.2.3.
z
xya
Mikrokontroler – C8051F310
- 21 -
U diferencijalnom modu kodovi A/D konverzije predstavljeni su kao 10-bitni označeni brojevi u drugom komplementu. Ulazi se mere od –VREF do VREF *511/512. Primeri kodova su prikazani u tabeli 4.2.4. Za desno-poravnane podatke, nekorišćeni MSB ACD0H predstavlja produžetak znaka reči podatka. Za levo-poravnane podatke, nekorišćeni LSB u ADC0L registru su postavljeni na ”0”.
Ulazni napon Desno-poravnani ADC0H:ADC0L(AD0LJST=0)
Levo-poravnani ADC0H:ADC0L(AD0LJST=1)
VREF x 511/512 0x01FF 0x7FC0 VREF x 256/512 0x0100 0x4000
0 0x0000 0x0000 -VREF x 256/512 0xFF00 0xC000
-VREF 0Xfe00 0x8000
Tabela 4.2.4.
Načini rada
ADC0 ima maksimalnu brzinu konverzije od 200ksps. Takt ADC0 je podeljena verzija sistemskog takta, određena AD0SC bitom u ADC0CF registru (sistemski takt podeljen sa (AD0SC + 1) za 0 ≤ AD0SC ≤ 31).
Početak konverzije
Konverzija može biti inicirana na jedan od pet načina, zavisno od programiranih stanja ADC0 bitova za početak konverzije (AD0CM2-0) u registru ADC0CN. Konverzija može biti započeta na jedan od sledećih načina:
1. Upisivanjem ‘1’ u AD0BUSY bit registra ADC0CN 2. Prekoračenjem “Timer-a“ 0 3. Prekoračenjem “Timer-a“ 2 4. Prekoračenjem “Timer-a“ 1 5. Na rastuću ivicu na CNVSTR ulaznog signala (pin P0.6) 6. Prekoračenjem Timer 3
Upisivanje ”1” u AD0BUSY obezbeđuje softversku kontrolu A/D konvertora pomoću koga se konverzija izvršava “po zahtevu“. Za vreme konverzije, AD0BUSY bit se setuje na ”1” i resetuje na ”0” kada je konverzija završena. Opadajuća ivica AD0BUSY aktivira “interapt” (ako je dozvoljen) i setuje “flag” A/D konvertora (AD0INT). Konvertovani podaci su dostupni u registrima A/D konvertora ADC0H:ADC0L kada je bit AD0INT na logičkoj ”1”. Načini praćenja
Svakoj A/D konverziji mora prethoditi minimalno vreme “praćenja“ da bi konvertovani rezultat bio tačan. AD0TM bit u registru ADC0CN kontroliše “prati/pamti“ način rada A/D konvertora. Pri radu ulaz ADC0 se konstantno “prati“ sem kada se vrši konverzija. Kada je AD0TM bit na logičkoj “1“, ADC0 radi u modu niske potrošnje “prati/pamti“ u kome svakoj konverziji prethodi vreme praćenja od 3 SAR takta (posle signala za početak konverzije). Kada se CNVSTR signal koristi za aktiviranje konverzije u modu niske potrošnje praćenja, ADC0 prati samo kada je CNVSTR na niskom nivou; konverzija počinje na rastuću ivicu CNVSTR-a. Praćenje može biti deaktivirano kada je uređaj u režimu niske potrošnje ili kada je neaktivan. Režim niske potrošnje “prati/pamti“ takođe je koristan kada se podešavanja AMUX-a često menjaju. Potrebno vreme smirivanja
Kada je konfiguracija ulaza ADC0 promenjena (AMUX izabrao drugi ulaz) minimalno vreme praćenja je potrebno da bi počela konverzija. Ovo vreme je određeno otpornošću AMUX0, kapacitivnošću semplovanja ADC0, bilo kojom spoljnom otpornošću i preciznošću potrebnoj za datu konverziju. U režimu niske potrošnje praćenja, tri SAR takta se koriste za praćenje na startu svake konverzije, što je za većinu aplikacija dovoljno vreme. Na slici 4.2.4. prikazano je ekvivalentno ulazno kolo ADC0 za oba načina rada. .
z
xya
Mikrokontroler – C8051F310
- 22 -
P x.x
P x.x
P x.x
MUX odabir
MUX odabir
MUX odabir
Diferencijalni režim Jednostrani žiimre
Slika 4.2.4.
Potrebno vreme smirivanja dato je jednačinom:
SAMPLETOTAL
n
xCxRSA2lnt ⎟⎟
⎠
⎞⎜⎜⎝
⎛=
SA - tačnost smirivanja ( dato kao deo LSB) RTOTAL - ukupna otpornost AMUX0 i spoljne otpornosti n – rezolucija ADC u bitovima (10)
Definisanje SFR registra
AMX0P: AMUX0 Izbor pozitivnog ulaza R R R R/W R/W R/W R/W R/W
- - - AMX0P4 AMX0P3 AMX0P2 AMX0P1 AMX0P0 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Reset: 00000000 SFR adresa: 0xBB Bitovi7-5: Nekorišćeni. Upis=000b; Čitanje= bilo šta. Bitovi4-0: AMX0P4-0: AMUX0 Izbor pozitivnog ulaza
AMX0P4-0 ADC0 Pozitivan ulaz 00000 P1.0 00001 P1.1 00010 P1.2 00011 P1.3 00100 P1.4 00101 P1.5 00110 P1.6 00111 P1.7 01000 P2.0 01001 P2.1 01010 P2.2 01011 P2.3 01100 P2.4 01101 P2.5 01110 P2.6 01111 P2.7 10000 P3.0 10001 P3.1 10010 P3.2 10011 P3.3 10100 P3.4
10101-11101 REZERVISAN 11110 Temp. senzor 11111 VDD
z
xya
Mikrokontroler – C8051F310
- 23 -
AMX0N: AMUX0 Izbor negativnog ulaza
R R R R/W R/W R/W R/W R/W
- - - AMX0N4 AMX0N3 AMX0N2 AMX0N1 AMX0N0 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Reset: 00000000 SFR adresa: 0xBA Bitovi7-5: Nekorišćeni. Upis=000b; Čitanje= bilo šta. Bitovi4-0: AMX0N4-0: AMUX0 Izbor negativnog ulaza Kada je GND izabran kao negativan ulaz, ADC0 radi u jednostranom modu, za sve druge izbore negativnog ulaza, ADC0 radi u diferencijalnom modu.
AMX0N4-0 ADC0 Negativan ulaz 00000 P1.0 00001 P1.1 00010 P1.2 00011 P1.3 00100 P1.4 00101 P1.5 00110 P1.6 00111 P1.7 01000 P2.0 01001 P2.1 01010 P2.2 01011 P2.3 01100 P2.4 01101 P2.5 01110 P2.6 01111 P2.7 10000 P3.0 10001 P3.1 10010 P3.2 10011 P3.3 10100 P3.4
10101-11101 REZERVISAN 11110 VREF 11111 GND (ADC u jednostranom modu)
ADC0CF: ADC0 Konfigurisanje R/W R/W R/W R/W R/W R/W R/W R/W
AD0SC4 AD0SC3 AD0SC2 AD0SC1 AD0SC0 AD0LJST - - Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Reset: 11110000 SFR adresa: 0xBC Bitovi7-3: AD0SC4-0: ADC0 SAR bitovi periode takta konverzije.
SAR takt konverzije izvodi se iz sistemskog takta po sledećoj jednačini, gde se AD0SC odnosi na 5-bitnu vrednost iz AD0SC4-0.
1CLKSYSCLKAD0SC
SAR
−=
Bitovi2: AD0LJST: ADC0 levo-poravnani 0: podaci u ADC0H:ACC0L registrima su desno-poravnani. 1: podaci u ADC0H:ACC0L registrima su levo-poravnani. Bitovi1-0: Nekorišćeni. Upis:00b; Čitanje: bilo šta
z
xya
Mikrokontroler – C8051F310
- 24 -
ADC0H: ADC0 reč podatka MSB
R/W R/W R/W R/W R/W R/W R/W R/W
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Reset: 00000000 SFR adresa: 0xBE Bitovi7-0: ADC0 reč podatka viši red bitova Za AD0LJST=0: Bitovi 7-2 su nastavci znaka Bita 1. Bitovi 1-0 su gornja 2 bita 10-bitne reči ADC0.
Za AD0LJST=1: Bitovi 7-0 su bitovi najveće važnosti 10-bitne reči ADC0.
ADC0L: ADC0 reč podatka MSB R/W R/W R/W R/W R/W R/W R/W R/W
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Reset: 00000000 SFR adresa: 0xBD Bitovi7-0: ADC0 reč podatka niži red bitova Za AD0LJST=0: Bitovi 7-0 su niža 8 bita 10-bitne reči ADC0.
Za AD0LJST=1: Bitovi 7-6 su niža 2 bita 10-bitne reči ADC0. Bitovi 5-0 uvek će biti pročitani “0“.
ADC0CN: Kontrola ADC0 R/W R/W R/W R/W R/W R/W R/W R/W
AD0EN AD0TM AD0INT AD0BUSY AD0WINT AD0CM2 AD0CM1 AD0CM0 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Reset: 00000000 SFR adresa: 0xE8 (bit adresibilni) Bit7: AD0EN: ADC0 bit aktiviranja.
0: ADC0 neaktivan. ADC0 je u režimu niske potrošnje – isključen. 1: ADC0 aktiviran. ADC0 je aktivan i spreman za konverziju podataka.
Bit6: AD0TM: ADC0 bit režima praćenja. 0: Normalan režim praćenja: Kada je ADC0 aktivan, praćenje se vrši konstantno sem ukoliko konverzija nije u toku. 1: Režim praćenja niske potrošnje. Praćenje definisano bitovima AD0CM2.
Bit5: AD0INT: Završetak konverzije ADC0 interapt “flag“ 0: ADC0 nije završio konverziju od poslednjeg brisanja bita AD0INT.
1: ADC0 je završio konverziju. Bit4: AD0BUSY: ADC0 bit zauzetosti.
Čitanje: 0: ADC0 konverzija je završena ili nije trenutno u toku. AD0INT setovan je na logičku “1“ na opadajuću ivicu AD0BUSY. 1: ADC0 konverzija u toku. Upis: 0: Nema efekta. 1: Inicira ADC0 konverziju ako je AD0CM2-0=000b
Bit3: AD0WINT: ADC0 prozor poređenja interapt “flag“ 0: ADC0 usaglašenje prozora poređenja podataka se nije pojavilo od poslednjeg brisanja ovog “flag-a“. 1: ADC0 usaglašenje prozora poređenja podataka se pojavilo.
Bitovi2-0: AD0CM2-0: ADC0 režim izbora početka konverzije. Kada je AD0TM=0: 000: ADC0 konverzija inicirana na svaki upis “1“ u AD0BUSY. 001: ADC0 konverzija inicirana na prekoračenje Timer-a 0. 010: ADC0 konverzija inicirana na prekoračenje Timer-a 2. 011: ADC0 konverzija inicirana na prekoračenje Timer-a 1. 100: ADC0 konverzija inicirana na rastuću ivicu CNVSTR.
z
xya
Mikrokontroler – C8051F310
- 25 -
101: ADC0 konverzija inicirana na prekoračenje Timer-a 3. 11x: Rezervisan. Kada je AD0TM=1: 000: Praćenje inicirano na upis “1“ u AD0BUSY i traje 3 SAR takta, praćeno konverzijom. 001: Praćenje inicirano na prekoračenje Timer-a 0 i traje 3 SAR takta, praćeno konverzijom. 010: Praćenje inicirano na prekoračenje Timer-a 2 i traje 3 SAR takta, praćeno konverzijom. 011: Praćenje inicirano na prekoračenje Timer-a 1 i traje 3 SAR takta, praćeno konverzijom. 100: ADC0 prati samo kada je CNVSTR na niskom nivou; konverzija počinje na rastuću ivicu CNVSTR. 101: Praćenje inicirano na prekoračenje Timer-a 3 i traje 3 SAR takta, praćeno konverzijom. 11x: Rezervisan.
Programabilni prozorski detektor
Prozorski detektor A/D konvertora konstantno upoređuje izlaze svojih registra sa vrednostima koje je korisnik zadao, i obaveštava sistem kada je željeni uslov stečen. Ovo je korisno u sistemima koji se kontrolišu interaptima, čuva prostor za kod i procesorsko vreme istovremeno pružajući brže reagovanje sistema. Interapt “flag“ prozorskog detektora (AD0WINT u registru ADC0CN) može biti korišćen u pozivnom režimu. ADC0 “veće nego“ (ADC0GTH, ADC0GTL) i “manje nego“ (ADC0LTH, ADC0LTL) registri pamte vrednosti poređenja. “Flag“ prozorskog detektora može biti programiran da pokazuje kada je merena veličina u okviru ili izvan okvira definisanih granica postavljenih od strane korisnika, zavisno od sadržaja registra ADC0 “manje nego“ i “veće nego“.
ADC0GTH: ADC0 “veće nego“ viši deo bajta R/W R/W R/W R/W R/W R/W R/W R/W
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Reset: 11111111 SFR adresa: 0xC4 Bitovi7-0: Viši bajt reči ADC0 “veće nego“.
ADC0GTL: ADC0 “veće nego“ niži deo bajta R/W R/W R/W R/W R/W R/W R/W R/W
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Reset: 11111111 SFR adresa: 0xC3 Bitovi7-0: Niži bajt reči ADC0 “veće nego“. ADC0LTH: ADC0 “manje nego“ viši deo bajta
R/W R/W R/W R/W R/W R/W R/W R/W
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Reset: 00000000 SFR adresa: 0xC6 Bitovi7-0: Viši bajt reči ADC0 “manje nego“.
ADC0LTL: ADC0 “manje nego“ niži deo bajta R/W R/W R/W R/W R/W R/W R/W R/W
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Reset: 00000000 SFR adresa: 0xC5 Bitovi7-0: Niži bajt reči ADC0 “manje nego“.
z
xya
Mikrokontroler – C8051F310
- 26 -
4.2.5. Električne karakteristike A/D konvertora (ADC0)
VDD=3.0 V, VREF=2.40 V (REFSL=0), -40º DO 85 ºC ukoliko nije drugačije naglašeno
Parametar Uslovi Min Nom Maks Jedinica DC tačnost
Rezolucija 10 bit Integralna nelinearnost - ±0.5 ±1 LSB
Diferencijalna nelinearnost ±0.5 ±1 LSB Greška “offset-a” -12 1 +12 LSB Greška pune skale Diferencijalni mod -15 -5 +5 LSB
“Offset” temperaturnog koef. - 3.6 - ppm/ºC Dinamičke performance (10kHz sinusni talas jednostrani ulaz, 0 do1 dB ispod pune skale, 200ksps)
Odnos signal-šum plus distorzija 53 55.5 - dB Ukupna distorzija harmonika do petog harmonika - -67 - dB
Dinamički opseg - 78 - dB Brzina konverzije
SAR takt konverzije - - 3 MHz Vreme konverzije u SAR taktovima 10 - - takt
“Track/hold” vreme akvizicije 300 - - ns Brzina semplovanja 200 ksps
Analogni ulazi Opseg ulaznog napona 0 - VREF V Ulazna kapacitivnost - 5 - pF
Temperaturni senzor Linearnost - ±0.5 - ºC Pojačanje - 3350±10 - µV/ ºC “Offset” temp = 0 ºC - 897±31 - mV
Napajanje Struja napajanja
(VDD doveden na ADC0) aktivan, 200 ksps - 400 900 µA
Odbacivanje napajanja - ±0.3 - mV/V
Tabela 4.2.3. Električne karakteristike A/D konvertora 4.2.6. Radna ograničenja
Parametar Uslovi Min Nom Maks Jedinica Temperatura sredine -55 - 125 ºC
Temperatura skladištenja -65 - 150 ºC Napon na bilo kom U/I portu ili RST
u odnosu na masu -0.3 - 5.8 V
Napon na Vdd u odnosu na masu -0.3 - 4.2 V Maksimalna ukupna struja kroz Vdd i masu - - 500 mA
Maksimalna izlazna struja kroz RST ili bilo koji drugi pin - - 100 mA
Tabela 4.2.4. Radna ograničenja
z
xya
Mikrokontroler – C8051F310
- 27 -
4.2.7. C2 (ISP) interfejs C2 interfejs je dvožični serijski komunikacioni protokol preko koga se u okviru gotove aplikacije vrši programiranje/debagiranje/testiranje. Dve žice koje C2 interfejs koristi su C2 Data (C2D) i C2 Clock (C2CK).
C2 Interfejs Master
Reset
Ulaz
Uzlaz
C2CK
C2D
C8051F310
Slika 4.2.3. C2 interfejs 4.2.8. Kućište komponente
D
D1
EE1
A
A1
A21
32
Identifikatorpina 1
eb
Slika 4.2.4. Mehanički podaci kućišta Tabela 4.2.5. Dimenzije kućišta
LQFP Milimetri DIM min nom maks
A - - 1.60 A1 0.05 - 0.15 A2 1.35 1.40 1.45 b 0.30 0.37 0.45 D - 9.00 -
D1 - 7.00 - e - 0.80 - E - 9.00 -
E1 - 7.00 -
z
xya
RS-232 interfejs - MAX3222
- 28 -
4.3 RS-232 interfejs ka računaru
MAX3222 4.3.1. Karakteristike NAPAJANJE OD 3.0V DO 5.5V NISKA POTROŠNJA PRENOS DO 120kbps POTPUNI RS-232 PRIMOPREDAJNIK KORISTI ČETIRI EKSTERNA KONDENZATORA OD 0.1uF 4.3.2. Opis
MAX3222 primopredajnik ima nizak izlazni stepen predajnika omogućavajući potpuni RS-232 standard komunikacije sa napajanjem od 3.0V do 5.5V sa dvostrukim udvostručavačem napona. Komponenta zahteva samo četiri mala eksterna kondenzatora od 0.1μF. Garantovani prenos podataka je 120kbps održavajući izlazne naponske nivoe RS-232 standarda. MAX3222 poseduje 2 prijemnika i 2 drajvera. Potrošnja struje kada nije aktivan je 1μA što smanjuje potrošnju energije i produžava vek baterije u prenosnim sistemima. I u isključenom stanju prijemnici ostaju aktivni omogućavajući eksternim uređajima kao što su modemi da budu kontrolisani uz potrošnju od samo 1μA. MAX3222 je po pinovima, kućištu i funkcionalnošću kompatibilan sa industrijskim standardom MAX232.
RS-232 predajnici
Predajnici konvertuju CMOS logičke nivoe na 5.0V EIA/TIA-232 nivoe. MAX3222 predajnici garantuju brzinu prenosa od 120ksps i pri opterećenjima od 3kΩ u paraleli sa 1000pF, obezbeđujući kompatibilnost u komunikaciji između računara. Predajnici mogu biti paralelno vezani za komunikaciju sa više prijemnika. Izlazni stepen MAX3222 je isključen (stanje visoke impedanse) kad je uredjaj u modu isključivanja. Kada je isključeno napajanje izlazi mogu prihvatati napon do ±12V. Ulazi predajnika nemaju “pullup“ otpornike.
RS-232 prijemnici
Prijemnici konvertuju RS-232 singale na logičke nivoe CMOS-a. Prijemnici imaju invertujuće trostatičke izlaze. U isključenom stanju prijemnici mogu biti i aktivni i neaktivni. 4.3.3. Konfiguracija pinova
SHDNVcc
GND
T1outR1inR1out
T1inT2in
R2out
EN
C1+V+
C1-C2+
C2-V-
T2out
R2in
MAX3222
DIP/SO
9
1
23
4
567
8
10
11121314
151617
18
Slika 4.3.1. Konfiguracija pinova (pogled odozgo)
z
xya
RS-232 interfejs - MAX3222
- 29 -
Broj pina Ime pina Funkcija
1 EN Aktiviranje prijemnika. Aktivira se niskim nivoom (0V) 2 C1+ Pozitivan priključak ili kondenzator za udvostručavanje napona 3 V+ 5.5V generisano kondenzatorom C1+ 4 C1- Negativan priključak ili kondenzator za udvostručavanje napona 5 C2+ Pozitivan priključak invertujućeg kondenzatora 6 C2- Negativan priključak invertujućeg kondenzatora 7 V- -5.5V generisano kondenzatorom C1-
8, 15 T_out RS-232 izlazi predajnika 9, 14 R_in RS-232 ulazi prijemnika
10, 13 R_out TTL/CMOS izlazi prijemnika 11, 12 T_in TTL/CMOS ulazi predajnika
16 GND Masa 17 Vcc +3.0V do +5.5V napajanje 18 SHDN Kontrola isključivanja. Aktivira se niskim nivoom (0V)
Tabela 4.3.1. Opis pinova
4.3.4. Primer operativnog kola
RS-232 Izlazi
RS-232Ulazi
TTL/CMOSUlazi
TTL/CMOSIzlazi
MAX3222
Slka 4.3.2. Primer tipičnog operativnog kola
z
xya
RS-232 interfejs - MAX3222
- 30 -
4.3.5. Električne karakteristike
Parametar Uslovi Min Tipično Maks Jedinica
Vcc napajanje - struja Neopterećen
Vcc = 3.3V ili 5.0V Ta = +25°C
0.3 1.0 mA
Struja u neaktivnom stanju SHDN=GND, Ta=+25°C 1.0 1.0 μA Logički ulazi i izlazi prijemnika
Niski logički nivo ulaza T_in, EN, SHDN 0.8 V Vcc = 3.3V 2.0 Visoki logički nivo
izlaza Vcc = 5.0V 2.4 Struja curenja ulaza T_in, EN, SHDN ±0.01 ±1.0 μA Struja curenja izlaza prijemnici deaktivirani ±0.05 ±10 μA
Nizak nivo izlaznog napona Iout = 1.6mA 0.4 V
Visok nivo izlaznog napona Iout = -1.0mA Vcc-0.6 Vcc-0.1 V
Ulazi prijemnika Ulazni opseg napona -25 +25 V
0.6 1.2 Niski napon praga ulaza – “Low“ Ta = +25°C 0.8 1.5 V
1.5 2.4 Visoki napon praga ulaza – “High“ Ta = +25°C 1.8 2.4 V
Ulazni histerezis 0.3 V Ulazna otpornost Ta = +25°C 3 5 7 kΩ
Izlazi predajnika Promena izlaznog napona Svi izlazi predajnika opterećeni sa 3kΩ ±5.0 ±5.4 V
Izlazna otpornost Vcc = V+ = V- = 0V, Tout = ±2V 300 10M Ω Struja kratkog spoja izlaza ±35 ±60 mA
Struja curenja izlaza Vout = ±12V, Vcc = 0V ili 3V do 5.5V, predajnici isključeni
±25 μA
Tabela 4.3.2. Električne karakteristike
4.3.6. Vremenske karakteristike
Tabela 4.3.3. Vremenske karakteristike
Parametar Uslovi Min Tipično Maks Jedinica Maksimalna brzina
prenosa RL= 3kΩ, CL = 1000pF, jedan predajnik prenosi 120 235 kbps
tPHL 0.3 Propagaciono kašnjenje prijemnika R_IN do R_OUT, CL = 150pF
tPLH 0.3 μs
Vreme aktiviranja izlaza prijemnika Normalan rad
200 ns
Vreme deaktiviranja izlaza prijemnik Normalan rad 200 ns
Strmina predajnika | tPHL – tPLH | 300 ns Strmina prijemnika | tPHL – tPLH | 300 ns
CL = 150pF do 1000pF 6 30 V/μs
Brzina odziva Vcc = 3.3V, RL = 3kΩ do 7kΩ,
+3V do -3V ili -3V do +3V, TA=25°C, jedan predajnik prenosi CL = 150pF do
2500pF 4 30 V/μs
z
xya
RS-232 interfejs - MAX3222
- 31 -
4.3.7. Radna ograničenja
Simbol Maks. vrednost
Vcc -0.3 do +6V V+ -0.3 do +7V V- +0.3 do -7V
V+ + V- +13V Ulazni naponi T_in, SHDN, EN -0.3 do +6V
MBAUD -0.3 do (Vcc+0.3)V R_in ±25V
Izlazni naponi T_out ±13.2V R_out -0.3 do (Vcc+0.3)V
Trajanje kratkog spoja T_out kontinualno
Disipacija snage pri Ta=70°C 18-pinski SO (9.52mW/°C iznad +70°C) ........... 762mW 18-pinski DIP (11.11 mW/°C iznad +70°C) ........ 889mW
Tabela 4.3.4. Radna ograničenja
4.3.8. Kućište komponente
AAAA
1
N
Pogled odozgo Pogled odozdo1
H
bbb 9
Detalj savijenog pina
D
Pogled sa strane
e
A1
A
0.10 C
Površina naleganja
AA
E
Lc
Pogled sa kraja
Lcc
0.25BSC
Linija razdvajanja Sa odvajanjem
bb1
cc1
Podnožje
Slika 4.3.3. Mehanički podaci kućišta Tabela 4.3.5. Dimenzije kućišta
mm Dimenzije min maks A - 1.10
A1 0.05 0.15 A2 0.85 0.95 b 0.19 0.30 b1 0.19 0.25 c 0.09 0.20 c1 0.09 0.14
D ( N=18) 5.00 5.40 E 4.30 4.50 e 0.65 BSC H 6.25 6.55 L 0.50 0.70 cc 0º 8º
bbb 0.10 MAX
z
xya
LCD 2x16- HD44780
- 32 -
4.4. LC displej 2x16 karaktera
LCD 2x16 - HD44780
123410 5678911121314 +-
Slika 4.4.1. Izgled displeja 2x16 karaktera 4.4.1. Konfiguracija pinova
Broj pina Ime pina Funkcija 1 Vss Napajanje 0V (GND) 2 VDD/VCC Napajanje +5V 3 VEE/VO Podešavanje kontrasta 4 RS Odabir registra 5 R/W Čitanje/Upis 6 E Omogućavanje rada 7 DB0 Linija podataka – bit 0 (LSB) 8 DB1 Linija podataka – bit 1 9 DB2 Linija podataka – bit 2
10 DB3 Linija podataka – bit 3 11 DB4 Linija podataka – bit 4 12 DB5 Linija podataka – bit 5 13 DB6 Linija podataka – bit 6 14 DB7 Linija podataka – bit 7 (MSB) - BL - Napajanje za osvetljenje - + BL + Napajanje za osvetljenje +
Tabela 4.4.1. Opis pinova
z
xya
LCD 2x16- HD44780
- 33 -
4.4.2. Električne karakteristike
Parametar Simbol Uslovi Min Nom Maks Jedinica Ulazni napon – visok nivo Vih 2.2 - Vdd V Ulazni napon – niski nivo Vil 0 - 0.6 V
0ºC - 4.8 5.4 25ºC 4.2 4.6 - Preporučeni napon napajanja
(standardni temp. opseg) Vdd-Vo 50ºC 3.9 4.3 -
V
-20ºC - 6.4 7.2 0ºC - 4.6 -
50ºC - 4.2 - Preporučeni napon napajanja
(prošireni temp. opseg) Vdd-Vo
70ºC 3.5 4.0 -
V
Struja napajanja Idd Vdd = 5.0V, fosc = 270kHz - 0.8 1.8 mA Napon napajanja LED osvetljenja Vfled R = 6.8 Ω - 4.6 5.0 V Struja napajanja LED osvetljenja Ifled R = 6.8 Ω - 120 300 mA
Tabela 4.4.2. Električne karakteristike
4.4.3. Radna ograničenja
Parametar Simbol Min Nom Maks Jedinica Radna temp. Top -20 - 70 ºC
Temperatura skladištenja Tst -30 - 80 ºC Napon napajanja Vin Vss Vdd V
Napon napajanja logike Vdd - Vss 2.7 - 5.5 V Napon napajanja LCD-a Vdd - Vo 3.0 4.6 6.5 V
Tabela 4.4.3. Radna ograničenja
z
xya
LCD 2x16- HD44780
- 34 -
4.4.4. Tabela karaktera
Tabela 4.4.4. Kod mapa za karaktere od 5x8 tačaka
z
xya
LCD 2x16- HD44780
- 35 -
Tabela 4.4.5. Kod mapa za karaktere od 5x10 tačaka
z
xya
LCD 2x16- HD44780
- 36 -
4.4.5. Algoritam inicijalizacije displeja 4-bitni interfejs sa mikrokontrolerom
Čekaj više od 15ms nakon što V dostigne 4.5Vcc
RS R DB7 DB6 DB5 DB4 0 0 0 0 1 1
/W
Čekaj više od 4.1ms
RS R DB7 DB6 DB5 DB4 0 0 0 0 1 1
/W
Čekaj više od 100µs
RS R DB7 DB6 DB5 DB4 0 0 0 0 1 1
/W
RS R DB7 DB6 DB5 DB4 0 0 0 0 1 0
/W
0 0 0 0 1 00 0 N F * *
0 0 0 0 000 0 1 0 0 0
0 0 0 0 000 0 0 0 0 1
0 0 0 0 000 0 0 1 I /D S
Uključivanje
Kraj inicijalizacije
Čekaj više od 40ms nakon što V dostigne 2.7Vcc
BF bit ne može biti proveren pre ove instrukcije
Funkcijski set ( žine 4 bita)interfejs je du
BF bit ne može biti proveren pre ove instrukcije
Funkcijski set ( žine 4 bita)interfejs je du
BF bit ne može biti proveren pre ove instrukcije
Funkcijski set ( žine 4 bita)interfejs je du
BF bit može biti proveren posle ovih instrukcija.Kada BF bit nije proveren, vreme
že je nego vreme izvršenja instrukcije.čekanja između
instrukcija du
Funkcijski set (Namestiti žine 4 bita)interfejs duFunkcijski set (I je žine 4 bita, nazna
).Broj linija displeja i font karaktera ne može biti prome-njen posle ove instrukcije.
nterfejs du čiti brojlinija displeja i font karaktera
Isključivanje displejaBrisanje displejaPode avanje moda pristupaš
Slika 4.4.2. Algoritam inicijalizacije displeja – 4-bitni interfejs sa mikrokontrolerom
z
xya
LCD 2x16- HD44780
- 37 -
8-bitni interfejs sa mikrokontrolerom
Čekaj više od 15ms nakon što V dostigne 4.5Vcc
Čekaj više od 4.1ms
Čekaj više od 100µs
Uključivanje
Kraj inicijalizacije
Čekaj više od 40ms nakon što V dostigne 2.7Vcc
BF bit ne može biti proveren pre ove instrukcije
Funkcijski set ( žine 8 bita)interfejs je du
BF bit ne može biti proveren pre ove instrukcije
Funkcijski set ( žine 8 bita)interfejs je du
BF bit ne može biti proveren pre ove instrukcije
Funkcijski set ( žine 8 bita)interfejs je du
BF bit može biti proveren posle ovih instrukcija.Kada BF bit nije proveren, vreme
že je nego vreme izvršenja instrukcije.čekanja između
instrukcija du
Funkcijski set (Namestiti žine 8 bita)interfejs duFunkcijski set (I je žine 8 bita, nazna
).Broj linija displeja i font karaktera ne može biti prome-njen posle ove instrukcije.
nterfejs du čiti brojlinija displeja i font karaktera
Isključivanje displejaBrisanje displejaPode avanje moda pristupaš
RS R DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 N F * *
/W
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 I /D S
RS R DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 * * * *
/W
RS R DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 * * * *
/W
RS R DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 * * * *
/W
Slika 4.4.3. Algoritam inicijalizacije displeja – 8-bitni interfejs sa mikrokontrolerom
z
xya
Napajanje – LM7805
- 38 -
4.5. Napajanje – LM7805
LM7805 4.5.1. Karakteristike Izlazna struja do 1A Izlazni napon 5V Zaštita od pregrevanja Zaštita od kratkog spoja
4.5.2. Opis LM7805 serija pozitivnih regulatora napona dostupna je u TO-220 kučištima i pogodna za širok opseg aplikacija. Poseduje unutrašnje ograničavanje struje, isključivanje u slučaju pregrevanja, uz odgovarajući hladnjak mogu dati do 1A izlazne struje. 4.5.3. Konfiguracija pinova i primer operativnog kola
Br. pina Namena1 Ulaz2 Masa3 Izlaz1 2 3
Masa
TO-220
LM7805Ulaz Izlaz
C10.33µF
C0.
21µF
1
2
3
Slika 4.5.1. Konfiguracija pinova i primer operativnog kola
4.5.4. Radna ograničenja
Parametar Vrednost Jedinica Ulazni napon 35 V
Termička otpornost spoj-kućište 5 ºC/W Termička otpornost spoj-vazduh 65 ºC/W
Radna temperatura -40 do +125 ºC Temperatura skladištenja -65 do 150 ºC
Tabela 4.5.1. Radna ograničenja
z
xya
Napajanje – LM7805
- 39 -
4.5.5. Električne karakteristike -40 ºC<TJ<125 ºC, IO=500mA, Vin=10V C1=0.1µF, ukoliko to drugačije nije naglašeno
Parametar Uslovi Min Tipično Maks Jedinica TJ=+25ºC 4.8 5.0 5.2 V
Izlazni napon 5mA≤ IO ≤1A, PO≤15W Vin=7V do 20V 4.75 5.0 5.25 V
VO=7V do 25V - 4.0 100 Regulacija napona TJ=+25ºC Vin=8V do 12V - 1.6 50.0 mV
IO=5mA do 1.5A - 9.0 100 Regulacija opterećenja TJ=+25ºC IO=250mA do 750mA - 4.0 50.0 mV
Struja u stanju mirovanja TJ=+25ºC - 5.0 8.0 mA IO=5mA do 1.5A - 0.03 0.5 Promena struje u stanju mirovanja Vin=7V do 25V - 0.3 1.3 mA
Odstupanje izlaznog napona sa temp. IO=5mA - -0.8 - mV/ ºC Šum izlaznog napona f=10Hz do 100kHz, TA=+25ºC - 42.0 - µV/VO
Talasnost izlaznog napona f=120Hz, VO=8V do 18V 62.0 73.0 - dB Pad izlaznog napona IO=1A, TJ=+25ºC - 2.0 - V
Izlazna otpornost f=1kHz - 15.0 - mΩ Struja kratkog spoja Vin=35V, TA=+25ºC - 230 - mA
Vršna vrednost struje TJ=+25ºC - 2.2 - A
Tabela 4.5.2. Električne i temperaturne karakteristike
4.5.6. Kučište komponente
TO-220
Slika 4.5.2. Kučište komponente
z
xya
Napajanje - TS2937
- 40 -
4.6. Napajanje – TS2937
TS2937 4.6.1. Karakteristike
Pad napona od 0.6V pri Io=500mA Izlazna struja do 500mA -18V maksimalna vrednost inverznog napona Napajanje od +30V preko naponske zaštite Privremeni naponski pik od +60V Zaštita od pregrevanja
4.6.2. Opis TS2937 serija fiksnih regulatora napona dizajnirana je za širok opseg aplikacija. Upotreba ovog tipa regulatora je odlična u uređajima koji se napajaju baterijama. Ova serija fiksnih naponskih regulatora ima veoma malu struju mase (~100uA ) i veoma mali pad napona na izlazu (~60mV pri malim optere- ćenjima i do ~600mA pri struji od 500mA). Nudi se u 3-pinskim kućištima TO-263, TO-220, TO-252 I SOT-223. 4.6.3. Konfiguracija pinova i primer operativnog kola
1 2 3
1 2 3
12
3 1 2 3
TO-220 TO-263 TO-252 STO-223
Br. pina Namena1 Ulaz2 Masa3 Izlaz
Slika 4.6.1. Konfiguracija pinova
V > 4Vin
+ +C110uF
C210uF
Ulaz
Masa
Izlaz1
2
3
V3.3V pri 0.5A
out
Slika 4.6.2. Primer operativnog kola
z
xya
Napajanje - TS2937
- 41 -
4.6.4. Električne i temperaturne karakteristike
Vin=Vout + 1V, IL=5mA, CO=10uF, Ta=25ºC, ukoliko to drugačije nije naglašeno. Parametar Uslovi Min Tipično Maks Jedinica
Izlazni napon 0.990 |Vo| 5.0/3.3 1.010|Vo| V
Izlazni napon 5mA≤ IL ≤500mA, Vo+1V≤ Vin ≤26V
0.980 |Vo| 2.5/1.8 1.020|Vo| V
Napon napajanja - - 26 V Temp. koeficient izlaznog napona - 50 150 ppm/ ºC
Regulacija napona Vo+1V≤ Vin ≤26V - 0.05 0.5 % Regulacija opterećenja 5mA≤ IL ≤500mA - 0.2 1.0 %
Promena izlaznog napona IL=100mA IL=300mA IL=500mA
- - -
100 300 500
200 400 600
mV
Struja u stanju mirovanja IL=100uA IL=300mA IL=500mA
- - -
100 12 25
- - -
uA mA mA
Struja kratkog spoja Vout=0 - - 1.3 A
Šum izlaznog napona 10Hz do 100KHz, IL=10mA
CO=2.2uF CO=3.3uF CO=33uF
- - -
500 350 120
- - -
uVrms
Temperaturne karakteristike tip kućišta Tipično Jedinica TO-220 60 TO-263 80 TO-252 150
Termička otpornost spoja ka spoljnjoj sredini
SOT-223 170
ºC/W
Tabela 4.6.1. Električne i temperaturne karakteristike
4.6.5. Kućište komponente
TO-220
Slika 4.6.3. Kučište komponente
z
xya
Električna šema uređaja
- 42 -
5. Električna šema uređaja
Slika 5.1. Električna šema uređaja
z
xya
PCB – 3D
- 43 -
6. 3D izgled štampane ploče sa komponentama
Slika 6.1. 3D izgled štampane pločice sa komponentama
z
xya
Izgled štampane pločice i spisak komponenata
- 44 -
7. Izgled štampane pločice i spisak komponenata
Slika 7.1. Izgled štampane pločice – “Top layer” i “Bottom layer”- mirror
Opis komponente Oznaka na pločici Komada Blok kondenzator - 0.33uF C1 1 Blok kondenzator - 0.1uF C2 1
Elektrolitski kondenzator - 10uF C3, C4, C10 3 Elektrolitski kondenzator - 0.1uF C5, C6, C7, C8, C9 4
Blok kondenzator -100nF C11, C17 2 Blok kondenzator - 3nf C12, C13, C14 3
Blok kondenzator - 22pF C15, C16 2 Ispravljačka dioda - 1N4001 D1 1
Konektor napajanja J1 1 Konektor DB9 J2 1
Konektor, 16-Pinski JP1 1 Konektor, 2-Pinski JP2 1
LE dioda 5 mm Led 1 Promenljivi otpornik - 10K POT1 1
Otpornik - 700Ω R1 1 Otpornik - 1K R2, R3 2
Otpornik - 6.8Ω R4 1 Taster S1 1 Taster S2 1
Regulator napona - LM7805 U1 1 Regulator Napona - TS2932 U2 1 RS-232 interfejs - MAX3222 U3 1
3-osni akcelerometar LIS3L02AS4 U4 1 Mikrokontroler C8051F310 U5 1
Kristalni oscillator 11.0592MHz Y1 1 Dimenzije pločice 84mm x 84mm 1
Tabela 7.1. Spisak komponenata
z
xya
Kod inicijalizacije kontrolera i LCD-a
- 45 -
8. Kod inicijalizacije kontrolera i LC displeja generisan pomoću Configuration Wizard-a i Keil uVision-a /* Primer koda predstavlja korišcenje analognog multipleksera i A/D konvertora kontrolera C8051F310 za merenje analognih napona Vx, Vy i Vz sa 3-osnog akcelerometra LIS3L02AS4. Rezultati se šalju na PC terminal preko UART-a i na LC displej 2x16 karaktera koji je u sastavu uredjaja. Analogni ulazi kontrolera (Vx, Vy i Vz) sekvencionalno se biraju gde je pocetni Vz (P1.1). U ovom primeru, na LC displej se samo stampa tekst: "Sistemi za akviziciju podataka" i "Sistemi za rad u realnom vremenu". Napisana je “rutina“ koja menja analogne ulaze multipleksera koji se vode na A/D konvertor i čiji se rezultati šalju na PC terminal preko serijskog porta, po uzoru na primer “F31x_ADC0_ExternalInput_Mux.c“ iz “Silicon Laboratories IDE“ programa, uz odgovarajuće promene. Ukupno vreme uzorkovanja A/D konvertora po ulazu je Tsample = Tsettle + Tconvert |2^n| Tsettle = ln ----- * Rtotal * Csample |SA| Rtotal = 115Kohm, Csample = 5uF => Tsettle = 4.783uS ~ 5uS Tconvert = 10 * SAR [takt u s] SAR takt ~ 3MHz Tconvert = 3.6us ~ 4 us Tsample ~ 10us - ovo je minimalno vreme uzorkovanja ***********************************************************************************************/ #include <C8051F310.h> #include <stdio.h> sfr16 ADC0 = 0xBD; /* 10-bit rezultat A/D konvertora */ /**** Globalne konstante ****/ #define SYSCLK 11059200 /* frekvencija takta u Hz */ #define BAUDRATE 115200 /* "baud rate" UART-a u bps*/ #define ANALOGNI_ULAZI 3 /* definisanje broja analognih ulaza koji se mere */ #define INT_DEC 256 /* Integrate and decimate ratio */ #define TIMER0_RELOAD_HIGH 0 /* definisanje višeg bajta tajmera 0 */ #define TIMER0_RELOAD_LOW 255 /* definisanje nižeg bajta tajmera 0 */ /***********************************************************************************************/ #define LCD_DATA P2 /* definisanje porta 2 za slanje komandi LCD-u */ sbit LCD_RS = P1^5; /* dodeljivanje oznaka pinovima porta 1 */ sbit LCD_RW = P1^6; sbit LCD_EN = P1^7; sbit LCD_DB7 = P2^7; /***********************************************************************************************/ void Oscillator_Init(void); void Port_IO_Init(void); void Timer2_Init(void); void ADC0_Init(void); void UART_Init(void); void Timer0_wait(int ms); void LCD_init(void); void LCD_busy(void); void LCD_command(unsigned char var); void LCD_sendstring(unsigned char *var); /***********************************************************************************************/
z
xya
Kod inicijalizacije kontrolera i LCD-a
- 46 -
/**** Globalne promenljive ****/ long REZULTAT[ANALOGNI_ULAZI]; unsigned char idata MAPA_PINOVA[ANALOGNI_ULAZI] = 1,2,4; /* analogni ulazi koji se mere */ unsigned char AMUX_ULAZ = 0 ; /* pocetni ulaz AMUX-a */ /***********************************************************************************************/ /**** MAIN rutina ****/ void main (void) unsigned char i; unsigned long merenje; PCA0MD &= ~0x40; /* WDTE = 0 - resetovanje "watch dog timera" i aktiviranje */ Oscillator_Init(); /* inicijalizacija sistemskog takta na 11.0592 MHz */ Port_IO_Init(); /* inicijalizacija "crossbar-a" */ Timer2_Init(); /* inicijalizacija tajmera 2 da generiše interapt za aktiviranje A/D konverzije */ ADC0_Init(); /* inicijalizacija A/D konvertora (ADC0) */ UART_Init(); /* inicijalizacija UART-a */ LCD_init(); /* inicijalizacija LC displeja */ LCD_command (0x80); /* kursor je na prvoj liniji displeja u prvoj koloni*/ LCD_sendstring("Sistemi za akvi-"); /* ispisuje se tekst u prvoj liniji displeja */ LCD_command (0xC0); /* kursor prelazi u drugu liniju displeja u prvu kolonu */ LCD_sendstring("ziciju podataka "); /* ispisuje se tekst u prvoj liniji displeja */ LCD_command (0x01); /* "obriši" displej */ LCD_command (0x80); /* kursor je na prvoj liniji displeja u prvoj koloni*/ LCD_sendstring("Sistemi za rad u"); /* ispisuje se tekst u prvoj liniji displeja */ LCD_command (0xC0); /* kursor prelazi u drugu liniju displeja u prvu kolonu */ LCD_sendstring("realnom vremenu "); /* ispisuje se tekst u drugoj liniji displeja */ EA = 1; /* omoguci sve interapte */ TR2 = 1; /* aktiviranje tajmera 2 */ while (1) EA = 0; /* onemoguci "interapte"*/ printf("\f"); for(i = 0; i < ANALOGNI_ULAZI; i++) merenje = (REZULTAT[i] - 8) * 3268 / 1023; printf("P1.%bu voltage: %4ld mV\n",MAPA_PINOVA[i],merenje); EA = 1; /* ponovo omoguci "interapte" */ Timer0_wait(10); /* vreme cekanja pre izbacivanja novih rezultata merenja */ /***********************************************************************************************/ void Oscillator_Init(void) int i = 0; /* brojac kašnjenja */ OSCXCN = 0x67; /* aktiviranje eksternog kristalnog oscilatora */ for (i = 0; i < 256; i++); /* potrebno vreme cekanja za aktiviranje eksternog oscilatora */ while ((OSCXCN & 0x80)== 0); /* cekaj dok se eksterni oscilator ne stabilizujetj. dok se XTLVLD "flag" u OSCXCN registru ne postavi na ´1´ */ RSTSRC = 0x06; /* aktiviranje "missing clock detector-a" i resetovanje Vdd monitora */ CLKSEL = 0x01; /* odabir eksternog oscilatora kao izvor sistemskog takta*/ OSCICN = 0x00; /* deaktiviranje internog oscilatora kontrolera */ /***********************************************************************************************/
z
xya
Kod inicijalizacije kontrolera i LCD-a
- 47 -
/**** Inicijalizacija portova ****/ /* * P0.0 - ne koristi se * P0.1 - ne koristi se * P0.2 - XTAL1 ulaz 1 eksternog oscilatora * P0.3 - XTAL2 ulaz 2 eksternog oscilatora * P0.4 - UART Tx (push-pull) * P0.5 - UART Rx (open-drain) * P0.6 - ne koristi se * P0.7 - ne koristi se * P1.0 - FS (odabir pune skale akcelerometra)- digitalni izlaz * P1.1 - Voutz (ulaz A/D konvertora) - analogni ulaz * P1.2 - Voutx (ulaz A/D konvertora) - analogni ulaz * P1.3 - ST (samotestiranje akcelerometra) - digitalni izlaz * P1.4 - Vouty (ulaz A/D konvertora) - analogni ulaz * P1.5 - RS (odabir registra LCD-a) - digitalni izlaz * P1.6 - LCD_R/W (upis ili citanje LCD-a) - digitalni izlaz * P1.7 - LCD_EN (dozvola rada LCD-a) - digitalni izlaz * P2.0 - DB0 (LSB) * P2.1 - DB1 * P2.2 - DB2 * P2.3 - DB3 * P2.4 - DB4 * P2.5 - DB5 * P2.6 - DB6 * P2.7 - DB7 (MSB - "Busy flag") * P3.0 - C2D (pin C2 interfejsa) * P3.1 - ne koristi se * P3.2 - ne koristi se * P3.3 - S1 START/STOP (taster) * P3.4 - S2 TESTIRANJE (taster) ***********************************************************************************************/ void Port_IO_Init (void) P0SKIP = 0x0C; /* "preskakanje" analognih pinova porta 0 od strane "Crossbar-a"*/ P1SKIP = 0xFF; /* "preskakanje" pinova porta 1 od strane "Crossbar-a" */ P2SKIP = 0x0F; /* "preskakanje" pinova porta 2 od strane "Crossbar-a" */ P3 = 0x18; /* postavljanje "latch-a" portova P3.3 i P3.4 na ¨1¨*/ XBR1 = 0x40; /* aktiviranje "Crossbar-a" i unutrašnjih pull-up otpornika*/ XBR0 = 0x01; /* aktiviranje UART-a */ P0MDOUT = 0x10; /* konfigurisanje pinova porta 0, aktiviranje Tx (P0.4) UART-a kao push-pull */ P1MDOUT = 0xE9; /* konfigurisanje pinova porta 1, P1.0, P1.1, P1.4, P1.6, P1.7 -digitalni izlazi */ P2MDOUT = 0xF7; /* konfigurisanje pinova porta 2, P2.X (X=0,1,..,7) - digitalni izlazi */ P3MDOUT = 0x18; /* konfigurisanje pinova porta 3, P3.3, P3.4 - push-pull */ P0MDIN = 0xF3; /* konfigurisanje pinova porta 0, P0.2 i P0.3 - analogni ulazi */ P1MDIN = 0xE9; /* konfigurisanje pinova porta 1, P1.1, P1.2 i P1.4 - analogni ulazi */ P3MDIN = 0x18; /* konfigurisanje pinova porta 3, P3.3, P3.4 - digitalni ulazi */ /***********************************************************************************************/ /***** Inicijalizacija Tajmera 2****/ void Timer2_Init(void) TMR2CN = 0x00; /* deaktiviranje tajmera 2 */ CKCON = 0x1B; /* tajmer 0 koristi 1/12 "prescaler", tajmer 1 koristi sistemskitakt, tajmer 2 koristi sistemski takt/12 */ TMR2RLL = 0xFB; /* vrednost na koju se vraca niži bajt tajmera 2 - "autoreload" */ TMR2RLH = 0xFE; /* vrednost na koju se vraca viši bajt tajmera 2 - "autoreload" */ TMR2L = 0xFB; /* pocetna vrednost nižeg bajta tajmera 2 */ TMR2H = 0xFE; /* pocetna vrednost višeg bajta tajmera 2*/ ET2 = 1; /* aktiviranje zahteva za "interapt" generisanih od TF2L ili TF2H "flag-a" tj. "interapt-e" generisane prekoracenjem nižeg ili višeg bajta tajmera 2 */ /***********************************************************************************************/
z
xya
Kod inicijalizacije kontrolera i LCD-a
- 48 -
/**** Inicijalizacija A/D konvertora (ADC0) *****/ void ADC0_Init(void) ADC0CN = 0x02; /* A/D konvertor deaktiviran, konverzija pocinje prekoracenjem tajmera 2 */ REF0CN = 0x0A; /* izabran referenti napon Vdd, aktiviran unutrašnji "bias" generator */ AMX0P = MAPA_PINOVA[0]; /* početni pozitivni port čiji se ulaz meri P1.1, konverzija počinje prekoračenjem višeg bajta tajmera 2 i zatim na svako prekoračenje tajmera 2 menjaju se analogni ulazi koji se dovode na AMUX (Vx (P1.2), Vy (P1.4), Vz(P1.1))*/ AMX0N = 0x1F; /* izbor negativnog ulaza AMUX-a (GND), jednostrani režim rada */ ADC0CF = ((SYSCLK/3000000)-1)<<3; /* SAR takt podešen na 3 MHz */ ADC0CF |= 0x18; /* "desno-poravnani" rezultat A/D konverzije */ AD0EN = 1; /* aktiviranje A/D konvertor (ADC0) */ EIE1 = 0x08; /* omogući interapte A/D konvertora */ /***********************************************************************************************/ /**** Inicijalizacija UART-a ****/ void UART_Init(void) SCON0 = 0x10; /* 8-bitni režim rada, nivo stop bita ingorisan, omogucen prijem (Rx)*/ /**** Inicijalizacija Tajmera 1 ****/ TMOD = 0x20; /* tajmer 1 u modu 2, 8-bitni brojac/tajmer */ TH1 = 0xD0; /* podešavanje brzine UART-a na 115200 kbps */ TL1 = TH1; TR1 = 1; /* aktiviranje tajmera 1 */ TI0 = 1; /* "interapt flag" TX0 */ /***********************************************************************************************/ /**** Tajmer 2 "interapt" ****/ void Timer2_ISR(void) interrupt 5 TF2H = 0; /* postavi "interapt flag" tajmera 2 na ´0´*/ if (AMUX_ULAZ == ANALOGNI_ULAZI-1) AMX0P = MAPA_PINOVA[0]; else AMX0P = MAPA_PINOVA[AMUX_ULAZ + 1]; /***********************************************************************************************/ /**** Interapt A/D konvertora ****/ void ADC0_ISR (void) interrupt 10 static unsigned int_dec = INT_DEC; /* brojač, novi rezultat se izbacuje kada je int_dec jednak 0 */ static long accumulator[ANALOGNI_ULAZI] = 0x00000000; /* akumulator A/D uzoraka */ unsigned char i; AD0INT = 0; /* resetuj "flag" završene A/D konverzije */ accumulator[AMUX_ULAZ] += ADC0; /* očitaj vrednost A/D konverzije i dodaj ga ukupnoj sumi */ if(AMUX_ULAZ == (ANALOGNI_ULAZI - 1)) /* resetuj brojač "int_dec" i AMUX_ULAZ ako je poslednji ulaz ocitan */ int_dec--; /* obnovi int_dec brojač kada je poslednji analogni ulaz semplovan */ if (int_dec == 0) /* ako je "0", posalji srednji rezultat */ int_dec = INT_DEC; /* resetovanje brojaca */ for(i = 0; i < ANALOGNI_ULAZI; i++) /* kopiraj sve usrednjene vrednosti A/D konverzijeu niz REZULTAT */ REZULTAT[i] = accumulator[i] / int_dec; /* kopiraj usrednjene vrednosti u REZULTAT */ accumulator[i] = 0x00000000; /* resetuj akumulator */
z
xya
Kod inicijalizacije kontrolera i LCD-a
- 49 -
AMUX_ULAZ = 0; /* postavi na pocetni AMUX ulaz */ else AMUX_ULAZ++; /* predji na sledeći analogni ulaz */ /***********************************************************************************************/ /**** Tajmer 0 ****/ void Timer0_wait(int ms) TH0 = TIMER0_RELOAD_HIGH; /* definisanje višeg bajta tajmera 0 */ TL0 = TIMER0_RELOAD_LOW ; /* definisanje nižeg bajta tajmera 0 */ TMOD |= 0x01; /* tajmer 0 u 16-bitnom modu */ TR0 = 1; /* aktiviranje tajmera 0 */ while(ms) TF0 = 0; /* resetovanje "interapt flag-a" tajmera 0 */ while(!TF0); /* čekaj dok "interapt flag" tajmera 0 ne postanje ´1´*/ ms--; /* smanji vrednost za jedan */ TR0 = 0; /* deaktivacija tajmera 0 */ /***********************************************************************************************/ /**** Inicijalizacija LC displeja *********************************************************************/ void LCD_busy(void) LCD_DB7 = 1; /* postavljanje "busy flag-a" na "1" */ LCD_EN = 1; /* aktiviranje LCD-a za citanje/upis */ LCD_RS = 0; /* Selektovanje komandnog registra */ LCD_RW = 1; /* čitanje displeja */ while(LCD_DB7) /* čitanje "busy flag-a" dok ne bude "0" */ LCD_EN = 0; /* omogući prelaz "high to low" */ LCD_EN = 1; /***********************************************************************************************/ void LCD_init(void) LCD_DATA = 0x38; /* funkcijski set, 2 linije, 8-bitni mod, 5x8 tacaka */ LCD_RS = 0; /* selektovanje instrukcijskog registra "command register"*/ LCD_RW = 0; /* upis u registar podataka "data register" */ LCD_EN = 1; /* omoguci prelaz "high to low" */ LCD_EN = 0; LCD_busy(); /* čekaj da LCD obradi komandu */ LCD_DATA = 0x0F; /* displej aktiviran, komanda "kursor trepce" */ LCD_RS = 0; /* selektovanje instrukcijskog registra "command register"*/ LCD_RW = 0; /* upis u registar podataka "data register" */ LCD_EN = 1; /* omoguci prelaz "high to low" */ LCD_EN = 0; LCD_busy(); /* cekaj da LCD obradi komandu */ LCD_DATA = 0x01; /* "obriši" displej */ LCD_RS = 0; /* selektovanje instrukcijskog registra "command register"*/ LCD_RW = 0; /* upis u registar podataka "data register" */ LCD_EN = 1; /* omoguci prelaz "high to low" */ LCD_EN = 0; LCD_busy(); /* Cekaj da LCD obradi komandu */ LCD_DATA = 0x06; /* mod upisa, auto inkrementiranje bez pomeranja */ LCD_RS = 0; /* selektovanje instrukcijskog registra "command register"*/ LCD_RW = 0; /* upis u registar podataka "data register" */ LCD_EN = 1; LCD_busy(); /* čekaj da LCD obradi komandu */ /***********************************************************************************************/
z
xya
Kod inicijalizacije kontrolera i LCD-a
- 50 -
void LCD_command(unsigned char var) LCD_DATA = var; /* slanje komandi displeju */ LCD_RS = 0; /* selektovanje instrukcijskog registra "command register"*/ LCD_RW = 0; /* upisujemo u registar instrukcija */ LCD_EN = 1; /* omoguci prelaz "high to low" */ LCD_EN = 0; LCD_busy(); /* čekaj da LCD obradi komandu */ /***********************************************************************************************/ void LCD_senddata(unsigned char var) LCD_DATA = var; /* slanje podataka koje displej treba da prikaže */ LCD_RS = 1; /* selektovanje registra podataka "data register" */ LCD_RW = 0; /* upisujemo podatak koji zelimo da prikazemo */ LCD_EN = 1; /* omoguci prelaz "high to low" */ LCD_EN = 0; LCD_busy(); /* čekaj da LCD obradi komandu */ /***********************************************************************************************/ void LCD_sendstring(unsigned char *var) while(*var) /* salje podatke dok se "string" ne završi */ LCD_senddata(*var++); /* slanje karaktera jedan po jedan */ /***********************************************************************************************/ 9. Korišćena literatura [1] www.wikipedia.org [2] www.silabs.com [3] www.st.com [4] www.keil.com [5] www.8051projects.net