Članak - 1. dio
Home Up Članak - 2. dio

 

            

Članak iz "Radio T9" broj 10 (oktobar-novembar 2000.)

U ovom i narednom članku ćemo se upoznati sa mikrokontrolerima i predstavićemo sve neophodno za rad sa njima. Vidjećemo kako se mikrokontroler može upotrijebiti za realizaciju elektronskog tastera sa RS-232 portom preko koga se može povezati sa PC računarom radi otpravljanja teksta iz bilo kog terminalskog programa.

  

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:

 www.microchip.com – oficijelni Microchip-ov site na kome možete naći sva potrebna uputstva i specifikacije, kao i niz preporuka za praktičnu primjenu mikrokontrolera

 www.h2deetoo.demon.nl – site sa koga možete skinuti ICProg

 www.geocities.com/SiliconValley/Network/3656/  - Home page Pavela Baranova, tvorca vrlo dobrog C kompajlera i autora još nekih  zanimljivih projekata

 www.huizen.dds.nl/~gnupic/ - Arhiva besplatnog softvera, prevodilaca i programera

 

Dalje:

Članak iz "Radio T9" br. 11

 

Mail to: [email protected]

This site  was last updated on 11/18/00.

 You are visitor number since 06/08/98