komunikacije - spies.elfak.ni.ac.rs/files/djordjevic-djordjevic-spi-pics.doc · web viewseminarski...

99
ELEKTRONSKI FAKULTET ELEKTRONSKI FAKULTET SEMINARSKI RAD IZ MIKROPROCESORA SEMINARSKI RAD IZ MIKROPROCESORA MENTOR: PROF. DR MILE STOJČEV MENTOR: PROF. DR MILE STOJČEV KOMUNIKACIJA MIKROKONTROLERA KOMUNIKACIJA MIKROKONTROLERA PIC16F877-20 PREKO SPI MODULA PIC16F877-20 PREKO SPI MODULA Mikroprocesorski sistemi –seminarski rad 1

Upload: others

Post on 08-Feb-2020

53 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

ELEKTRONSKI FAKULTETELEKTRONSKI FAKULTETSEMINARSKI RAD IZ MIKROPROCESORASEMINARSKI RAD IZ MIKROPROCESORA

MENTOR: PROF. DR MILE STOJČEVMENTOR: PROF. DR MILE STOJČEV

KOMUNIKACIJA MIKROKONTROLERAKOMUNIKACIJA MIKROKONTROLERA PIC16F877-20 PREKO SPI MODULAPIC16F877-20 PREKO SPI MODULA

DUŠAN ĐORĐEVIĆ 10797DUŠAN ĐORĐEVIĆ 10797ŽARKO ĐORĐEVIĆ 10798ŽARKO ĐORĐEVIĆ 10798

Mikroprocesorski sistemi –seminarski rad1

Page 2: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

SADRŽAJ

O SEMINARSKOM RADU 3MIKROKONTROLERI I EMBEDDED SISTEMI 4SPI KOMUNIKACIJA 10PIC16F877 21SOFTVER ZA PIC MIKROKONTROLERE 48KOMUNIKACIJA MIKROKONTROLERA PREKO SPI MODULA:PRAKTIČNA REALIZACIJA 55LABORATORIJSKA VEŽBA 61ZAKLJUČAK 65KORIŠĆENA LITERATURA 66PRILOG 67O AUTORIMA SEMINARSKOG RADA 77

Mikroprocesorski sistemi –seminarski rad2

Page 3: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

O SEMINARSKOM RADU

Autori su realizovali ovaj projekat u nameri da studentima približe jedan od način kako mogu da komuniciraju dva mikrokontrolera PIC16F877-20. Ovde je za komunikaciju iskorišćen serijski komunikacioni modul SPI koji je integrisan u mikrokontrolerima.

Mikrokontroleri su programirani preko AllPIC programatora o kojem je priložen kompletan članak na kraju rada, a za pisanje programa korišćen je softver mikroC, koji je razvila i ponudila tržištu beogradska Mikroelektronika.

Električna šema i dizajn štampane pločice (PCB) su kreirani u Protel-u. Realizovanje štampane pločice na vitroplastu je urađeno u niškoj firmi «Denitron» i ovom

prilikom se zahvaljujemo gospodinu Draganu Deniću na ekspeditivnosti i kvalitetu izrade.Posebnu zahvalnost dugujemo profesoru Miletu Stojčevu što nam je pružio priliku da

realizujemo ovaj projekat.

Mikroprocesorski sistemi –seminarski rad3

Page 4: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

1 - MIKROKONTROLERI I EMBEDDED SISTEMI

1-1. MIKROKONTROLERI I MIKROPROCESORI

Mikrokontroler je tzv. «računar-u-čipu» koji se koristi za kontrolu integrisanih kola, sklopova, uređaja itd. Tipičan mikrokontolrer sadrži svu potrebnu memoriju i I/O interfejse (A/D konvertore, serijske i paralelne komunikacione module, tajmere itd.), za razliku od mikroprocesora opšte namene koji zahteva dodatne čipove za obezbeđivanje neophodnih funkcija. Na Slikama 1-1 i 1-2 respektivno su prikazane opšte blok šeme mikroprocesora (CPU) i mikrokontrolera.

ALU

Akumulator

Radni registri

PC SP

kola za taktovanje i sinhronizaciju

kola za prihvatanje

prekida

Slika 1-1. Blok-šema mikroprocesora

Pored gorenavedenih, ovde ćemo izložiti dodatne razlike između mikrokontrolera i mikroprocesora:

Mikroprocesori su najcešće CISC tipa, tako da za kopiranje podataka iz spoljašnje memorije koriste veći broj opkôdova, dok mikrokontroleri jedan ili dva,

Za manipulisanje sa podacima tipa bit, mikroprocesori koriste jedan ili dva tipa instrukcija, dok je kod mikrokontrolera taj broj veći,

Mikroprocesori su projektovani za brzi prenos podataka iz programa sa spoljno adresiranih lokacija u čip, dok se kod mikrokontrolera brzi prenos bitova obavlja u okviru čipa,

Mikroprocesorski sistemi –seminarski rad4

Page 5: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Mikrokontroler može da funkcioniše kao računar bez dodataka spoljnih gradivnih blokova (memorije i U/I uređaja), dok operativnost mikroprocesora bez spoljne memorije i U/I podsistema nije moguća.

Mikrokontroleri se danas koriste u embedded sistemima za upravljanje raznim funkcijama. Naime, oni se veoma često koriste i u situacijama kada treba da se veoma brzo reaguje na spoljne signale – posebno ako se takvi sistemi koriste za rad u realnom vremenu.

Mikrokontroleri su sastavni delovi mnogih vrsta elektronske opreme (pogledati embedded sistemI). Oni čine većinu svih prodatih procesorskih čipova. Preko 50% su "jednostavni" mikrokontroleri, a drugih 50% su specijaliozovani digitalni procesori signala (DSP). Mikrokontroler je prisutan u skoro svakom električnom uređaju, veš mašini, mikrotalasnoj pećnici, telefonu itd.

ALU tajmer/brojač paralelni U/I port

akumulator

registri opšte namene

interni RAM

interni ROM

interni FLASH

SP

PC

serijski U/I port

ADC

DAC

kolo za prekid

kolo za taktovanje

Slika 1-2. Opšta blok-šema mikrokontrolera

Sada ćemo po abecednom redu navesti listu najpoznatijih proizvođača mikrokontrolera:

AMCC Atmel Cypress Microsystem Freescale Semiconductor Fujitsu Holtek

Mikroprocesorski sistemi –seminarski rad5

Page 6: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Intel Microchip National Semiconductor NEC Philips Semiconductor Renesas Tech. Corp. ST Microelectronics Texas Instruments Toshiba Western Design Center Ubicom Xilinx ZiLog BASIC programibilni MCU-ovi.

Za skoro svakog proizvođača „golog” mikrokontrolera, postoji destine malih kompanija

koji ih prepakuju u zgodnija pakovanja za korisnike. Njihovi proizvodi su često MCU sa prethodno napunjenim BASIC prevodiocem, spakovanim u Dual In Line (DIP) kućište zajedno sa regulatorom napajanja i drugim poboljšanjima. PIC-ovi su izgleda ovde vrlo popularni, verovatno zbog dobre statičke zaštite. Moćniji primeri (npr. brže izvršavanje, više RAM-a i prostora za kôd) se izgleda baziraju na Atmel AVR ili Hitachi čipovima.

BASIC Stamp - Veliko ime u BASIC mikrokontrolerima. Nekoliko različitih modula je dostupno sa raznim brzinama obrade, RAM-om, veličinama EEPROM-a. najpopularniji je originalni BASIC Stamp 2 modul. BASIC Stamp koristi Parallac kao platformu za uvodno programiranje i robotske kitove.

SX-Key - Parallax-ov razvojni alat za SX liniju mikrokontrolera, koji podržava sve raspoložive komercijalne SX čipove. Upotrebom besplatnog SX-Key softvera (Assembly jezik), ili SX/B Compiler (BASIC-stil jezika) od Parallax-a, SX-Key programska alatke može programirati SX čipove in-system i izvršiti in-circuit debagovanje na nivou izvornog kôda. ZX serija MCU-a se bazira na Atmel Atmega32 procesorima i pokreću Virtuelnu Mašinu koja ima ugrađen multitasking, matematiku 32-bitnog pokretnog zareza i preko 1k RAM-a za korisnički program. Multitasking unapređuju strukturalniji prilaz kodiranja za interfejs uređaja koji zahtevaju servis upita – npr. serijski uređaji, IR itd.

Programski jezik za ZX seriju je Zbasic, moderni dijalekt Basic-a po uzoru na Microsoft- ov Visual Basic. Najveće poboljšanje u odnosu na tipičan MCU Basic dijalekt su para-metrizovane podrutine/funkcije koje podržavaju lokalne varijable. Stroga provera tipa je sledeće unapređenje koje pomaže bržem pisanju ispravnog programa.

Comfile pravi seriju mikrokontrolera markirani kao Cubloc, koristeći Atmel Atmega128 procesor. Oni su vrlo konkurentni sa cenom, budući da su namenjeni industrijskim aplikacijama, i imaju neke lepe osobine kao što je Ladder Logic u dodatku BASIC-a, ogromnu 80k bajtnu programsku memoriju, i hardver impulsne modulacije.

 1-2. EMBEDDED SISTEMI

Mikroprocesorski sistemi –seminarski rad6

Page 7: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Embedded sistem predstavlja računarski sistem specijalne namene, koji je potpuno zatvoren od strane kontrola uređaja. Za razliku od ličnih računara opšte namene, embedded sistem ispunjava specifične zahteve i izvršava prethodno definisane zadatke. Programibilni hardverski čip je "sirov materijal" i on je programiran određenom aplikacijom. Ovo treba shvatiti samo kao poređenje sa starijim sistemima sa potpuno funkcionalnim hardverom, ili opšte namenskim hardverom, koji imaju učitan softver eksterno.

Embedded sistemi su kombinacija hardvera i softvera koji omogućavaju laku serijsku proizvodnju i raznovrsnost aplikacija. U proteklih nekoliko godina interesovanje za ovu vrstu sistema je naglo poraslo, i danas predstavlja nezaobilaznu temu u računarskom svetu.

ISTORIJA

Prvi moderan prepoznatljiv embedded sistem bio je Apollo Guidance Computer, kojeg je razvio Charles Stark Draper u MIT Instrumetation Laboratory. Svaki let do Meseca je imao dva takva. Na njima je bio pokrenut sistem inrecionog navođenja oba komandna modula i LEM-a.

Na početku projekta, Apollo-v kompjuter navođenja je smatran za najriskantniji deo Apollo projekta. Upotreba, u to vreme, novih monolitnih integrisanih kola, da bi smanjili veličinu i težinu, uvećao je rizik. Prvi masovno proizveden embedded sistem bio je kompjuter za navođenje Minuteman projektila 1961. god. To je bio Autonetics D-17 kompjuter za navođenje, sagrađen od logike sa klasičnim tranzistorima i hard diska za osnovnu memoriju.

Apollo Navigacioni Kompjuter

Autonetics D-17 kompjuter za navođenje

Mikroprocesorski sistemi –seminarski rad7

Page 8: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Kada je Minuteman II ušao u serijsku proizvodnju 1966. godine, D-17 je zamenjen sa novim kompjuterom koji je koristio integrisana kola, i to je njegova prva upotreba. Bez ovog programa, integrisana kola možda nikada ne bi dostigla primenljivu tačku cene.

Glavna karakteristika dizajna Minuteman kompjutera je to što je njegov algoritam navođenja bilo moguće kasnije reprogramirati u programu, da bi projektil bio precizniji, a takođe i da se uradi kompjuterska provera projektila, što je smanjilo težinu kablova i konektora.

