|
|
|
Članak
iz "Radio T9" broj 10 (oktobar-novembar 2000.)
Svjedoci smo vremena u kome su se računari opšte namjene uvukli gotovo
u sve pore života. U sjeni ovih zbivanja dešavaju se ništa manje
revolucionarni prodori primjene mikroprocesorski baziranih sistema u različitim
vrstama uređaja, od široke potrošačke elektronike do specijaliziranih
profesionalnih uređaja. U početku su se i u ovim uređajima upotrebljavali
standardni mikroprocesori, međutim ubrzo počinje razvoj specijaliziranih
komponenti koje objedinjavaju osim mikroprocesora i sve ostale elemente
neophodne za obavljanje specijaliziranih zadataka. Mikrokontroler predstavlja računar na jednom čipu, kome
su dodane komponente koje obavljaju funkcije tipične za primjenu u sistemu
upravljanja u realnom vremenu. Danas u svijetu postoji veliki broj proizvođača
različitih mikrokontrolera, od onih najpoznatijih na polju mikroprocesora
(Intel, Motorola), preko onih koji su poznatiji u drugim oblastima (Siemens),
sve do firmi koje su se specijalizirale za izradu mikrokontrolera (Microchip,
Scenic, Atmel, Rabbit Semiconductors). Možemo slobodno reći da, za razliku od
tržišta mikroprocesora opšte namjene, ovdje vlada šarenilo proizvođača,
karakteristika i cijena. Zbog čega bismo se mi zainteresirali za mikrokontrolere?
Prije svega zato što radio amater za njih može naći veliki broj primjena.
Osim toga, mikrokontroleri su kao stvoreni za sve one koji vole programiranje, a
istovremeno ne mogu bez mirisa lemilice, pošto je kolo u kome se nalazi
mikrokontroler potrebno sagraditi, a mikrokontroler isprogramirati da obavlja željenu
funkciju. Pogledajmo šta nam je sve potrebno da bi smo se iskušali u ovoj
oblasti. Prije svega, mikrokontroler. Obzirom na cijene
mikrokontrolera koje se kreću od par maraka pa sve do par stotina maraka, te
cijene razvojnih okruženja neophodnih za rad sa mikrokontrolerom čija cijena
zna biti vrlo visoka i prihvatljiva samo za profesionalnu primjenu, pozabavićemo
se Microchip-ovom komponentom PIC16F84. Cijena ovog kola u DIP 18 kućištu, se
kreće oko 15 maraka. Još jedan razlog za izbor ovog mikrokontrolera leži u činjenici
da za njega postoji niz besplatnih asemblera, kompajlera za različite jezike,
te cjelokupnih razvojnih okruženja (uključujući MPLAB, razvojno okruženje
koje je Microchip stavio na raspolaganje za besplatan download putem interneta).
Takođe, gradnja programera neophodnog za upisivanje programa i podataka u
memoriju mikrokontrolera i njihovo čitanje je vrlo jednostavna i moguće je naći
veliki broj manje ili više kompleksnih šema programera. Ovdje ćemo dati jedan
od najjednostavnijih, koji još uvijek omogućava sigurno i pouzdano korištenje. To bi bilo sve neophodno za početak i gradnju
elektronskog tastera sa RS-232 portom, koji ćemo predstaviti u narednom članku.
Obzirom na prostor i širinu teme, te potrebna predznanja iz programiranja, nećemo
se baviti razvojem programa i primjenom razvojnih alata. Zainteresovani za
programiranje mogu na kraju teksta pronaći linkove koji pružaju dodatne
informacije i sa kojih je moguće skinuti neke od razvojnih alata. Pogledajmo sada karakteristike mikrokontrolera PIC16F84.
Ono što PIC16F84 izdvaja od većine drugih mikrokontrolera je činjenica da je
to RISC procesor koji poznaje svega 35 instrukcija, te da ima tzv. Harvard
arhitekturu-što znači da su mu potpuno odvojene memorija za program koji se
izvršava i podatke. Na raspolaganju nam je 1024 14-bitne riječi programske
flash-memorije (koju je moguće vrlo jednostavno i veliki broj puta pisati i
brisati električnim putem), te 68 bajta RAM memorije. Verzija PIC16C84 ima 36
bajta RAM memorije. Osim toga, na čipu se nalazi i 64 bajta EEPROM memorije za
podatke. Sve ovo izgleda izuzetno skromno u poređenju sa megabajtima prisutnim
u računarima opšte namjene. Međutim, trebamo imati u vidu da mikrokontroler,
pogotovo srednje klase poput ovog, radi sa vrlo jednostavnim strukturama
podataka, najčešće bitima, a rjeđe grupama bita ili bajtima. Samim tim,
potrebe za skladištenjem podataka i njihovom obradom su daleko manje i iznenađujuće
je šta se sve može realizirati programom od 1024 instrukcije mašinskog koda,
koliko je moguće pohraniti u raspoloživu programsku memoriju. Ovaj
mikrokontroler ima još neke dodatne mogućnosti, kao što su npr. realizacija
prekida (interapta), jedan brojač/tajmer, zaštita koda od neovlaštenog čitanja,
te tzv. watch-dog tajmer koji osigurava resetovanje mikrokontrolera u slučaju
da se izvršavanje programa prekine, što je vrlo značajno za primjenu u
realnom vremenu. Na slici 1. su predstavljene funkcije pinova, koje su iste
i za DIP 18 i SOIC izvedbu kućišta. PIC16F84 se napaja sa 2 do 6 V, a postoje
verzije koje rade sa oscilatorom od 4 ili 10 MHz. PIC16F84 posjeduje ukupno 13
pinova koji se mogu neovisno programirati kao ulazi ili izlazi, a podijeljeni su
na dva porta, 5-bitni PORTA (RA0-RA3) i 8-bitni PORTB (RB0-RB7). Neki od ovih
pinova mogu imati i drugu funkciju. Tako RB0 predstavlja i INT ulaz, koji
aktivira izvođenje prekidne (interapt) rutine na uzlaznu ili silaznu ivicu
signala na RB0, RA4 predstavlja i ulaz brojača. Preko pinova RB7 i RB6 se vrši
i programiranje kola pomoću programera i posebnog softvera. Osim
ulazno-izlaznih pinova, kolo posjeduje i pinove za dovođenje napajanja (VDD i
VSS), ulaz \MCLR čije dovođenje na potencijal mase uzrokuje resetovanje
mikrokontrolera, te ulaze OSC1 i OSC2, na koje se može priključiti kvarc
kristal, RC kolo ili dovesti signal iz vanjskog oscilatora, ovisno o mogućnosti
koja je izabrana. Ovo bi bio samo kratak pregled karakteristika ovog
mikrokontrolera, obzirom da detaljnije upoznavanje traži dosta više prostora,
a i bez toga će zainteresirani čitalac biti u stanju upisati gotov program
koji realizira elektronski taster u mikrokontroler. Šema jednog vrlo jednostavnog programera koji nam omogućava
da upišemo program u PIC16F84 je data na slici 2. Korišten je minimalan broj
komponenata i čak ni početniku njegova realizacija ne bi trebala predstavljati
problem. Slika 3 predstavlja pločicu programera, a slika 4 montažnu šemu.
Programer se može lako sagraditi i na univerzalnoj pločici. Jedini komentar
ove šeme bi se odnosio na jumper kod diode D1. Naime, u osnovnoj verziji je
predviđeno da se svi potrebni naponi dobiju sa RS-232 porta PC računara. Međutim,
u praksi se pokazalo da ispravljač sa stabilizatorom od 5 V na nekim serijskim
portovima napon sa 12V obori toliko da se kod nekih kola PIC16F84 ne može
aktivirati program-mod (po specifikacijama je za aktiviranje ovog moda potrebno
na pin \MCLR dovesti napon od 12-14V). Radi toga je ostavljena mogućnost da se
jumperom napajanje kola dovede iz eksternog izvora. Programer se sa PC računarom
povezuje serijskim kablom (ne null-modem), ali je potrebno obratiti pažnju da
kabl osim minimalnih RxD, TxD i GND sadrži još i DTR, RTS i CTS provodnike. Da bismo upisali program u mikrokontroler, osim programera
nam je potreban i softver kojim ćemo to obaviti. Izbor je veliki, ali preporučujem
program ICProg (slika 5) koga možete dowload-ati sa adrese www.h2deetoo.demon.nl
i koji je potpuno besplatan. Program se pokazao vrlo pouzdanim u radu sa
predstavljenim programerom, a osim PIC16F84 može programirati još veliki broj
drugih mikrokontrolera, uz upotrebu odgovarajućeg programera. Rad sa programom
je jednostavan i svodi se na izbor programera (JDM Programmer), porta na koji je
programer povezan (COM 1-COM 4), tipa mikrokontrolera, otvaranje hex-fajla koji
želimo upisati u kolo i njegovo upisivanje u PIC16F84. Ovaj članak bi zainteresiranim čitaocima trebao pružiti
dovoljno informacija za početak. Linkovi na dodatne informacije i lokacije sa
kojih se može download-ati potreban softver su dati na kraju članka. Na kraju
bih još želio napomenuti da obratite pažnju kod gradnje programera, kako se
ne bi oštetio serijski port računara. Linkovi:
Dalje:
|
|
Mail to: [email protected] This site was last updated on 11/18/00. You are visitor number
|