AVR Dragon
Indeks članka
AVR Dragon
Poveziavnje i programiranje
Debugovanje
Sve strane

 

Slika_AVR_Dragon

 

AVR Dragon je razvojni alat koji se koristi za programiranje i emulaciju rada atmelovih mikrokontrolera. AVR Dragon podržava sve načine programiranja i može emulirati rad većine AVR mikrokontrolera čija veličina fleš memorije ne prelazi 32 kB. Jednostavnom nadogradnjom upravljačkog programa u AVR Dragonu, pomoću AVR studia, dodaje se podrška za nove atmelove mikrokontrolere.

Ovaj proces se vrši automatski, tj. kada se AVR dragon priključi preko USB porta na računar i pokretanjem AVR studia automatski se provjeri da li se poslednja verzija upravljačkog programa nalazi u AVR dragonu. Ako postoji nova verzija upravljačkog programa otvara se prozor sa porukom da se izvrši nadogradnja postojećeg programa.

AVR dragon podržava sljedeće interfejse za programiranje i emulaciju:

Programiranje:

  1. In System Programming (ISP)
  2. High Voltage Serial Programming (HVSP)
  3. Parallel Programming (PP)
  4. JTAG Programming (JTAG Prog)

Emulacija:

  1. JTAG
  2. debugWIRE

Pomoću AVR Dragona moguće je programirati i emulirati rad atmelovog mikrokontrolera koji se postavalja direktno na prototip prostor na pločici AVR Dragona ili povezati AVR Dragon sa vanjskim uređajem na kojem se nalazi atmelov mikrokontroler.

Ovdje će biti prikazana primjena AVR Dragona za ISP način programiranja i debugovanje koristeći debugWIRE, pri čemu će AVR Dragon biti povezan sa vanjskim uređajem koji sadrži atmelov mikrokontroler Atmega88.

AVR Dragon napaja se preko USB kabla i može u toku programiranja ili emulacije napajati vanjski uređaj sa atmelovim mikrokontrolerom čija potrošnja ne prelazi 300mA. Napon napajanja je 5V. Ako vanjski uređaj na koji je priključen AVR Dragon ima svoje napajanje, tada će AVR Dragon sve potrebne signale konvertovati i prilagoditi ih na odgovarajuću amplitudu u cilju ostvarivanja komunikacije između njih. Potrebno je obratiti pažnju da se napon napajanja vansjkog uređaja kreće u granicama od 1.8 do 5.5V.

Potrebni uslovi za upotrebu AVR Dragona su sljedeći:

  1. Potrebno je instalirati AVR studio i USB drajver
  2. Priključiti AVR Dragon na računar preko USB porta i automatski instalirati novi hardver
  3. Pokrenuti AVR Studio i selektovati AVR Dragon Programming Dialog
  4. Povezati AVR Dragon na mikrokontroler

Potrebno je skrenuti pažnju na posebne uslove:

  1. Obavezno prvo priključiti AVR Dragon na računar preko USB porta, a zatim priključiti napajnaje na vanjski uređaj.
  2. Interfejs High Voltage je podešen na 5V, pa je potrebno obezbjediti i napajanje vanjskog uređaja sa naponom od 5V.
  3. VCC konektor je podešen na 5V i može obezbjediti struju do 300mA
  4. Ako se AVR Dragon koristi za programiranje ili debugovanje razvojnog okruženja STK500, potrebno je ukloniti RESET jumper.


Na sljedećoj slici prikazana je gornja strana AVR Dragona.

 

 

Slika_top_Dragon

 

Slika 1

 

Pored USB konektora postoje dvije led diode koje služe za indikaciju stanja AVR Dragona. Jedna led dioda detektuje prenos podataka preko USB porta i blinka zeleno, a druga može da ima 4 boje koje znače sljedeće:

  1. Svjetlo crvena – prazan hod, AVR Dragon nije povezan sa AVR Studiom
  2. Tamno crvena – prazan hod, AVR Dragon povezan sa AVR Studiom
  3. Zelena – u toku prenos podataka
  4. Žuta – inicijalizacija ili nadogradnja upravljačkog programa

