Sunday, October 7, 2012

PICkit2 i programiranje AVR-a


Na ideju za ovaj post sam došao prelistavajući forum na kom već imam solidan staž. :)
Naime, jedan kolega sa foruma je postavio pitanje vezano za ovu temu, i pokušavajući da natera dotični PICkit2 (u daljem tekstu PK2) da programira AVR mikrokontrolere, naišao je na par problema. Da se to ne bi ponavljalo, rešio sam da napravim jedan mali tutorial (al' na srpskom :) ) za sve buduće kolege koji budu imali sličnu ideju...

Elem, za početak je potrebno da imate jedan PICkit2 (ili neki njegov klon koji možete i sami napraviti), jedan AVR mikrokontroler (svi tutoriali su sa ATmega8, pa ću i ja iskoristiti jedan takav) i par softverskih alata da ovo dvoje ukombinujete...

Prvo je potrebno napraviti tzv. bridge konekciju (upariti dva serijska porta), naravno, softverski. Za to vam je potreban neki "Null modem emulator", "Virtual Serial Port Emulator", itd... Jedno od rešenja koje na raznim tutorialima na netu možete naći jeste "com0com" emulator. Ja lično nisam uspeo (i na netu sam naišao na dosta neuspelih pokušaja) da nateram moj PICkit2 da sa njim programira AVR-ove, stoga taj emulator nećemo ni koristiti (ako neko bude imao želju da baš sa com0com emulira COM portove, neka mi se javi ili ostavi komentar, rado ću mu poslati uputstva). Emulator sa kojim je meni sve ovo proradilo je "Virtual Serial Port Driver". Problem je što ovaj emulator nije džaba (ako neko uspe da nađe haknutu verziju, rešio je najveći problem). Drugi emulator sa kojim nisam imao problema (a džaba je) jeste "Virtual Serial Port Emulator". Još jedan emulator koji radi, a napisan je za Windows Vista i kasnije (Windows 7, Windows 7 x64...) jeste "Free Virtual Serial Ports".

Drugi alat koji je potreban jeste PK2AVRISP (program koji tera PK2 da se ponaša kao AVRISP(mk2) ili STK500(mk2) AVR programator). 

Sada je sve spremno, pa, da počnemo:

Nakon instalacije i pokretanja "Virtual Serial Port Emulator"-a, dobijamo sledeći prozor




U meniju Device izabrati Create nakon čega dobijamo sledeći prozor




U polju Device Type izabrati Pair i kliknuti Next



Pojavljuje se prozor u kojem je potrebno izabrati koje portove želimo da uparimo (kod mene su to COM4 i COM5 jer već posedujem 1 hardverski COM port COM1, i dva virtuelna uparena COM2 i COM3). Možete izabrati bilo koji od ponuđenih i kliknuti na Finish.



Ako je sve u redu, treba da vam se pojavi prozor kao na slici iznad.

Ovim smo završili najzahtevniji deo cele procedure uparivanja PK2 i AVR-a.

Sada je potrebno podesiti alat za programiranje AVR mikrokontrolera. Lično koristim avrDude i stoga ću opisati kako se on podešava (inače, kontrolere je moguće programirati i iz AVR Studio-a, CodeVision-a i ostalih alata za programiranje AVR kontrolera).
Za avrDude koristim GUI (avrDude je alat za rad u konzoli), koji izgleda ovako



U polju Programmer izabrati Atmel AVR ISPAtmel AVR ISP mkII, Atmel STK500 ili Atmel STK500 version 2.x firmware (kod mene radi sa STK500v2).
U polju Port izabrati jedan od COM portova koje ste prethodno uparili (u mom slučaju to je COM2).
U polju Device izabrati kontroler koji se programira (na početku smo rekli da će to biti ATmega8).

I ovaj deo smo završili. Još nam ostaje da povežemo PK2 i ATmega8. Šema povezivanja prikazana na slici






Nakon povezivanja programatora i kontrolera, ostaje nam još da priključimo PK2 na računar, pokrenemo PK2AVRISP i ako je sve u redu pojaviće se sledeći prozor



U polju Serial port izabrati drugi od COM portova koje smo uparili (u mom slučaju to je COM3) i TO JE TO! :) Ovim je podešavanje završeno i vaš PK2 je sada u mogućnosti da programira i AVR mikrokontrolere.

No comments:

Post a Comment