PRIMERI EMBEDDED SISTEMA automatske mašine za brojanje novca avijaciona elektronika, kao što je inercioni navigacioni sistemi, kontrola avionskog

hardvera/softvera i drugih integrisanih sistema u avionima i projektilima mobilni telefoni i telefonski tasteri kompjuterska mrežna oprema, uključujući rutere, servere vremena i firewall-ovi kompjuterski štampači kopir mašine pogon diska (flopi i hard disk pogon) kontroleri motora i kontroleri antiblokade kočnica za automobile proizvodi za kućnu automatizaciju, poput termostata, klima, prskalica i sistemi

obezbeđenja ručni kalkulatori kućni aparati, uključujući mikrotalasne rerne, mašine za pranje veša, televizija, DVD

plejeri/snimači medicinska oprema merna oprema kao što su digitalni osciloskopi, logički analajzeri i spektralni analajzeri multifunkcijski ručni satovi multifunkcijskii štampači (MFP) lični digitalni asistent (personal digital assistant - PDA), to jest, mali ručni kompjuteri

sa PIM-ovima i drugim aplikacijama mobilni telefoni sa dodatnim sposobnostima, na primer, mobilni digitalni pomoćnik sa

telefonom i PDA i Java (MIDP) programibilni logički kontroleri (PLC-ovi) za industrijsku automatizaciju i nadgledanje stacionarna video igračka konzola i ručne igračke konzole prenosivi kompjuter.

KARAKTERISTIKE

Embedded kompjuterski sistemi obrazuju najširu moguću upotrebu kompjuterskih sistema; on uključuje sve kompjutere koji su drugačiji od onih koji su izričito kompjuteri opšte namene. Primeri embedded sistema idu od malih muzičkih plejera do kontrolnih sistema u realnom vremenu poput onih u svemirskim brodovima. Oni su osobeni po obezbeđivanju funkcije, ili funkcija, koje nisu same po sebi kompjuterske.

Većina komercijalnih embedded sistema su dizajnirani tako da izvrše odabrane funkcije po najnižoj ceni. Većina, ali ne i svi embedded sistemi, imaju sisteme u realnom vremenu (real-time) koji moraju da rade u tehničkim granicama. Ovi sistemi ponekad moraju biti vrlo brzi za neke funkcije, ali većina drugih funkcija verovatno ne zahteva brzinu. Ovi sistemi

Mikroprocesorski sistemi –seminarski rad8

Page 9: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

zadovoljavaju njihove tehničke granice sa kombinacijom hardvera specijalne namene i softvera skrojenog prema zahtevu sistema.

Teško je označiti embedded sisteme prema njihovoj brzini, ili ceni, ali za sisteme visoke proizvodnje, cena će često dominirati u odnosu na sistemski dizajn. Srećom, većina sistema ima ogrančene real-time zahteve koji se mogu ispuniti sa kombinacijom prilagođenog hardvera i ograničene količine softvera visokih performansi. Uzmite na primer vrhunski digitalni set za satelitsku televiziju. Čak iako takvi sistemi treba da obrade desetine megabajta kontinualnih podataka u sekundi, većina teškog posla je urađena od strane prilagođenog hardvera koji raščlanjuje, upućuje i dekodira višekanalni digitalni niz (stream) u jedan video izlaz. Embedded CPU-u je prepušteno da odredi putanju podataka, upravlja prekidima (interruts) granica frejmova, generiše i prikaže grafiku itd. da bi omogućio vrhunski izgled i osećaj. Zato će češće mnogi delovi embedded sistema zahtevati niže performanse za razliku od primarnog cilja sistema. Ovo omogućava arhitekturi embedded sistema da bude namerno pojednostavljen zbog niže cene u odnosu na opštenamenski kompjuter koji radi isti zadatak upotrebom CPU-a koji je "dovoljno dobar" za one sekundarne funkcije.

Za embedded sisteme koji nisu visokoserijski, lični računari često mogu da se uzmu u razmatranje da li ograničavanjem softvera ili zamenom operativnog sistema sa real-time operatinim sistemom. U tom slučaju hardver specijalne namene može biti zamenjen sa jednim ili više CPU-a visoke performance. Ipak, neki embedded sistemi mogu zahtevati i visokoperformansni CPU, specijalizovan hardver, i ogromnu memoriju da bi izvršio traženi zadatak.

U domenu visokoserijskih embedded sistema, npr. muzičkih plejera, smanjenje cene postaje osnovna briga. Ovi sistemi često imaju samo nekoliko čipova, visoko integrisan CPU, prilagođen čip koji kontroliše sve druge funkcije i jedan memorijski čip. U ovakvom dizajnu svaka komponenta je odabrana i projektovana da bi smanjila cenu koštanja.

Napisan softver za većinu embedded sistema, pogotovu za one bez diska se ponekad naziva firmware, ime za softver koji je ugrađen u hardverski uređaj, napr. u jedan ili više ROM/Flash memorijskih IC čipova.

Programi u embedded sistemima često rade unutar real-time granica sa ograničenim resursima: često nema disk, operativni sistem, tastaturu ili ekran. Softver možda nema ništa daljinsko poput fajl sistema, ili ako je prisutan, flash disk možda zamenjuje rotirajući medij. Ako je korisnički interfejs prisutan, onda je to mala tastatura i displej sa tečnim kristalom (LCD).

Embedded sistemi se nalaze u mašinama od kojeih se očekuje dugogodišnji rad bez grešaka. Stoga je obično softver i firmware razvijen i testiran pažljivije nego softver za lične kompjutere. Mnogi embedded sistemi izbegavaju mehanički pokretne sisteme kao što su hard diskovi, prekidači ili tasteri jer što su nepouzdani za razliku od stalnih delova poput Flash memorije.

Pored toga, embedded sistemi mogu biti izvan domašaja ljudi (duboko u petrolejskim bušotinama, izbačeni u svemir itd.) pa moraju biti u mogućnosti da se samostalno resetuju čak i pri katastrofalnim greškama u podacima. Ovo je uglavnom postignuto sa standardnim elektronskim delovima nazvanim watchdog tajmer koji resetuje kompjuter ukoliko softver povremeno ne resetuje tajmer.

Mikroprocesorski sistemi –seminarski rad9

Page 10: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

2 – SPI KOMUNIKACIJA

SPI (Serial Peripheral Interface) standard za sinhronu serijsku komunikaciju razvijen je od strane Motorolinih inženjera, za potrebu brzog i pouzdanog serijskog prenosa podataka na manjim rastojanjima (do 3m). Prvobitno, ovaj standard je bio predviđen za komunikaciju sa perifernim uređajima, ali je vremenom razvijena i mogućnost komunikacije između više mikro-kontrolera ili mikroprocesora .

Postoji široka paleta perifernih uređaja baziranih na SPI – od običnih TTL pomeračkih (shift) registara, do SPI memorija, displeja, A/D konvertora itd.

Tip komunikacije Maksimalna brzina KomentarSCI 125 Kb/s MCU takt = 2MHzSPI 1 Mb/s MCU takt = 2MHz, MasterSPI 2 MB/s MCU takt = 2MHz, Slave

Tabela 2-1. Poređenje brzina komunikacija preko SCI i SPI

Tabela 2-1 pokazuje kako je SPI komunikacija oko 10 puta brža od SCI komunikacije (Standard Communication Interface) kada mikrokontroler radi kao master, i oko 20 puta brža kada mikrokontroler radi kao slave. Takođe se vidi da kada mikrokontroler radi kao slave, moguća je brzina prenosa podataka jednaka internom taktu mikrokontrolera.

Napomena: Motorola je svoj serijski asinhroni/sinhroni interfejs nazvala “Serijski ko-munikacioni interfejs” (Serial Communications Interface, ili SCI). Odgovarajući Intel-ov serijski interfejs nosi naziv “Programibilni komunikacioni interfejs” (Programmable Communication Interface, ili PCI) itd. U praksi, pomenuti interfejs koriste U(S)ART či-povi, odnosno U(S)ART integrisana kola, kao na primer: Intel 8251, INS 8250-B INS 16450, 16550 itd.

2-1. SPI PROTOKOL

Pri SPI prenosu, podaci se šalju preko pomeračkog registra sa serijskim izlazom, a pri-maju preko pomeračkog registra sa serijskim ulazom. U bilo kom trenutku može da postoji je-dan master, kako bi se osigurala ispravna komunikacija.

Mikroprocesorski sistemi –seminarski rad10

Page 11: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Kao što je prikazano na Slici 2-1 potrebne su 4 linije, odnosno za SPI komunikaciju koriste se 4 pina:

MOSI (Master Output Slave Input). Kada mikrokontroler radi kao master, onda je ovo li-nija za slanje podataka, a kada radi kao slave – ovo je linija za primanje podataka.

MISO (Master Input Slave Output). Kada mikrokontroler radi kao master, onda je ovo linija za primanje podataka, a kada radi kao slave – ovo je linija za slanje podataka. U slu-čaju da je komunikacija isključivo jednosmerna, svakako da se može ostvariti sa tri linije (bez MOSI ili MISO, zavisno od slučaja).

SCK (SPI Clock). Ovo je linija za takt pod kojim se izvodi komunikacija. Takt daje master, a pomerački registar slave-a prima podatke, odnosno očitava ulaz na promenu ovog takta.

SS (Slave Select). Ovaj pin mikrokontrolera se veže na liniju za selektovanje slave-a. Kada mikrokontroler radi kao slave, i kada je ovaj (u slučaju ulazni) pin na visokom nivou, onda se takt sa SCK linije i podaci sa MOSI linije se ignorišu. Tek kada se dovede SS na nizak nivo, SPI sistem slave-a prati promene na pinovima koji su vezani za ovaj tip ko-munikacije i može da primi i pošalje informaciju. Kada mikrokontroler radi kao master, SS pin ima dve opcije. Može da se konfiguriše kao ulazni pin i da setuje određeni fleg (f lag), tj. da inicira prekid u slučaju da mu bude doveden nizak nivo. To je dobra opcija za među-procesorsku komunikaciju. Na ovaj način može uspešno da se eliminiše mogućnost da više mikrokontrolera u datom trenutku pokušaju da budu masteri. Ovo se rešava soft-verski. SS pin takođe može da se konfiguriše kao izlazni, i da selektuje neki slave, ili da obavlja bilo kakvu funkciju nezavisnu od SPI podsistema mikrokontrolera.

Slika 2-1. Povezivanje jednog mastera i tri slave-a u SPI komunikaciju

U slučaju povezivanja više mikrokontrolera preko SPI kanala, svi MISO pinovi se vezuju zajedno na jednu liniju, MOSI pinovi se vezuju na drugu liniju, a SCK pinovi se vezuju na tre-ću liniju, kao sto je prikazano na Slici 2-1.

Mikroprocesorski sistemi –seminarski rad11

Page 12: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 2-1 je primer vezivanja kada samo jedan mikrokontroler može da bude master. Ako uloga mastera treba da bude promenljiva, onda svaki mikrokontroler treba da ima pojedinač-nu vezu sa SS pinovima ostalih mikrokontrolera.

Zamislimo strukturu sa dva pomeračka registra povezana kao na Slici 2-2. Neka sa strane sa koje su povezani medusobno, registri imaju serijske ulaze i izlaze. Sa stanovišta programera, kakvi su ulazi i kakva je logika – nije bitno. Pinovi za podatke (DATA1) su povezani zajedno, i to predstavlja jednosmernu liniju sa koje pomerački registar 1 predaje podatke pomeračkom registru 2. Pinovi za podatke (DATA2) su povezani zajedno, i to je jed-nosmerna linija sa koje pomerački registar 2 predaje podatke pomeračkom registru 1. Pinovi za takt (CLOCK) su zajednički (to je jednosmerna linija sa koje pomerački registar 1 šalje takt, bez razlike u kojem smeru se prenose podaci). Pinovi za omogućavanje komunikacije (ENABLE) su vezani zajedno – to je jednosmerna linija preko koje pomerački registar 1 omo-gućava (dozvoljava) rad pomeračkom registru 2.