S obzirom da ćemo koristiti ISP način programiranja korisno je pogledati ISP konektor i način povezivanja AVR Dragona sa vanjskim uređajem na kojem se nalazi atmelov mikrokontroler Atmega88. Na sljedećoj slici prikazan je 6-pinski ISP konektor.

 

Slika_ISP

Slika 2

 

Prednost korištenja ISP načina programiranja je ta što se mikrokontroler može progrmiranti direktno na vanjskom uređaju, tj. bez potrebe skidanja mikrokontrolera, pod uslovom da u uređaju postoji priključak za ISP konektor. Napajanje vanjskog uređaja treba da je u granicama od 1.8 do 5.5V, jer pri tom naponu AVR Dragon može konvertovati i prilagoditi potrebnu amplitudu signala za komunikaciju. Da bi AVR Dragon konvertovao i prilagodio amplitude odgovarajućih signala za komunikaciju, on automatski detektuje vrijednost napona vanjskog uređaja preko pina 2 ISP konektora i prema tome vrši prilagođavanje.

Povezivanje ISP konektora na AVR Dragonu sa ISP konekotorm na vanjskom uređaju vrši se tako što se povezuju signali MISO sa MISO, MOSI sa MOSI itd., a na sljedećim slikama prikazan je način priključenja 6 pinksog ISP konektora na AVR Dragon.

 

Slika_ISP_1

Slika 3

 

Slika_ISP_2

Slika 4

 

Potrebno je napomenuti da se na ovaj način ostvaruje i debugWIRE interfejs, što znači da se povezivanjem AVR Dragona i vanjskog uređaja preko ISP konektora otvaruje potrebna veza za programiranje i debugovanje atmelovog mikrokontrolera koji se nalazi na vanjskom uređaju.


Na slici 5, prikazan je povezan AVR Dragon sa vanjskim uređajem koji sadrži atmelov mikrokontroler Atmega88, preko ISP konektora.

 

Slika_povezivanje

Slika 5

 

Povezivanje AVR studia i AVR Dragona vrši se klikom na ikonicu CON (Display the ‘Connect’ Dialog). U prozoru koji se otvori označi se AVR Dragon i klikne na dugme Connect, slika 6.

 

Slika_6

Slika 6

 

Nakon povezivanja otvara se glavni prozor u kome se vrši izbor mikrokontrolera, a u ovom slučaju to je mikrokontroler Atmega88. Klikom na dugme Read Signature poredi se oznaka selektovanog mikrokontrolera sa mikrokontrolerom na ploči i ako je sve uredu, pokaže se poruka Signature matches selected device (slika 7).

 

 Slika_7

 Slika 7

Klikom na Program otvara se prozor preko koga se vrši programiranje mikrokontrolera. U ovom prozoru moguće je obrisati memoriju mikrokontrolera i programirati fleš i/ili eeprom memoriju. Programiranje fleš memorije je jednostavno, potrebno je selektovati željenu hex datoteku i kliknuti na dugme Program u fleš okviru, kao što je prikazano na sljedećoj slici (slika 8):

 

Slika_8

 Slika 8

 

Na ovaj način izvršeno je porgramiranje fleš memorije mikrokontrolera Atmega88 koji se nalazi u vanjskom uređaju, a koji je preko ISP konektora povezan na AVR Dragon.


Sada ćemo pokazati kako se vrši debugovanje korsiteći AVR Dragon. S obzirom da se radi o debugWIRE interfejsu, ništa nije potrebno mijenjati u povezivanju AVR Dragona i vanjskog uređaja sa atmelovim mikrokontrolerom, tj. veza ostaje ista kao i za programiranje mikrokontrolera.

U cilju demonstracije debugovanja koristiće se modifikovani programski kod iz prethodnog članka koji vrši demonstraciju poziva vanjskog prekida.

Programski kod je sljedeći:

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

// Prekidna rutina za prekidac

ISR(PCINT1_vect)
{

    if(PIND & (1<<PD4)) //Ako je led upaljena, ugasi
        PORTD &= ~(1<<PD4);
    else
        PORTD |= (1<<PD4); //Ako je led ugašena upali

    if(PCIFR & (1<<PCIF1)) //Ako je fleg postavljen, poništi
        PCIFR |= (1<<PCIF1);

   
}

