|
ICD dibager za PIC16F84x seriju mikrokontrolera
ICD je jeftini razvojni alat koji se bazira na
ugrađenim debagerskim mogućnostima Microchip-ovi mikrokontrolera serije 16C87x. ICD se povezuje preko serijskog porta sa
računarom i preko UTP konektora sa mikrokontrolerom serije 16C87X.
| Rad mikrokontrolera povezanog preko ICD-a sa PC racunarom može se kontrolisati preko MPLAB integrisanog Microchip-ovog okruženja. Moguce je izvršavati program instrukciju po instrukciju, pustiti mikrokontroler da radi u realnom vremenu (kao što bi radio bez prisustva ICD-a) dok ne dostigne postavljenu prekidnu tacku ili se ne zaustavi zahtevom korisnika preko menija MPLAB-a. |

|
Postoji i mogucnost i izvršavanje programa (Animate stavka Debug"Run menija) tako da se posle svake izvršene instrukcije prikazuju sadržaji registra na ekranu racunara (što je naravno sporije od izvršavanja u realnom vremenu).
Menjanje sadržaja registara mikrokontrolera je isto tako karakteristika ICD-a.
Drugim recima, ICD debager nudi vrlo jeftino razvojno okruženje za Microchip-ove mikrokontrolere. Pošto 16C87x serija poseduje standardni raspored periferija u okviru memorije za podatke kao i ostali Microchip-ovi mikrokontroleri onda se korišcenjem ovih mikrokontrolera i ICD debagera može uspešno razvijati aplikacija i za druge tipove mikrokontrolera da bi se na kraju tako razvijeni programi samo prekompajlirali za ciljni mikrokontroler i kao takvi ubacili u krajnju aplikaciju ...
Kako se radi sa ICD-om ?
Procesor koji se kontroliše poveže se preko IDC10 konektora na racunar. ICD se napaja sa pinova procesora u podnožju prikljucenog za ICD, pa je potrebno obezbediti još 70mA za napajanje ICD-a. Kada dioda na ICD-u pocne da svetli pokrenuti MPLAB. Demonstraciju rada ICD-a prikazacemo na kolu sa šeme 1 i programu sa listinga 1. ICD se kontroliše preko MPLAB-a. Kada se startuje MPLAB potrebno je pozvati dijalog za podešavanje razvojnog okruženja preko Options " Development Mode stavke MPLAB menija. U tako dobijenom dijalogu potrebno je cekirati opciju MPLAB ICD debugger na kartici Tools. Samim odabirom opcije MPLAB ICD Debugger u polju Processor pojavice se PIC16F877. U ovom polju potrebno je izabrati procesor ciji se rad kontroliše a u našem slucaju ce to biti 16F873.
Kada se pritisne taster OK MPLAB ce pokušati komunikaciju sa ICD-om. Ukoliko je komunikacija uspešna i ICD je detektovan otvorice se dijalog kao na Slici 2. Ako se ne uspostavi komunikacije sa ICD-om onda ce se korisnik obavestiti o neuspeloj komunikaciji preko dijaloga i posle pritiska na OK pojavice se dijalog na Slici 1. Na dijalogu sa Slike 1 mogu se podešavati komunikacioni portovi i brzine komunikacije sa ICD-om, brzina rada procesora kao i vrsta registara ciji ce sadržaj biti prenesen do MPLAB- a pri prekidu rada mikrokontrolera. Potrebno je prikljuciti ICD na COM1 i u Dijalogu sa slike izabrati COM1. Pritiskom na dugme Reconect ponovo se uspostavlja komunikacija sa ICD modulom (ovo dugme se uopšte koristi kada se izgubi veza racunara sa ICD modulom). Kada racunar detektuje da je ICD prikljucen u dijalogu sa Slike 1 treba pritisnuti dugme Options... Pritiskom na ovo dugme dobija se dijalog kao na slici 3 koji služi za detaljno podešavanje opcija ICD debagera.
Polja u dijalogu koja se nalaže u grupi Configuration Bits treba postaviti kao što je to na slici kao i polja u grupi Program Options. Da bi se koristile mogucnosti debagovanja potrebno je iskljuciti Power Up tajmer, Brown out Detect, Low Voltage Program, kao i zaštite koda i Flash memorije. Isto tako potrebno je štiklirati u grupi Program Options Enable Debug Mode kako bi se posle pritiska na dugme Program u mikrokontroler na hederu ( u podnožju prikljucenom za ICD modul UTP konentorom) ucitao program koji se koristi za komunikaciju mikrokontrolera na hederu sa ICD modulom. Ovaj program se smešta u najviši deo programske memorije i koristi memorijske resurse mikrokontrolera kao i pinove mikrokontrolera koje aplikacija ne sme da koristi.
Kada su sve opcije u dijalogu podešene može se poceti sa otvaranjem novog projekta i pisanjem koda na kome cemo demonstrirati rad sa ICD debagerom. |
 |
| Slika 1. Development Mode stavka MPLAB menija |
| |
 |
| Slika 2. Dijalog boks MPLAB-ICD-a |
| |
 |
| Slika 3. Options dijalog box |
Debagovanje sa ICD-om
| Kada je ICD debager podešen krenucemo sa otvaranjem projekta. U meniju Project izaberite stavku New i otkucajte u polju File Name icd.pjt i pritisnite dugme OK. Na ekranu ce se pojaviti dijalog kao na slici 5. Ukoliko polja na dobijenom dijalogu izgledaju kao na slici pritisnite OK dugme. Zatim u Meniju File izaberite stavku New. U novo dobijenom prozoru otkucajte sledeci program.

Da bi debager radio ispravno potrebno je ubaciti dve nop naredbe na pocetku programa od adrese 0. Ovaj jednostavni program pali i gasi diodu koja je prikljulcena na pinu 0 porta B. Snimite ovaj fajl pod imenom icd.asm na disk i ubacite ga u projekat tako što cete u meniju Project izabrati stavku Edit Project... U dobijenom dijalogu pritisnite dugme Add Node... Dobija se dijalog u kome je potrebno da izaberete sors fajl projekta. |
 |
| Slika 4. File dijalog box |
|
 |
| Slika 5. Edit dijalog
box |
 |
Izaberite upravo napravljeni
icd.asm fajl i pritisnite dugme OK. Na ekranu bi trebalo da se
pojavi sledeci dijalog:
Pritisnite dugme OK. Pošto je sada projekat definisan u potpunosti
u meniju Project izaberite Build All stavku. Napravljeni program ce
se asemblirati i ucitati u memoriju racunara.
Sada u prethodno otvorenom dijalogu ICD-a pritisnite dugme Program.
Program koji je upravo bio asembliran bice ubacen u memoriju
mikrokontrolera zajedno sa programom potrebnim za rad ICD debagera. Selektujte prozor u kome se nalazi asemblerski sors kod i pritisnite taster F6 (taster ce resetovati mikrokontroler). Pritiskom tastera F7 izvršavacete program u mikrokontroleru naredbu po naredbu.
|
| Slika 6. Edit dijalog box. |
Kada stignete do start labele programa uocicete da se pritiskom F7 tastera pali i gasi dioda prikljucena na nulti bit porta B. Pritiskom F7 dobijate izvršenje naredbe na koju trenutno pokazuje programski brojac mikrokontrolera. Posle izvršenja naredbe u PC racunar, prenece se sadržaji registrara koje ste zahtevali u dijalogu sa slike 1.
| Postavljanje prekidne tacke postiže se pokazivanjem pointera miša na naredbu u programu cijim dostizanjem se prekida izvršenja programa i pritiskom na desni taster miša. Dobija se meni u kome treba izabrati Brake Point posle cega ce naredba na kojoj se prekida izvršenje programa biti obojena u crveno. Postavite prekidnu tacku na naredbu oznacenu start labelom. Pritiskom na taster F6 resetujte
mikrokontroler. Startujte rad mikrokontrolera u realnom vremenu pritiskom na F9. Dostizanjem adrese start labele prekinuce se izvršavanje programa. |
 |
| Šema1.
Povezivanje ICD-a i PIC-a |
Možete analizirati registre mikrokontrolera i onda ponovo pritiskom na F9 nastaviti sa izvršavanjem programa u realnom vremenu od sledece naredbe ili sa F7 izvršavati program korak po korak.
Pritiskom Ctrl+F9 ulazite u Animate rad mikrokontrolera. U ovom modu posle svake izvršene instrukcije sadržaji registara iz mikrokontrolera se prebacuju u memoriju PC racunara. Promena sadržaja registara može se pratiti u prozotru koji se dobija izborom stavke menija Winows"File Registers. U ovom prozoru nalaze se pikazani registri u memoriji podataka mikrokontrolera poredani po njihovima adresama. Isto tako sadržaji registara koje ste oznacili posebnim simbolima mogu se posmatrati u Watch prozorima koji se dobijaju izborom u Winow meniju Window->Watch window->New window. Izaberite u dijalogu simbole koje želite da posmatrate u prozoru i dodajte ih pritiskom na dugme ADD. Kada ste dodali simbole registara koje želite da posmatrate pristisnite CLOSE dugme. Sada resetujete mikrokontroler i startujete rad u Animate modu (pritiskom Ctrl F9) ili izvršavate instrukciju po instrukciju pritiskom na F7 mocicete u tako dobijenim prozorima da posmatrate promene u registrima mikrokontrolera. Jednostavno, ICD je podržan u MPLAB integrisanom okruženju i sve opcije koje se nalaze u Debug meniju možete koristiti da biste posmatrali i analizirali rad vašeg programa. Naravno program se može napisati i u C programskom jeziku jer MPLAB ucitava bajtcraft .COD format fajla što omogucuje da se u MPLAB-u programi pisani na višim programskim jezicima kontrolišu isto kao i asemblerski. Primer C kompajlera koji možete koristiti sa MPLAB integrisanim okruženjem je CCS c kompajler.
x
Za više informacija o ICD debegeru pogledajte na internet stranici mikroElektronike u delu "razvojni sistemi"
|