Kada prvi pomerački registar šalje poruku drugom, redosled operacija je sledeći:

1. Preko linije ENABLE, prvi registar omogućava rad drugom, odnosno omogućava da drugi na svakom prelazu na liniji CLOCK iz visokog na nisko nivo (ili obrnuto, zavisno od logike), pročita stanje na liniji DATA1.

2. Preko linije CLOCK prvi registar šalje takt pod kojim drugi čita promene na liniji za podatke DATA1.

3. Kada prvi registar završi sa prenosom, postavlja linije CLOCK i ENABLE u stanje mirovanja (idle state). 

Slika 2-2. Hardverska šema SPI komunikacije

Kada prvi registar želi da dobije informaciju od drugog, preduslov koji treba da se ispuni je da drugi registar već ima spremnu informaciju koju treba da pošalje. Poslednja pretpostav-ka u analogiji međumikrokontrolerske SPI komunikacije podrazumeva da je u registar za sla-nje slave-a programski već postavljena informaciju koja se traži. Redosled operacija je:

1. Preko linije ENABLE, prvi pomerački registar omogućava rad drugom ili, preciz-nije, omogućava da drugi pri svakom prelazu iz visokog na nisko nivo na liniji CLOCK (ili obrnuto, zavisno od logike), promeni stanje na liniji DATA2.

2. Preko linije CLOCK prvi šalje takt sa kojim će čitati promene stanja koje šalje drugi na liniju za podatke DATA2. Obrnuto rečeno, drugi pomerački registar preko linije CLOCK dobija takt pod kojim će slati signale.

Mikroprocesorski sistemi –seminarski rad12

Page 13: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

3. Kada drugi završi sa prenosom, onda prvi postavlja linije CLOCK i ENABLE u sta-nje mirovanja. Prvi «zna» da je prenos završen kada se na liniji CLOCK završi n-ti ciklus (n je broj bitova koji čini informaciju, na primer: 8, 16 itd.)

Ovo je primer koji opisuje SPI logiku, a pri tome ne ulazi u pojedinosti interne periferije samog mikrokontrolera. Relativno je lako da se pošalje poruka preko SPI kanala od mastera ka slave-u. Ono što želimo da naglasimo jeste način slanja podataka slave-master.

U kom trenutku treba slave da pošalje poruku, odlučuje master. On tada šalje takt na lini-lju CLOCK. Da bi poslao takt, zbog automatizovane SPI kontrolne i upravljačke logike, master, u stvari, mora da pošalje poruku na magistralu i normalno da selektuje slave-a. 

Sve što je navedeno opisuje suštinu SPI komunikacije. Svakako da ima mnogo detalja koji variraju u zavisnosti od mikrokontrolera i perifernog uređaja, ali to se mnogo lakše usvaja kada se poznaju osnovni principi.2-2. POLARITET I FAZA TAKTA

Upravljačka SPI logika mastera poseduje dva parametra (CPOL i CPHA) preko kojih se definišu četiri režima (moda) rada (Mode 0, Mode 1, Mode 2 i Mode 3). Na taj način, omogu-ćeno je da master postavi polaritet i fazu takta, kako bi se omogućila velika fleksibilnost za ko-munikaciju između mastera i slave-a.

Na Slici 2-3 prikazan je vremenski dijagram takta (SCK) koji generiše upravljačka SPI logika, uključujući polaritet i fazu takta. koji Neposredno ispod dijagrama data su objašnjenja za sve moguće varijante, odnosno za sva četiri moda.

Slika 2-3. Vremenski dijagram polariteta i faze takta

Pri CPOL=0 (bazična vrednost takta je 0) važi sledeća logika:

Mikroprocesorski sistemi –seminarski rad13

Page 14: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

CPHA=0 (podatak se čita na rastuću, a menja na opadajuću ivicu takta), CPHA=1 (podatak se čita na opadajuću, a menja na rastuću ivicu takta).

Kada je CPOL=1 (bazična vrednost takta je 1) važi logika:

CPHA=0 (podatak se čita na opadajuću, a menja na rastuću ivicu takta), CPHA=1 (podatak se čita na rastuću, a menja na opadajuću ivicu takta).

Na sledećim vremenskim dijagramima (dati su ispod ovog teksta), detaljno su prikazane sve moguće varijante (odnosno, sva četiri moda) vezana za polaritet i fazu takta master-a i slave-a .

Mikroprocesorski sistemi –seminarski rad14

Page 15: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Mikroprocesorski sistemi –seminarski rad15

Page 16: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Mikroprocesorski sistemi –seminarski rad16

Page 17: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

2-3. SPI EEPROM MEMORIJE

U današnje vreme dosta su aktuelni serijski EEPROM-i. U slučaju paralelne spoljašne memorije gube se dragoceni pinovi, tj. celi portovi, što u mnogim aplikacijama predstavlja veliki problem. Serije spoljašne memorije koriste serijski kanal mikrokontrolera koji može da opslužuje više uređaja. Dakle, serijske memorije mogu mnogo lakše da se priključe u sistem, a da pri tom ne zauzimaju veliki broj pinova.

Postoje varijacije na temu serijskih memorija, u zavisnosti od tipa memorije i protokola za komunikaciju. Svakako, tu su neprikosnoveni EEPROM-i zbog lakoće upisivanja i brisanja. Pošto je SPI veoma popularan tip serijske komunikacije, koriste ga mnogi proizvođači mikro-kontrolera i ogroman broj proizvođača periferija.

U narednom tekstu biće ukratko objašneni princip funkcionisanja SPI EEPROM-a, kada želimo da pročitamo njegov sadržaj, i funkcije nekih pinova koji su bitni.

Na Slici 2-4 je prikazana opšta šema 25xx640, Microchip-ovog SPI EEPROM-a po-vezanim sa mikrokontrolerom 68HC11F1. Oznake i funkcije pinova ovog SPI EEPROM-a su sledeći:

CS (Chip Select) Ovaj pin mora da bude na niskom nivou da bi memorija bila se-lektovana.

SI (Serial Input) Serijski ulaz za instrukcije adrese i podatke. Podaci se čitaju (latched) na usponskoj ivici takta.

SO (Serial Output) Serijski izlaz. Podaci na ovom pinu se menjaju na opadajuću ivicu takta.

SCK (Serial Clock) Ulaz za takt.

Mikroprocesorski sistemi –seminarski rad17

Page 18: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 2-4. SPI komunikacija mikrokontrolera i EEPROM-a

ČITANJE

Čip se selektuje dovođenjem niskog nivoa na pin CS. Zatim mora da se pošalje in-strukcija za čitanje na pin SI (u našem slučaju je instrukcija $03). Posle instrukcije za čitanje kontrolna logika memorije očekuje 16-bitnu adresu sa koje treba da pročita sadržaj. Posle ko-rektno primljene instrukcije za čitanje i adrese, traženi sadržaj se postavlja na izlazni pome-rački registar povezan sa pinom SO. Ovaj sadržaj se šalje uz uslov da takt na pinu SCK produži. Podatak sa naredne adrese se čita sa produžavanjem takta na pinu SCK. Tada se unutrašnji adresni pointer inkrementira automatski i novi podatak se izvodi preko SO. Ako se dostigne najveća adresa, adresni brojač dobija vrednost $0000 i odatle se nastavlja čitanje.

ARHITEKTURA SPI MEMORIJE 25xx640

Na Slici 2-5 je prikazana arhitektura SPI memorije 25xx640, čiji je kapacitet 64Kb (or-ganizacija: 8192 x 8 bita). Pošto postoje tri tipa ovog EEPROM-a, u Tabeli 2-2 su date ka-rakteristike svake od njih, dok su na Slici 2-6 data tri tipa kućišta u koje se pakuju pomenute memorije.

Mikroprocesorski sistemi –seminarski rad18

Page 19: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 2-5. Arhitektura SPI EEPROM-a 25xx640

Tabela 2-2. Karakteristike SPI EEPROM-a 25xx640

___

Pored četiri standardna pina bitna za SPI interfejs (CS, SCK, SI, SO), napajanja Vcc i mase (Vss), 25xx640 poseduje i sledeća dva pina:

______

HOLD (pin preko koga se ova memorija, po potrebi, može privremeno «isključiti» iz SPI interfejsa)

WP (Write Protect pin, preko koga se memorija štiti od neželjenog upisa).

Mikroprocesorski sistemi –seminarski rad19

Page 20: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 2-6. Raspored pinova za tri tipa kućišta u koja se smešta 25xx640

Napomena: Ovde je ukratko opisan SPI EEPROM 25xx640 proizvođača Microchip. Naravno, u praksi se veoma često koriste i memorije drugih proizvođača, kao na pri-mer: M25P16 (ST Microelectronics), AT45DB041, AT45DB321 (Atmel) itd. Pošto su veoma slične sa 25xx640, ovde se nećemo baviti njihovim opisom.

A/D KONVERTOR LTC1286

Sada ćemo ukratko opisati analogno-digitalni konvertor LTC1286 firme LTC1286 firme Linear Techology koji komunicira sa mikrokontrolerima preko sinhrone serijske komunikacije SPI. Ovaj ADC radi na principu sukcesivnih aproksimacija. Rezolucija konvertora je 12 bita, što znači da je odnos signal/šum (tačnije: potiskivanje šuma) usled kvantizacije 72dB. Potroš-nja konvertora iznosi tipično 250µA u toku konverzije, a potom se automatski ubacuje u režim smanjene potrošnje – kada nema konverzije, i tada potrošnja iznosi svega 1nA.

Slika 2-6. Blok dijagram analogno-digitalnog konvertora LTC1286

Mikroprocesorski sistemi –seminarski rad20

Page 21: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Interfejs između analogno-digitalnog konvertora i mikrokontrolera ili neke druge periferije je sinhron i serijski. Kompletan prenos podataka je sinhronizovan preko linije takta (CLK). Pri-jem bita od strane mikrokontrolera se vrši na opadajućoj ivici takta, dok je prenos svakog bita koji se šalje od konvertora ka mikrokontroleru vrši na rastućoj ivici takta.

Korišćeni analogno-digitalni konvertor ne zahteva konfiguracionu reč od strane mikro-kontrolera i nema ulaz za prijem podataka Din koji služi i za kaskadno vezivanje više konver-tora. Pošto ovaj konvertor ima dva ulaza D+ i D- on je inicijalno konfigurisan kao diferencijalni ulaz ili jedan običan ulaz ako je drugi vezan na masu. Opadajuća ivica CS signala koji služi za prozivanje konvertora, inicira prenos podatak između konvertora i mikrokontrolera, kao što je prikazano na Slici 2-7.

Slika 2-7. Sekvenca rada analogno-digitalnog konvertora LTC1286

Posle završenog signala takta iako je i dalje prisutan signal CS, analogno-digitalni kon-vertor će da daje logičke nule na svom izlazu. Posle opadajuće ivice signala CS drugi takt im-puls omogućava prenos podataka od konvertora do mikrokontrolera preko linije Dout. Kada se linija CS podigne na visok nivo, konvertor se resetuje i spreman je za novu konverziju.

Mikroprocesorski sistemi –seminarski rad21