int main(void)
{

    // inicijalizacija prekidaca
    PORTC |= (1<<PC4);// pull-up zbog prekidaca na masu
    PCICR |= (1<<PCIE1); // tip prekida Pin Change Interrupt
    PCMSK1 |= (1<<PCINT12); // pin na kome se poziva prekid

    // inicijalizacija za led diodu
    DDRD |= (1<<PD4);
    PORTD |= (1<<PD4); // upali Led diodu
   
    sei(); //omoguci globalni prekid

    // startuj beskonacnu petlja
        while(1);
}

Prevođenjem programskog koda i programiranjem fleša koristeći prethodno pokazan način izvršeno je programiranje mikrokontrlera Atmega88. Potrebno je napomenuti da je u programu izbačen dio koji se odnosi na kašnjenje u cilju eliminisanja efekta vibracije kontakata prekidača.
Ulaz u debug-mod vrši se programiranjem bit-osigurača DWEN. Prema tome, potrebno je kliknuti na Fuses, označiti (čekirati) bit-osigurač DWEN i kliknuti na dugme Program, nakon čega se otvara prozor sa upozorenjem da se omogućavanjem debugWIRE interfejsa onemogućava ISP interfejs, kao što je pirkazano na sljedećoj slici (slika 9):

 

Slika_9

Slika 9

 

Klikom na dugme Yes i zatvaranjem prozora, ulazi se u mod za debugovanje. Sada se mogu podesiti željene prekidne tačke tako što se kursor dovede na mjesto prekidne tačke i klikne se na Debug->Toggle Breakpoint, nakon čega se pojavljuje crvena tačka sa lijeve strane. Postavljanjem prekidnih tačaka može se pokrenuti debugovanje, klikom na Debug->Start Debugging. Na desnoj strani AVR Studia može se pratiti stanje u unutrašnjosti mikrokontrolera, tj. stanje u registrima, tajmerima, procesoru i slično.

Na sljedećoj slici (slika 10) prikazane su postavljene prekidne tačke i stanje registara koji se prate.

 

 Slika_10

 Slika10 (klikni na sliku da uvećaš)

 

Klikom na dugme Step into ili na dugme F11 na tastaturi prelazi se na sljedeću naredbu i prati se stanje željenih registara ili promjenljivih. U trenutku poziva prekida kursor automatski skače na prekidnu rutinu kao što se vidi na sljedećoj slici (slika 11):

 

Slika_11

Slika 11

 

Klikom na F11 prolazi se kroz sve naredbe u prekidnoj rutini. Na ovaj način vrši se debugovanje i kontrola rada mikrokontrolera koristeći debugWIRE interfejs.

Nakon završetka debugovanja potrebno je obratiti pažnju na način izlaska iz ovog moda. Zaustavljanjem debugovanja još uvijek je aktivan debugWIRE interfejs, tj. ne može se izvršiti programiranje mikrokontrolera koristeći ISP interfejs, jer je bit-osigurač DWEN programiran. Izlazak iz moda za debugovanje vrši se tako što se u toku rada debugovanja, znači ne stopira se debugovanje nego se odmah klikne na Debug->AVR Dragon Options ili ako je ta opcija neaktivna (onemogućena) tada se prvo klikne na Break (pauza) i onda na AVR Dragon Options, nakon čega se otvara prozor prikazan na sljedećoj slici (slika 12).

 

Slika_12

Slika 12

 

Na ovom prozoru potrebno je kliknuti na dugme Disable degugWIRE, nakon čega se otvara prozor sa potvrdom da li želimo napustiti debugWIRE. Klikom na YES izlazi se iz moda za debugovanje i vraća se u početno stanje.

 

Slika_13

Slika 13

 

Ovdje je ukratko opisana primjena AVR Dragona za programiranje i degubovanje atmelovog mikrokontrolera Atmega88 koji se nalazio u vanjskom uređaju, a koji ima ISP konekotr. Na sličan način može se vršiti programiranje i degubovanje svih mikrokontrolera koje podržava AVR Dragon. Više informacija o karakteristikama AVR Dragona i njegove primjene koristeći druge načine programiranja i debugovanja mogu se naći na atmelovom sajtu www.atmel.com.