Page 22: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

3 - PIC16F877

Mikrokontroler PIC16F877 firme Microchip predstavlja integraciju procesora (CPU), memorije i periferija, pa zato ne zahteva složeni eksterni hardver da bi se ostvario mikroračunarski sistem. Ovaj mikrokontroler je izrađen u CMOS tehnologiji sa ugrađenim FLASH i EEPROM memorijom za memorisanje programa i podataka. PIC16F877 ima tipičnu RISC arhtekturu. Ova arhitektura, kao što je poznato, karakteriše se manjim skupom instrukcija koje se brže izvšavaju od instrukcija kod CISC arhitekture.

Većina mikrokontrolera koji se danas primenjuje je bazirano na Harvard arhitekturi, koja jasno definiše četiri osnovne komponente potrebne za embedded sistem – mikroprocesorsko (CPU) jezgro, memoriju za program (ROM, EPROM ili Flash memorija), memoriju za podatke (RAM), jedan ili više tajmera (podesive i watchdog tajmere), kao i I/O linije za komunikaciju sa eksternim periferijama i dopunskim resursima – sve to treba da bude smešteno u jednom integrisanom kolu.

U ovom poglavlju ćemo detaljno opisati arhitekturu i organizaciju memorije mikrokontrolera PIC16F877. Zatim ćemo posebnu pažnju posvetiti A/D konvertoru (struktura ADC-a i algoritam konverzije) i SPI modulu koji su integrisani unutar mikrokontrolera, s obzirom da su usko povezani sa temom ovog seminarskog rada.

3-1. OSNOVNE KARAKTERISTIKE MIKROKONTROLERA

RISC mikroprocesor veoma visokih performansi 35 instrukcija obima jedne reči Radna frekvencija do 20 MHz Trajanje taktnog intervala 0.2 µs, pri frekvenciji 20 MHz 13-bitni opkôd Harverski magacin (stack) sa osam nivoa Tri načina adresiranja (direktno,indirektno i relativno) Programska flash memorija kapaciteta 8k X 13-bitnih reči Memorija za podatke tipa RAM kapaciteta 368 X 8 bita Memorija za podatke EEPROM tipa kapaciteta 256 X 8 bita Prekidi (do 14 izvora prekida) U/I portovi: A, B, C, D, E Tri tajmera:

o Timer0 (TMR0): 8-bitni tajmer/brojač_događajao Timer1 (TMR1): 16-bitni tajmer/brojač_događajao Timer2 (TMR2): 8-bitni tajmer/brojač_događaja

10-bitni 8-kanalni analogno-digitalni (A/D) konvertor Serijska komunikacija: MSSP, USART Paralelna komunikacija: PSP Power-on Reset - reset pri uključenju napajanja (POR) Power-up timer - unošenje kašnjenja nakon uključenja napajanja (PWRT)

Mikroprocesorski sistemi –seminarski rad22

Page 23: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Oscillator Start-up Timer - unošenje kašnjenja nakon stabilizovanja radne frekvencije oscilatora (OST)

Sleep mode - režim rada sa malim utroškom energije Watchdog tajmer sa sopstvenim integrisanim RC oscilatorom za nezavisni rad Izbor tipa oscilatora Radni napon je u opsegu od 2V do 5.5V Mala potrošnja energije:

<0.6 mA pri naponu od 3V i radnoj frekvenciji od 4 MHz20µA pri naponu od 3V i radnom taktu od 32kHz<1µA u standby režimu rada.

Slika 3-1. Fotografija mikrokontrolera PIC16F877 u kućištu DIP40

Mikroprocesorski sistemi –seminarski rad23

Page 24: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 3-2. Raspored pinova mikrokontrolera u kućištu DIP40

Mikroprocesorski sistemi –seminarski rad24

Page 25: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 3-3. Arhitektura mikrokontrolera PIC16F877

3-2. ARHITEKTURA MIKROKONTROLERA

Na Slici 3-3. je predstavljena (RISC) arhitektura mikrokotrolera PIC16F877, koja poseduje odvojene magistrale za podatke i programski kôd. Obim podataka je 8-bitni, dok je programski kôd 13-bitni. Moguće je protočno izvršenje (pipelining). Sve instrukcije su istog obima (osim instrukcija grananja) i izvšavaju se za četiri taktna intervala. Dakle, ukoliko se koristi oscilator od 4 MHz, ciklus instrukcije traje 1 µs. Kada je oscilator sa kvarcom od 20MHz, ciklus instrukcije traje 200ns. Na slici su, dakle, prikazani osnovni blokovi mikrokontrolera PIC16F877:

Flash programska memorija – 8 kiloreči obima 14 bita RAM (File Registers) – 368 bajtova Aritmetičko-logička jedinica (ALU) Akumulator (Working Register) Hardverski magacin (Stack) organizivan u 8 nivoa EEPROM memorija podataka obima 256 bajtova Višekanalni A/D konvertor, USART (univerzalni sinhroni i asinhroni primopredajnik),

tajmere, portove itd.

3-3. OSCILATOR

Kod mikrokontrolera PIC16F877 postoje četiri konfiguracije oscilatora:

RC Resistor/Capacitor XT Crystal / Resonator LP Low Power Crystal HS High Speed Crystal / Resonator.

Najjednostavnija varijanta je izbor RC oscilatora, a to je ilustrovano na Slika 3-3. Ovakav pristup je ispravan u aplikacijama u kojima se ne zahteva precizna procena vremenskih intervala. Ovde ćemo naglasiti kako je moguće koristiti i RC oscilator koji je integrisan u mikrokontroleru.

Mikroprocesorski sistemi –seminarski rad25

Page 26: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 3-3. Povezivanje eksternog RC oscilatora

Frekvencija oscilovanja zavisi ne samo od vrednosti Rext i Cext, već i od napona napajanja kao i radne temperature. Vrednost otpornika Rext treba da bude u opsegu od 3 KΩ do 100K KΩ. Izvan ovog opsega rad oscilatora nije stabilan i osetljiv je na spoljašne uticaje. Kondenzator Cext se može čak i izostaviti. Međutim, zbog stabilnosti preporučuje se vrednost oko 20pF. Na pinu OSC2/CLKOUT generiše se taktni impuls čija je perioda četiri puta veća od periode rada oscilatora.

Kod vremenski kritičnih aplikacija treba ugrađivati kvarcni oscilator ili keramički rezonator. Vrednosti kondenzatora C1 i C2 (Slika 3-4), treba da budu identične.

Slika 3-4. Povezivanje eksternog kvarca (LP, XT, HS)

Mikrokontroleru PIC16F877 može da se dovede i spoljašnji takt, što je i prikazano na Slici 3-5.

Mikroprocesorski sistemi –seminarski rad26

Page 27: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 3-5. Dovođenje spoljašnjeg takta

U Tabeli 3-1. dat je izbor vrednosti kondenzatora za različite vrednosti frekvencije kristalnog kvarca, dok je u Tabeli 3-2. predložen izbor vrednosti kondenzatora pri različitim vrednostima frekvencije rezonatora.

Na kraju ćemo istaći kako mikrokontroler PIC16F877 može da radi i na frekvenciji 32 KHz, kada ima izuzetno malu potrošnju.

Tabela 3-1. Izbor vrednosti kondenzatora za kvarcni kristal

Mikroprocesorski sistemi –seminarski rad27

Page 28: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

ODNOS IZMEĐU TAKTA I INSTRUKCIJSKOG CIKLUSA

Takt koji se dovodi na pin OSC1 oscilatora u mikrokontroleru deli se na četiri vremenski nepreklapajuća taktna signala nazvana Q1, Q2, Q3 i Q4. Skup ovih signala čine jedan instrukcijski ciklus. U zavisnosti od trenutka generisanja u okviru ciklusa instrukcija, taktni signali Q1-Q4 se koriste za sledeće namene:

Q1 - pribavljanje instrukcije iz programske memorijeQ2 - dekodiranje naredbe iz prethodnog instrukcijskog ciklusaQ3 - izvršenje naredbe iz prethodna dva instrukcijska ciklusaQ4 - prenos opkôda naredbe pozvane u Q1 u instrukcijski registar.

3-4. RESETOVANJE MIKROKONTROLERA

Uloga Reseta je da sve registre mikrokontrolera dovede u početno stanje. Ako se mikrokontroler “blokira” , ili smo ga tek uključili, neophodno je da se resetuje. Kako bi se sprečilo slučajno dovođenje logičke ’0’ na MCLR, potrebno je da se ovaj pin preko otpornika (npr. vrednosti 10KΩ) poveže na pin napajanja Vdd (Slika 3-6).

Postoji nekoliko tipova reseta kod mikrokontrolera PIC16F877 i to su:

Power-on reset (POR) MCLR Reset pri normalnom režimu radu MCLR Reset prilikom SLEEP režima rada WDT Reset pri normalnom radu WDT Wake-up (“buđenje” iz SLEEP režima rada) Brown-out Reset (BOR).

Slika 3-6. Povezivanje MCLR pina na napajanje

Power-on reset (POR) impuls se generiše u samom kolu kada se detektuje porast napona napaja-nja (oko 1.2-1.7 V). Da bi se POR iskoristio, dovoljno je da MCLR pin priključimo na Vdd direktno ili preko otpornika (Slika 3-6). Ukoliko je porast napona napajanja spor, neophodno je na MCLR postaviti spoljnje kolo za reset. Prikaz kola za POR reset je dat na Slici 3-7.

Mikroprocesorski sistemi –seminarski rad28

Page 29: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 3-7. Spoljašnje kolo za POR

Interno POR kolo neće generisati Reset signal kad napon napajanja padne ispod minimuma. Za situacije kada je moguća pojava BROWN-OUT-a (privremeni pad napona ispod minimalne vrednosti), neophodno je da se priključi spoljašnje Brown-out reset kolo, koje je prikazano na Slici 3-8.

Slika 3-8. Kolo za BROWN-OUT RESET (prva varijanta)

Mikroprocesorski sistemi –seminarski rad29

Page 30: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 3-9. Kolo za BROWN-OUT RESET (druga varijanta)

Power-up Timer (PWRT) generiše impuls fiksne širine (nominalno 72 ms) od pojave impulsa POR-a. Za to vreme će mikrokontroler biti u Reset stanju. Za ovaj vremenski period obezbeđuje se da napon napajanja dostigne nominalnu vrednost. Tajmeru PWRT dozvoljava se rad setovanjem PWRTE bita koji pripada konfiguracionoj reči u fazi programiranja čipa. PWRT se taktuje internim RC oscilatorom.

Oscilator Start-up Timer (OST) obezbeđuje kasnjenje od 1024 taktnih intervala nakon isteka kvazistabilne periode PWRT-a (pogledaj Tabelu 3-3). Ovo obezbeđuje da kristalni oscilator ili rezonator startuju stabilnom frekvencijom. OST se aktivira samo kod XT, LP i HS režima rada i to pri: POR i “buđenju” iz SLEEP režima rada.

Mikrokontroler PIC16F877 ima implementiran dvobitni statusni registar nazvan PCON (Power Control Register). Prvi bit nazvan POR setuje se kada se aktivira Power-on-Reset, a resetuje se kada se aktivira neki drugi Reset. Drugi bit (BOR) kada je setovan ukazuje da je aktivno Brown-out stanje (nedozvoljena naponska stanja u napajanju mikro-kontrolera), zbog kojeg takođe može da se aktivira Reset.

Power-upKonfiguracija oscilatora

PWRT omogućenPWRTonemogućen

“Buđenje” iz SLEEP režima rada

XT, HS, LP 72 ms + 1024Tosc

1024 Tosc 1024 Tosc

RC 72 ms - -

Tabela 3-3. Kašnjenja OST-a

Stanja na kojima se postavljaju interni registri CPU-a nakon Reseta zavisi od vrste Reseta i režima rada u kojima se nalazi mikroprocesor (Sleep i normalni).

Stanje nekih registara ostaje nedifinisano, neki zadržavaju svoje stanje, a ostali se postavljaju u unapred definisana stanja (vidi Tabele 4-4 i 4-5).

Mikroprocesorski sistemi –seminarski rad30

Page 31: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Program Counter STATUS registerPower-on reset (POR) 000h 0001 1XXXMCLR reset pri normalnom radu 000h 000U UUUUMCLR reset prilikomSLEEP režima rada 000h 0001 0UUUWDT Reset pri normalnom radu 000h 0000 1UUUWDT Wake-up(buđenje iz SLEEPrežima rada)

PC+1 UUU0 0UUU

Interrupt 004h UUU1 0UUU

Tabela 3-4. Postavljanje registara nakon reseta

Registar Power-on reset

MCLR reset pri:- normalnom režimu- SLEEP mod WDTreset pri normalnom režimu

Buđenje izSLEEP režima- interrupt- WDT time out

00h INDF ---- ---- ---- ---- ---- ----01h TMR0 XXXX XXXX UUUU UUUU UUUU UUUU02h PCL 0000 0000 0000 0000 PC+103h STATUS 0001 1XXX 000Q QUUU UUUQ QUUU04h FSR XXXX XXXX UUUU UUUU UUUU UUUU05h PORTA ---X XXXX ---U UUUU ---U UUUU06h PORTB XXXX XXXX UUUU UUUU UUUU UUUU08h EEDATA XXXX XXXX UUUU UUUU UUUU UUUU09h EEADR XXXX XXXX UUUU UUUU UUUU UUUU0Ah PCLATH ---0 0000 ---0 0000 ---U UUUU0Bh INTCON 0000 000X 0000 000U UUUU UUUU80h INDF ---- ---- ---- ---- ---- ----81h OPTION 1111 1111 1111 1111 UUUU UUUU82h PCL 0000 0000 0000 0000 PC+183h STATUS 0001 1XXX 000Q QUUU UUUU UUUU84h FSR XXXX XXXX UUUU UUUU UUUU UUUU85h TRISA ---1 1111 ---1 1111 ---U UUUU86h TRISB 1111 1111 1111 1111 UUUU UUUU88h EECON1 ---0 X000 ---0 Q000 ---0 UUUU89h EECON2 ---- ---- ---- ---- ---- ----8Ah PCLATH ---0 0000 ---0 0000 ---U UUUU

Mikroprocesorski sistemi –seminarski rad31

Page 32: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

8Bh INTCON 0000 000X 0000 000U UUUU UUUU

Tabela 3-5. Postavljanje registara nakon reseta

Legenda:

X (nepoznato stanje)U (nepromenjeno stanje)Q (stanje zavisi od uslova)-– (ne postoji fizički, čita se kao logička ‘0’).

3-5. WATCHDOG TIMER

Watchdog timer (WDT) se taktuje nezavisanim RC oscilatorom koji radi čak i kad je zaustavljen rad glavnog oscilatora, u SLEEP režimu rada. Prekoračenje intervala brojanja WDT-a, prilikom normalnog rada, izaziva RESET mikrokontrolera. Ako je mikrokontroler bio u SLEEP režimu rada, prekoračenje tajmera će probuditi mikrokontroler i program će nastaviti sa normalnim radom. Isključivanje WDT-a se vrši resetovanjem WDTE bita u konfiguracionoj reči.

Nominalno vreme WDT-a je 18 ms bez uptrebe preskalera. Ovo vreme može da varira od kola do kola, zbog temperature i slično. Ukoliko je potrebno duže vreme moze se WDT-u pridružiti preskaler sa faktorom deljenja do 1:128, tako da se vreme može produžiti do 2.3s. Instrukcije CLRWDT i SLEEP resetuju WDT.

3-6. PREKIDI (INTERRUPTS)

Mikrokontroler PIC16F877 podržava tehniku rada sa prekidima (interrupts) i može da opsluži ukupno 14 izvora prekida, što internih, što eksternih. Napomenućemo da svaki prekid ne poseduje sopstveni vektor-broj.

Onog trenutka kada se prihvati zahtev za prekid, sledi izvršenje prekidnog programa počev od adrese 0x0004. Tada se programskim putem testira stanje markera, koji se postavljaju kada se aktivira odgovarajući prekid (interrupt flags polling). Onog trenutka kada se ustanovi koji je od uređaja zahtevao prekid, prelazi se na izvršenje odgova-rajuće rutine za obradu tog prekida. Povratna adresa prekinutog programana čuva se automatski u hardverskom magacinu. Povratak iz prekidnog programa se vrši instrukcijom RETFIE. Upravljački registar INTCON se koristi za maskiranje prekida.

Značenje pojedinih markera ćemo sada navesti:

T0IF (INTCON:2) setuje se na prekoračenje TMR0 INTF (INTCON:1) setuje se u slučaju da nastupi spoljni prekid na pinu RBO/INT RBIF (INTCON:0) setuje se kada se dogodi promena stanja na nekom od pinova

RB3-RB7 PSPIF (PIR1:7) PSP marker bit koji se koristi u operaciji čitanja i upisa na PORTD,

kada je on konfigurisan kao PSP

Mikroprocesorski sistemi –seminarski rad32

Page 33: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

ADIF (PIR1:6) marker koji se koristi za vreme analogno-digitalne konverzije RCIF (PIR1:5) marker koji označava da je prijemni bafer koji koristi USART blok, pun TXIF (PIR1:4) marker koji pokazuje da je bafer za slanje podataka koji koristi

USART prazan SSPIF (PIR1:3) marker koji se koristi za rad sinhronog serijskog porta CCP1IF (PIR1:2) marker koji koristi CCP1 blok TMR2IF (PIR1:1) marker koji setuje TMR2 kada dođe do prekoračenja TMR1IF (PIR1:0) marker koji setuje TMR2 kada dođe do prekoračenja EEIF (PIR2:4) marker koji se setuje kada se završi upis u interni EEPROM BCLIF (PIR2:3) marker koji koristi SSP blok kada je konfigurisan da radi u I2C master

režimu CCP2IF (PIR2:0) marker koji koristi CCP2 blok.

Pored bita za dozvolu rada svih prekida General Interrupt Enable (GIE) i bita za dozvolu rada prekida generisanih od strane periferija (PEIE), ovom registru pripadaju i markeri prekida (interrupt flags) i bitovi koji dozvoljavaju prekid koji izaziva Tajmer0 (TMR0), spoljašnji prekid na pinu RB0/INT i prekida porta B na promenu stanja. Osim ova tri osnovna prekida, postoji još 11 periferijskih prekida. Bitovi za njihovu dozvolu nalaze se u registrima PIE1 i PIE2, a odgovarajući flegovi – u registrima PIR1 i PIR2. Ovi se flegovi setuju čim se ispuni uslov prekida bez obzira na stanje njihovog bita dozvole, a po izvršenju servisne rutine potrebno ih je sostverski resetovati.

3-7. TAJMERI

U arhitekturi mikrokontrolera PIC16F877 su ugrađena tri tajmera (TMR0, TMR1 i TMR2) i njihov zadatak je da mere vreme i broje eksterne događaje. Svaki od pomenutih tajmera poseduje određene specifičnosti.

TMR0 (Tajmer0) poseduje čitava familija PICmicro kontrolera. To je, zapravo, običan 8-bitni brojač koji generiše prekid pri prelasku sa stanja 0xFF na stanje 0x00 (overflow). Izvor takta za TMR0 može da bude bilo interni sistemski sat (frekvencije Fosc/4) ili bilo kakav spoljni generator takta spojen na pin RA4/T0CKI. Naravno, može da se podesi da se TMR0 inkrementira na rastuću ili opadajuću ivicu spoljašnjeg signala. U kombinaciji sa modulom Tajmera0 može da se koristi za programabilni preskaler (delilac frekvencije) sa odnosima deljenja od 1:2 do 1:256. Ako deljenje nije potrebno, preskaler se dodeljuje watchdog tajmeru. Kada je preskaler u upotrebi, maksimalna frekvencija eksternog izvora iznosi 50MHz. Na Slici 4-10. prikazan je blok-dijagram TMR0/WDT preskalera.

Mikroprocesorski sistemi –seminarski rad33

Page 34: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 3-10. Blok-dijagram TMR0/WDT preskalera

Slika 3-11. Blok-dijagram tajmera TMR1TMR1 je 16-bitni tajmer i može da radi kao brojač ili može da se koristi za merenje

vremena. Blok-šema ovog tajmera data je na Slici 4-11. TMR1 može da ima tri izvora takta: sistemski sat (Fosc/4), spoljašnji takt ili spoljašnji kristal. Brojač eksternih događaja može se sinhronizovati sa internim oscilatorom, a postoji i asinhroni način rada koji omogućava da se brojač inkrementira i u SLEEP režimu rada. Preskaliranje je moguće sa vrednostima deljenja 1:1, 1:2, 1:4 i 1:8.

TMR2 je 8-bitni tajmer sa programabilnim preskalerom i postskalerom. Može da bude tajmer ili brojač opšte namene. Međutim, potreban je CCP modulu prilikom generisanja PWM signala i modulu za sinhronu serijsku komunikaciju (SSP) kao Baud Rate generator. Zajedno sa TMR2 koristi se registar PR2 (Period Register). Kada se vrednost brojača

Mikroprocesorski sistemi –seminarski rad34

Page 35: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

izjednači sa vrednošću upisanom u registar PR2, generiše se odgovarajući prekid. Struk-tura TMR2 prikazana je na Slici 3-12.

Slika 3-12. Blok-dijagram tajmera TMR2

3-8. PORTOVI

PIC16F877 poseduje pet portova (PORT A, PORT B, PORT C, PORT D i PORT E) i oni predstavljaju vezu njegove interne strukture sa spoljašnjim svetom. Svaki od njih može da se konfiguriše kao ulazni ili kao izlazni. Pomenuti portovi su različitog obima:

8-pinski (PORTB, PORTC, PORTD) 6-pinski (PORTA) 3-pinski (PORTE).

Svakom pinu bilo kojeg porta, u zavisnosti od režima rada, mogu da se dodele fiksne ili promenljive funkcije. Konfiguracija smera prenosa ostvaruje se upisom na odgovarajuću bit-poziciju u pripadajućem TRIS registru (0 - pin je izlazni, 1 - pin je ulazni).

Svakom portu je dodeljen registar podataka (PORTX), preko kojeg se programski pristupa U/I pinovima. Upis u neki od tih registara iniciraće upis u latch tog porta, a njegovo čitanje rezultiraće čitanjem logičkih stanja direktno sa pinova. Sve instrukcije upisivanja su tipa read-modify-write. To znači da se pri upisu u port najpre očitaju stanja pinova, zatim izvrši modifikacija, a potom korigovana vrednost upiše u latch porta. Ne postoji velika razlika u konstrukciji pomenutih pet portova. Jedino se PortB od ostalih razlikuje zbog posebne opcije koju nude četiri MSB. Ukoliko se setuje bit RBIE u registru INTCON, svaka promena stanja na ovim pinovima, generisaće prekid mikrokontrolera.

Mikroprocesorski sistemi –seminarski rad35

Page 36: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

PORT A

Port A je 6-bitni (RA5-RA0) bidirekcioni port (podaci mogu da se šalju u oba smera). Sadržaj re-gistra TRISA određuje smer (ulazni ili izlazni) pinova na portu. Blok-dijagrami za pin RA4 je prikazan na Slici 3-13, a za ostale pinove na Slici 3-14.

Slika 3-13. Blok-dijagram pina RA4

Sada ćemo kroz nekoliko primera ilustrovati postavljanje smerova na portu:

TRISA = 0b000000 (PORTA je izlazni) TRISA = 0b111111 (PORTA je ulazni) TRISA = 0b111000 (RA5-RA3 pinovi su ulazni, a RA2-RA0 su izlazni) TRISA = 0b001000 (RA3 jeulazni, a ostali su izlazni) itd.Port A ima mogućnost analogno-digitalne konverzije i prvenstveno se koristi u te svrhe.

A/D konvertor, koji je integrisan u mikrokontroleru, je 10-bitni sa 8 ulaznih kanala, jer se u ove svrhe koriste i svi pinovi Porta E (i pet pinova Porta A; dakle, svi izuzev RA4).

Pin RA4 je sa otvorenim drejnom i može da se iskoristi za ulazni takt za tajmer TMR0.

Mikroprocesorski sistemi –seminarski rad36

Page 37: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 3-14. Blok-dijagram pinova RA5, RA3-RA0

Tabela 3-6. Funkcije Porta A i registri

Mikroprocesorski sistemi –seminarski rad37

Page 38: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

U Tabeli 3-6. dati su prikaz funkcija pojedinačnih pinova Porta A i registri koji se koriste za konfigurisanje porta.

PORT B

Port B je 8-bitni bidirekcioni port. Svakom pinu porta korespondira odgovarajući bit u registru TRISB, kojim se definiše smer. Svi pinovi unutar Port B poseduju pull-up otpornike. Ovi otpornici mogu da se uključe jednim kontrolnim bitom. To se postiže postavljanjem RBPU' bita na ‘0’. Pull-up otpornici se automatski isključuju kada se pin konfiguriše kao izlazni. Otpornici su isključeni i kod Power-on reseta.

Slika 3-15. Blok-dijagram pinova RB3-RB0

Mikroprocesorski sistemi –seminarski rad38

Page 39: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 3-16. Blok-dijagram pinova RB7-RB4

Mikroprocesorski sistemi –seminarski rad39

Page 40: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Tabela 3-7. Funkcije Porta B i registri

Četiri pina na Portu B (RB7-RB4) imaju mogućnost generisanja prekida. Samo pinovi koji su definisani kao ulazni mogu da prouzrokuju prekid.

Kombinacija prekida na promenu stanja Porta B i pull-up otpornik mogu se iskoristiti kao jednostavan interfejs za tastaturu.

Na Slikama 3-15 i 3-16 blokovski je prikazana (ilustrovana) interna struktura obe grupe pinova Porta B.

U Tabeli 3-7. dati su prikaz funkcija pojedinačnih pinova Porta B i registri koji se koriste za konfigurisanje porta.

PORT C

Slika 3-17. Blok-dijagram pinova RC7-RC5, RC2-RC0

Mikroprocesorski sistemi –seminarski rad40

Page 41: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

3-18. Blok-dijagram pinova RC7-RC5, RC2-RC0

Mikroprocesorski sistemi –seminarski rad41

Page 42: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Tabela 3-8. Funkcije Porta C i registri

Port C je 8-bitni bidirekcioni port. Posebnost ovog porta se ogleda u tome što poseduje ugrađen USART modul, koji služi za serijsku komunikaciju (npr. sa računarom ili drugim mikrokontrolerom). Modulu se pristupa preko pinova RC7 i RC6. Pinove treba softverski konfigurisati da budu u funkciji USART modula.

Na Slikama 3-17 i 3-18 prikazana je struktura Porta C, dok je funkcionalna tabela registara koji se koriste za konfigurisanje samog porta data u Tabeli 3-8.

PORTOVI D I E

Port D je 8-bitni bidirekcioni port. Ovaj port može da se konfiguriše kao 8-bitni paralelni mikroprocesorski port (Parallel Slave Port - PSP) i to podešavanjem konfiguracionog bita PSPMOTE (TRISC<4>). U ovom režimu rada ulazni bafer je TTL tipa.

Port E je bidirekcioni veličine 3 bita. Ima mogućnost A/D konverzije. Ulazni bafer je tipa Schmitt Trigger. Pinovi mogu da se konfigurišu kao digitalni ili analogni, kao i u slučaju Porta A, o čemu je već bilo reči.

3-9. ORGANIZACIJA MEMORIJE

Memoriju mikrokontrolera čine tri odvojene celine:

Programska memorija Memorija podataka EEPROM memorija podataka.

Inače, u mikrokontroleru postoji i stack (magacin), koji radi na principu cikličnog bafera, što znači da se u njega mogu staviti osam različitih adresa, dok se sa upisom devete adrese – briše prva i tako redom. Programski se ne može utvrditi da li je došlo do prepunjenja stack-a.

PROGRAMSKA MEMORIJA

PIC16F877 poseduje 13-bitni programski brojač (PC) koji je u mogućnosti da adresira memorijski prostor od 8K programskih reči od 14 bita. Reset vektor je 0x0000 i od njega počinje izvršavanje programa. Prekidni (interrupt) vektor je 0x0004. Mapa programske memorije i magacin prikazani su na Slici 3-19.

Mikroprocesorski sistemi –seminarski rad42

Page 43: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 3-19 Mapa programske memorije i magacin

Slika 3-20. Izbor željene banke preko bitova RP0 i RP1

ORGANIZACIJA MEMORIJE PODATAKA

Memorija za podatke je podeljena u više banki (banks), a sastoji se od registara opšte namene (General Purpose Registers) i registara specijalne funkcije (Special Function Registers). U jednom od specijalnih registara, tzv. STATUS registru postoje dva bita RP1 i RP0 koji služe za izbor željene banke podataka po principu prikazanom na Slici 3-20.

Mikroprocesorski sistemi –seminarski rad43

Page 44: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Svaka banka može da sadrži do 128 registara (0x7F). Niže lokacije u banci zauzimaju specijalni registri, a ostatak prostora popunjavaju registri opšte namene implementirani kao

Mikroprocesorski sistemi –seminarski rad44

Page 45: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 3-21. Mapa registara mikrokontrolera PIC16F877

Mikroprocesorski sistemi –seminarski rad45

Page 46: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

statički RAM. Neki specijalni registri koji se često koriste mapirani su u sve banke da bi se omogućio brzi pristup i redukcija kôda. Mapa registara mikrokontrolera PIC16F877 prikazana je na Slici 3-21. Nekoliko specijalnih registara su registri jezgra, usko povezani sa funkcio-nisanjem mikroprocesora kontrolera. Ostali registri su vezani za periferne module i služe za njihovo upravljanje i kontrolu statusa.

Programski brojač (PC) je 13-bitni registar koji određuje adresu naredne instrukcije u programskom flash memoriji. Simboličko ime nižeg bajta je PCL. To je registar u koji se može i upisivati i iščitavati. Viših pet bita programskog brojača smešteni su u izolovani registar PCH kojem se pristupa samo preko latch-a PCLATH, mapiranom u internom RAM-u na adresi 0x0A.

STATUS registar je veoma bitan i zato je predviđeno da se može adresirati iz bilo koje banke. On pokazuje status aritmetičko-logičke jedinice, reset status mikrokontrolera i sadrži bite za selekciju banki internog RAM-a. Od navedenih flegova posebno treba izdvojiti Zero bit (Z), koji se postavlja kad je rezultat aritmetičke operacije jednak nuli i bit prenosa/pozajmice Carry (C).

Registar OPTION_REG se inače koristi za konfiguraciju preskalera za TMR0 ili Watchdog, za upravljanje TMR0, selekciju ivice okidanja eksternog prekida, i za omoguća-vanje Pull-up otpornika na Porta B. Kada je reč o registrima jezgra, ne treba zaboraviti par FSR (File Select Register) i INDF (Indirect File), koji služe za indirektno adresiranje memorije podataka. Bilo koja instrukcija koja se obraća INDF registru predstavlja indirektan pristup onoj lokaciji internog RAM-a čija je adresa trenutno u registru FSR.

INTERNI EEPROM ZA PODATKE

Ukoliko je potrebno sačuvati neke podatke i nakon ukidanja napajanja mikrokontrolera, treba ih prethodno zapisati u interni EEPROM. Ova memorija je obima 256 bajtova.

3-10. A/D KONVERTOR

Signali u prirodi su kontinualni, a veoma teško je upravljati nekim procesom bez digitalizacije analognih veličina. Kao što je napomenuto, Portovi A i E imaju mogućnost A/D konverzije što podrazumeva da se mogu konfigurisati kao analogni ili digitalni.

Da bi se iskoristio 10-bitni A/D konveror integrisan u mikrokontroleru, neophodno je podesiti registre ADCON0 i ADCON1. U Tabelama 3-9 i 3-10 dati su prikazi pomenutih registara, respektivno.

Inače, registar ADCON0 služi za podešavanje A/D konverzije (frekvencije odabiranja konvertora, kanal koji se koristi za konverziju, početak konverzije i uključivanje modula za konverziju).

Registrom ADCON1 određuje se uloga pojedinih pinova (analogni ili digitalni). Modul za A/D konverziju se bazira na sa sukcesivnoj aproksimaciji.

Blok-dijagram A/D konvertora mikrokontrolera PIC16F877 prikazan je na Slici 3-22.

Mikroprocesorski sistemi –seminarski rad46

Page 47: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Tabela 3-9. Registar za podešavanje A/D konverzije

ALGORITAM A/D KONVERZIJE

1. Konfiguracija A/D konvertora (preko ADCON0 i ADCON1)2. Konfigurisanje A/D prekida ukoliko se zahtevaju (ADIF, ADIE, PEIE, GIE)3. Čekanje da prođe zahtevano akviziciono vreme4. Početak procesa A/D konverzije5. Završetak procesa A/D konverzije6. Čitanje rezultata A/D konverzije iz registra ADRES7. Za sledeću konverziju, skočiti na korak 1 ili korak 2.

Mikroprocesorski sistemi –seminarski rad47

Page 48: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Tabela 3-10. Registar za podešavanje tipa kanala (analogno ili digitalni)

Mikroprocesorski sistemi –seminarski rad48

Page 49: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 3-22. Blok-dijagram A/D konvertora

3-10. PERIFERIJSKE JEDINICE

Mikrokontroler PIC16F877 poseduje nekoliko korisnih periferijskih modula. S obzirom da mikrokontroler treba da razmenjuje podatke sa ostalim komoponentama (npr. registrima, memorijama, drugim mikrokontrolerima itd.) u tu svrhu je opremljen sa tri hardverska komunikaciona modula.

Mikroprocesorski sistemi –seminarski rad49

Page 50: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Prvi od njih je SSP modul (Synchronous Serial Port), koji služi za komunikaciju sa serij-skim EEPROM-ima, pomeračkim registrima, displej-drajverima itd. Ovaj modul može da radi u jednom od sledeća dva režima:

Serial Peripheral Interface (SPI) Inter-Integrated Circuit (I2C).

Drugi serijski komunikacioni modul je USART (Universal Synchronous Asynchronous Receiver Transmiter). On uglavnom služi za povezivanje sa personalnim računarom, mada to nije jedina njegova mogućnost primene.

USART može da se konfiguriše u neki od sledećih režima rada:

Asinhroni rad (full duplex) Sinhroni master rad (half duplex) Sinhroni slave rad (half duplex).

Osim serijskih, postoji i jedan paralelni komunikacioni modul. U pitanju je modul PSP (Parallel Slave Port). Njegov zadatak je da PIC16F877 direktno poveže na 8-bitnu magistralu podataka drugog mikroprocesora. Eksterni mikroprocesor tada, preko linija Read (RD) i Write (WR) može da čita i upisuje u registar Porta D kao u svaki drugi 8-bitni latch.

Mikroprocesorski sistemi –seminarski rad50

Page 51: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

4 - SOFTVER ZA PIC MIKROKONTROLERE

U realizaciji ovog seminarskog rada korišćen je softverski alat mikroC koji je delo firme Mikroelektronika iz Beograda. Pomenuti alat služi za pisanje kôda za Microchip-ove PIC mikrokontrolere. Programeru je omogućeno da na jednostavan način kontroliše proces programiranja i napravi kvalitetan firmware za mikrokontroler.

Navešćemo njegove osnovne karakteristike: Pisanje C kôda korišćenjem kvalitetnog i preglednog editora, što se ogleda u

automatskoj kontroli i upozorenjima vezanim za sintaksu kôda, korišćenih para-metara, kao i automatskoj korekciji pojedinih grešaka

Preglednost strukture programa (kôda), promenljivih i funkcija omogućava Code explorer

Jasan asemblerski kôd i standardna kompatibilnost generisanih HEX datoteka toka programa preko ugrađeg debagera (debugger)

Programer ima na raspolaganju veliki broj integrisanih biblioteka i rutina, koje značajno ubrzavaju pisanje programa

Detaljan izveštaj i grafičko predstavljanje RAM i ROM mape, statistike kôda i slično.

mikroC, doduše, odstupa od ANSI standarda u nekoliko segmenata. Neka odstupanja su načinjena su u cilju da se olakša programiranje, dok su druge rezultat hardverskih ograni-čenja PIC mikrokontrolera. Pomenućemo sada neke specifičnosti:

Rekurzivne funkcije (function recursion) su podržane sa izvesnim ograničenjima, koja su posledica nešto složenijeg pristupa magacinu (stack) i ograničenja vezana za memoriju

Pokazivači (pointers) promenljivih i pokazivači konstanti nisu kompatibilni, tj. nije moguća međusobna dodela ili upoređivanje

mikroC tretira označavanje const kao “true constans” (kod C++), što omogućava korišćenje const objekta na mestima gde ANSIC očekuje constant izraz .Ukoliko se teži ka prenosivosti programa, treba koristiti tradicionalno pretprocesorsko definisanje konstanti

mikroC dozvoljava C++ stil jednolinijskih komentara, koristeći dve kose crte (//). Komentar može da počne bilo gde i traje do sledeće nove linije programskog kôda

Brojne standardne C biblioteke (ctype, math, stdlib, string ) implementirane su u mikroC, uz individualna odstupanja.

mikroC podržava gotovo sve PIC mikrokontrolere serija 12, 16 i 18. Izuzetak su jedino mikrokontroleri koji poseduju staro hardversko jezgro, kao na primer PIC12C50x, PIC12F50x, itd. Inače, ograničena verzija (do 2KB programa) može da s preuzme sa sajta beogradske

Mikroprocesorski sistemi –seminarski rad51

Page 52: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Mikroelektronike (www.mikroe.com). Za punu verziju programa, treba platiti licencu koja iznosi 250$ i važi samo za jedan računar.

4-1. INSTALACIJA

Instalacija programa traje 30-ak sekundi (treba samo pratiti ponuđene opcije i pritiskati komandno dugme Next). Posle instalacije treba pokrenuti mikroC, a to se najjednostavnije ostvaruje klikom na ikonicu:

4-2. PISANJE KÔDA

Na narednih nekoliko strana biće ilustrovan postupak pisanja kôda u mikroC-u (Slike 4-1_4-7) i generisanje fajlova posle prevođenja (kompilacije/kompajliranja). Slike dovoljno jasno ilustruju ceo proces, a komentari se nalaze ispod slika.

Slika 4-1. Kreiranje novog projekta preko opcije Project → New Project

Mikroprocesorski sistemi –seminarski rad52

Page 53: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 4-2. Podešavanje parametara projekta (naziv mikrokontrolera, takta, reseta...)

Mikroprocesorski sistemi –seminarski rad53

Page 54: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 4-3. U editoru treba napisati program (kôd) mikrokontrolera

Slika 4-4. U editor je unet neki program

Mikroprocesorski sistemi –seminarski rad54

Page 55: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 4-5. Prevođenje programa preko komande Project → Build

Slika 4-6. Izgled prozora posle prevođenja sa izveštajem (Messages)

Slika 4-7. Posle prevođenja (kompilacije/kompajliranja) generiše se nekoliko fajlova: asemblerski kôd (ASM), heksadecimalni kôd (HEX), izveštaji itd.

4-3. USART TERMINAL

Mikroprocesorski sistemi –seminarski rad55

Page 56: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Pokretanje internog softverskog terminala mikroC-a koji se koristi za komunikaciju raču-nara i mikrokontrolera ostvaruje se na sledeći način: Tools → USART Terminal.

Na Slici 4-8. prikazan je izgled prozora USART terminala. Kao što se vidi, moguće je podesiti veći broj parametara. Navešćemo samo najvažnije:

Serijski port (u padajućem meniju treba izabrati željeni serijski port, a kod standardnih računara to su COM1 i COM2)

Brzina prenosa (za frekvenciju kvarca od 4MHz treba izabrati 2400 bauda, dok za 8MHz bira se 9600 bauda itd.)

Broj stop bitova (1, 1.5 i 2) Izbor parnosti (bez, parna, neparna itd.) Broj bitova koji čine karakter (5, 6, 7 ili 8) Uključivanje/isključivanje handshaking signala (RTS i DTR) Izbor formata podatka koji se šalje (ASCII, heksadecimalni - HEX ili dekadni - DEC) Način slanja (odmah po kucanju ili kada se klikne na opciju SEND) itd.

Slika 4-8. Izgled prozora kod USART komunikacionog terminala

Mikroprocesorski sistemi –seminarski rad56

Page 57: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Kada se podese parametri, terminal se startuje klikom na komandno dugme Connect. Odmah zatim, terminal je spreman da prihvati komande (vidi Sliku 4-9). Kada se završi komunikacija, treba kliknuti na komandno dugme Disconnect.

Slika 4-9. Izgled prozora softverskog USART terminala kada je pokrenut

4-4. UBACIVANJE FIMWARE-A U MIKROKONTROLER

Heksadecimalni kôd koji je dobijen iz kompilatora/kompajlera je «razumljiv» mikro-kontroleru i u njega se upisuje preko programatora.

Za ovaj seminarski rad je korišćen programator AllPIC o kojem je dat kompletan članak u poglavlju Prilog. Zbog toga se ovde nećemo baviti njegovim opisom.

Mikroprocesorski sistemi –seminarski rad57

Page 58: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

5 – KOMUNIKACIJA MIKROKONTROLERA PREKO SPI MODULA: PRAKTIČNA REALIZACIJA

Slika 5-1. Blok-šema veze dva mikrokontrolera PIC16F877 preko SPI modula

Na Slici 5-1 prikazana je blok-šema veze dva mikrokontrolera PIC16F877 preko njihovih SPI modula, dok je na Slici 5-2 prikazana električna šema. Uloga master-a (ujedno je povezan sa serijskim portom PC računara) je dodeljena mikrokontroleru U2, dok je uloga slave-a dodeljena mikrokontroleru U3. Na Portove B oba mikrokontrolera povezani su po četiri tastera i četiri LED diode.

Komunikacija PC↔U2 ostvaruje se samo preko Rx i Tx signala (bez handshaking-a), što je u našem slučaju sasvim dovoljno.

Potenciometri P1 i P2 su povezani na pinove PA0 oba mikrokontrolera, respektivno.Tri pina Porta C (PC3, PC4 i PC5) su dovoljni za ostvarenje SPI komunikacije master-

slave. PC3 ima ulogu takta (SCK), kod master-a PC4 i PC5 imaju ulogu SI (Serial Input) i SO (Serial Output), respektivno, a kod slave-a je obrnuto. U načem slučaju nismo upotrebili Cs signal, jer nije potreban – komuniciraju samo master i slave.

Mikroprocesorski sistemi –seminarski rad58

Page 59: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Može da se primeti kako je reset zajednički za oba mikrokontrolera i ostvaruje se pritiskom na taster SW0.

Mikroprocesorski sistemi –seminarski rad59

Page 60: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

MCLR1

PA02

PA13

PA24

PA35

PA46

PA57

RD8

WR9

PC217

PD2 21PD3 22PC4 23PC5 24PC6 25PC7 26PD4 27PD5 28PD6 29PD7 30CS10

VDD11

VSS12

OSC113

OSC214

PC015

PC116

PC318

PD019

PD120

VSS 31VDD 32PB0 33PB1 34PB2 35PB3 36PB4 37PB5 38PB6 39PB7 40U2/master/

PIC16F877-04

C527pF

C627pF

Y1

4MHz

Gnd Gnd

Gnd

Gnd

Vin1

Gnd

2

Vout 3

U1LM7805

C1

100uF

C2

1000uF

C3

100nF

GndGnd Gnd Gnd

12

J1

CON2

Gnd

C1+1 Vcc 16

V+2 Gnd 15

C1-3 T1out 14

C2+4 R1in 13

C2-5 R1out 12

V-6 T1in 11

T2out7 T2in 10

R2in8 R2out 9

U4

MAX232

Gnd

Gnd

C4

100nF

Gnd

Gnd

162738495

J2

DB9

Gnd

C13 100nF

C9100nF

C11100nF

C10100nF

C12100nF

8-14V

12345678

9RN1

2K2

LED4

LED1

LED2

LED3

SW4

SW3

Gnd

SW2

SW1

D1

BAT42

MCLR1

PA02

PA13

PA24

PA35

PA46

PA57

RD8

WR9

PC217

PD2 21PD3 22PC4 23PC5 24PC6 25PC7 26PD4 27PD5 28PD6 29PD7 30CS10

VDD11

VSS12

OSC113

OSC214

PC015

PC116

PC318

PD019

PD120

VSS 31VDD 32PB0 33PB1 34PB2 35PB3 36PB4 37PB5 38PB6 39PB7 40U3/slave/

PIC16F877-04

C727pF

C827pF

Y2

4MHz

Gnd Gnd

Gnd

Gnd

12345678

9RN2

2K2

LED8

LED5

LED6

LED7

SW8

SW7

Gnd

SW6

SW5

R1

15KSW0

P1 10K

P210K

Gnd

Gnd

Slika 5-2. Šema veze dva mikrokontrolera preko njihovih SPI modula

Mikroprocesorski sistemi –seminarski rad60

Page 61: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

KAKO KOLO FUNKCIONIŠE?

Tabeli 5-1 ilustruje kako kolo funkcioniše. Naglasićemo da je P2 povezan na slave mikrokontroler, tako da se informacija o naponu na njemu prenosi preko SPI master-slave komunikacije.

Taster FunkcijaSW4 Uključujemo LED4 SW3 Uključujemo LED3SW2 Isklučujemo LED1-LED4SW1 Šalje se ASCII karakter "1" ka USART terminaluSW8 Uključujemo LED8SW7 Uključujemo LED7SW6 Isključujemo LED8 i LED7SW5 Naizmenično uključivanje/isklučivanje LED6 i LED5

LED1 i LED2 se uključuju slanjem ASCII karaktera "2" i "3", respektivno.Naponski nivoi na P1 i P2 se očitavaju slanjemASCII karaktera "4" i "5", respektivno.

Tabeli 5-1. Funkcije tastera i ASCII komandi

PROGRAM MASTER-A

unsigned short i, j, napon;

void main() { TRISA = 0b111111; // Definisanje pinova A PORTA PORTA = 0b000000;

TRISB = 0x0F; // Definisanje pinova B PORTA PORTB = 0xFF; ADCON0 = 0;

USART_init(9600); // Podesavanje USART modula // (8 bita, 9600 bauda) Spi_Init(); // Inicijalizacija SPI while (1) {

if (USART_Data_Ready()) { i = USART_Read(); USART_Write(i);

Mikroprocesorski sistemi –seminarski rad61

Page 62: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

}

if (i==0x32) { // Paljenje LED1 preko PC-a. PORTB.F5 = 0; i=0x00; } if (i==0x33) { // Paljenje LED0 preko PC-a. PORTB.F4 = 0; i=0x00; }

if (PORTB.F3==0) { // Paljenje LED2. PORTB.F7 = 0; delay_ms(200);

}

if (PORTB.F2==0) { // Paljenje LED3. PORTB.F6 = 0; delay_ms(200);

}

if (PORTB.F1==0) { // Gasenje LED.

PORTB.F7 = 1; PORTB.F6 = 1; PORTB.F5 = 1; PORTB.F4 = 1; }

if (PORTB.F0==0) { // Slanje karaktera ‘1’ ka PC-u.. USART_Write(0x31); delay_ms(400); }

if (i==0x34) { // Osmobitna A/D konverzija, P1 napon = ADC_Read(0) >> 2; USART_Write(napon); i=0x00; }

Mikroprocesorski sistemi –seminarski rad62

Page 63: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

if (i==0x35) { // Osmobitna A/D konverzija, P2 preko SPI

Spi_Write(i); delay_ms(100);

Spi_Read (j); USART_Write(j);

}

}//~!

PROGRAM SLAVE-A

unsigned short i, napon;int k;

void main() {// TRISA = 0b111111; // Definisanje pinova A PORTA// PORTA = 0b000000;

TRISB = 0x0F; // Definisanje pinova B PORTA PORTB = 0xFF;

while (1) {

if (PORTB.F3==0) { // Gasenje obe LED8. PORTB.F7 = 0; delay_ms(50);

}

if (PORTB.F2==0) { // Gasenje obe LED7. PORTB.F6 = 0; delay_ms(50);

}

if (PORTB.F1==0) { // Gasenje LED.

PORTB.F7 = 1; PORTB.F6 = 1;

Mikroprocesorski sistemi –seminarski rad63

Page 64: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

}

if (PORTB.F0==0) { k=6; // Naizmenicno paljenje LED6 i LED5. while (k > 0) { PORTB.F5 = 1; PORTB.F4 = 0; delay_ms(100); PORTB.F5 = 0; PORTB.F4 = 1; delay_ms(100); k--; PORTB.F5 = 1; PORTB.F4 = 1; delay_ms(100); } }

if (i==0x64) { .// Osmobitna A/D konverzija, P2 napon = ADC_Read(0) >> 2; Spi_Write(napon); delay_ms(100); } }

}//~!

Mikroprocesorski sistemi –seminarski rad64

Page 65: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

6 – LABORATORIJSKA VEŽBA

Slika 6-1. Štampana ploča

Na Slici 6-1. je prikazan izgled štampane ploče za električno kolo sa Slike 5-1. Mogu da se uoče po dve grupe tastera (SW1-SW4, SW5-SW8) i dve grupe LED dioda (LED1-LED4, LED5-LED8). Prva grupa tastera i LED je povezana za Port B mikrokontrolera kojem je softverski dodeljena uloga master-a, dok je druga grupa tastera i LED povezana za Port B mikrokontrolera kojem je dodeljena uloga slave-a.

Firmware-i (ugrađeni softveri) za master i slave mikrokontroler su različiti.

Mikroprocesorski sistemi –seminarski rad65

Page 66: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

A/D KONVERZIJA KROZ PRIMER

Opisaćemo način određivanja napona izmerenog A/D konverorom sa sukcesivnom aproksimacijom koji je integrisan u mikrokontroleru PIC16F877.

Zbog konzistentnosti podataka u vežbi (svi su osmobitni) sa internog 10-bitnog A/D konvertora ćemo očitavati osmobitnu digitalnu reč, tj. odbacićemo softverski dve najmanje značajne cifre. Na ovaj način pogoršana rezolucija A/D konverzije, ali se zato dobija podatak jednostavan za obradu.

Podatak koji se dobije u prozoru USART terminala treba transformisati u dekadni (ukoliko je izabran parametar HEX u prozoru terminala), a zatim primeniti formulu:

Ukoliko je, na primer, pročitana heksadecimalna vrednost (0x10)HEX, odnosno dekadna vrednost (16)DEC, to znači da je izmeren napon:

Ukoliko se očitava ASCII karakter, pogledati u Tabelu 6-1 i pronaći odgovarajuću dekad-nu vrednost.

Zadatak

1) Povezati kolo sa serijskim portom računara preko standardnog pin-to-pin DB9 kabla.2) Dovesti kolu napajanje preko adaptera 220V~/7.5V–, a tek onda adapter postaviti u

mrežno napajanje. Bitno je ispoštovati opisani redosled. 3) Pokrenuti USART terminal iz programa mikroC.

Podesiti parametra USART terminala (prikazano na Slici 6-2):

COM1 ili COM2 (zavisno na koji port je povezano kolo) Brzina 9600 Bauda, 1 stop-bit (One Stop Bit), Space bit parnosti (Parity), osam

bitova čini karakter/podatak (Data bits), isključen RTS (Off) Podesite da prenos mikrokontroler↔PC bude ASCII.

4) Proveriti rad kola preko komandi u tabeli:

Taster FunkcijaSW4 Uključujemo LED4 SW3 Uključujemo LED3SW2 Isklučujemo LED1-LED4SW1 Šalje se ASCII karakter "1" ka USART terminalu

Mikroprocesorski sistemi –seminarski rad66

Page 67: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

SW8 Uključujemo LED8SW7 Uključujemo LED7SW6 Isključujemo LED8 i LED7SW5 Naizmenično uključivanje/isklučivanje LED6 i LED5

LED1 i LED2 se uključuju slanjem ASCII karaktera "2" i "3", respektivno.Naponski nivoi na P1 i P2 se očitavaju slanjemASCII karaktera "4" i "5", respektivno.

Tabela 6-1. Funkcije

Tabela 6-2. Tabela ASCII/DEC karaktera

Mikroprocesorski sistemi –seminarski rad67

Page 68: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Slika 6-2. Parametri UART terminala i primeri slanja dva tipa podatka(heksadecimalni – HEX i dekadni - DEC)

Mikroprocesorski sistemi –seminarski rad68

Page 69: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

7 - ZAKLJUČAK

Seminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine. Štampana pločica je kreirana u Protel-u, a realizovana u firmi «Denitron».

Studenti su najpre uvedeni u priču o mikrokontrolerima. Jasno je napravljena razlika između mikrokontrolera i mikroprocesora i navedene njihove osobine. Potom su na nekoliko strana opisani embedded sistemi.

SPI komunikaciji je posvećeno celo poglavlje rada. Razmotrene su uloge master-a i slave-a, protokol itd. Tu su ujedno izloženi i praktični primeri sa pvezivanjem mikrokontrolera sa SPI memorijom, SPI A/D konvertorom (SPI ADC).

Isto tako, detaljno je opisan mikrokontroler PIC16F877-20 (arhitektura, organizacija memorije, oscilator, portovi, tajmeri, ADC, komunikacioni moduli). Posebna pažnja je posvećena A/D konvertoru (ADC) i SPI komunikacionom modulu, jer su isti uskopovezani sa temom samog seminarskog rada.

Jedno poglavlje je posvećeno softveru mikroC i njegovom komunikacionom USART terminalu preko kojeg se ostvaruje veza PC-mikrokontroler.

Posle teorijskog uvoda, studentima je približen sâm projekat i način izvođenja laboratorijske vežbe.

Mikroprocesorski sistemi –seminarski rad69

Page 70: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

8 - KORIŠĆENA LITERATURA

Prilikom pisanja seminarskog rada korišćena je sledeća on-line literatura:

Serijska komunikacija računara i USART modula mikrokontrolera PIC16F877A, Dejan Lazić, Ivan Novaković, Elektronski fakultet - Niš, (seminarski rad)

PIC16F877, Microchip Tecnology, http://www.microchip .com Embedded sistemi, http://www.oaza.net AllPIC programator, Info Elektronika - Niš IC-Prog, http:// www.ic-prog.com mikroC, firma Mikroelektronika, http://mikroe.com KOMUNIKACIJE – SPI, časopis Mikroelektronika br 8, http://mikroe.com

Mikroprocesorski sistemi –seminarski rad70

Page 71: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

9 – PRILOG

Mikroprocesorski sistemi –seminarski rad71

Page 72: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Mikroprocesorski sistemi –seminarski rad72

Page 73: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Mikroprocesorski sistemi –seminarski rad73

Page 74: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Mikroprocesorski sistemi –seminarski rad74

Page 75: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Mikroprocesorski sistemi –seminarski rad75

Page 76: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Mikroprocesorski sistemi –seminarski rad76

Page 77: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Mikroprocesorski sistemi –seminarski rad77

Page 78: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Mikroprocesorski sistemi –seminarski rad78

Page 79: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Mikroprocesorski sistemi –seminarski rad79

Page 80: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

Mikroprocesorski sistemi –seminarski rad80

Page 81: KOMUNIKACIJE - SPIes.elfak.ni.ac.rs/Files/Djordjevic-Djordjevic-SPI-PICs.doc · Web viewSeminarski rad čiji ste sadržaj mogli da pročitate je završen tokom aprila 2008. godine

10 – O AUTORIMA SEMINARSKOG RADA

Prezime: ĐorđevićIme: ŽarkoAdresa stanovanja: Bulevar Nikole Tesle 45/2, NišE-mail adresa: [email protected]čno stanje: neoženjenDatum rođenja: 30.03.1983.g.Nacionalnost: SrbinObrazovanje: Gimnazija ”Svetozar Marković”, NišKompletna ili stepenovana diploma: IV stepenVozačka dozvola: B kategorijaPoznavanje jezika Engleski (vrlo dobro)Poznavanje operativnih sistema i programskih paketa

WINDOWS XP, MS OFFICE, COREL DRAW, EMBEDDED C,

Posebna interesovanja Politička aktivnost (studentska organizacija i politička stranka), programiranje, sportska aktivnost

Sposobnosti Upornost, preduzimljivost, kreativnost, timski rad

Napomene

Prezime: ĐorđevićIme: DušanAdresa stanovanja: Borivoja Velimanovića 53, ĆuprijaE-mail adresa: [email protected]čno stanje: NeoženjenDatum rođenja: 13.05.1983.g.Nacionalnost: SrbinObrazovanje:

Osnovna škola „Vuk Karadžić“, ĆuprijaEGŠ „Nikola Tesla“, Jagodina elektrotehničar automatike

Kompletna ili stepenovana diploma: IV stepenVozačka dozvola: B kategorijaPoznavanje jezika Engleski (dobro)Poznavanje operativnih sistema i programskih paketa

WINDOWS Vista, AutoCAD, EAGLEPROTEL 2004

Posebna interesovanja Pretraživanje Interneta, čitanje stručne literature, biznis i mnoge druge stvari.

Sposobnosti Radoznalost, preduzimljivost, snalažljivostNapomene

Mikroprocesorski sistemi –seminarski rad81