AVR mikrovaldiklių programavimas naudojant AVRDUDE vietoj PonyProg

Tikriausiai ne paslaptis, jog daugelis AVR mikrovaldiklių mėgėjų tarp jų ir aš naudojame PonyProg AVR midkrovaldiklių programavimo aplinką. Ir ne be reikalo, nes tai yra tikrai neblogas produktas turintis intuityvų interfeisą. Turi nemažą palaikomų mikro-schemų arsenalą tokių kaip Atmel AVR, Microchip PIC micro, I2C, Microwire, SPI EEPROM. AVR mikrovaldikliai programuojami naudojantis AVR ISP adapteriu prijungtu prie COM arba LPT porto.

Juo naudotis yra išties paprasta: sukompiliuoji programą į hex ar bin failą, atsidarai jį su PonyProg, vieną kartą nusistatai programatorių ir užprogramuoji mikroschemą.

Tačiau yra keletas dalykų kurie man asmeniškai neduoda ramybės. Pirma, tai kad šitas įrankis yra palaikomas vieno žmogaus (Claudio Lanconelli) ir nuo jo priklauso produkto gyvavimas, antra, tai kad palaiko tik viena AVR ISP programatorių (Apie USB ar kitokius nėra kalbos), trečia – nepalaiko komandinės eilutės komandų, dėl to praktiškai nėra galimybių integruoti į kitus įrankius tokius kaip WinAVR. Dėl to atsiranda nepatogumas naudoti papildomus veiksmus. Sakykim standartinė situacija:

  • Rašau programą ir kompiliuoju su WinAVR;

  • Atsidarau hex bylą su PonyProg;

  • Programuoju.

Grubiai tariant trys tokie grubūs veiksmai iki programa patenka į mikroschemą (kompiliavimas, įkėlimas į Ponyprog ir programavimas). Rimtai pagalvojus išvada tokia, kad taip nepatogu. Kodėl nesudėjus visų šitų veiksmų į vieną mygtuko paspaudimą? Štai čia galima pradėti kalbėti apie AVRDUDE.

AVRDUDE tai FreeBSD Unix programa skirta AVR (Flash ir EEPROM) programavimui. Naudingiausia savybė yra ta,kad AVRDUDE palaiko komandinės eilutės įrankius ir gali būti integruojama į kitas programas. Manau jog daug kas naudoja WinAVR, tačiau mažai kas pasidomi ką gali AVRDUDE. Tai išties galingas įrankis, leidžiantis ne tik programuoti Flash ar EEPROM, bet ir modifikuoti atskirus bitus, programuoti fuse bitus, skaityti atminti ir jos fragmentus. Kaip nemenką privalumą galima paminėti galimybę įtraukti naują MCU ar programatorių. Tam tereikia paredaguoti konfigūracinę bylą avrdude.conf. Apie taip siūlau paskaityti AvrDude dokumentacijoj.

Jeigu pas jus yra WINAVR tai AVRDUDE susideda automatiškai, bet jeigu norite jį naudoti kaip, tuomet reikia sukonfigūruoti.

Sakykim naudojama aplinka – Windows XP. Kad AVRDUDE veiktų reikia suinstaliuoti draiverius kurie leidžia tiesioginį priėjimą prie portų. AVRDUDE pakuotėje yra paruoštas tam bat skriptas kurį tereikia paleisti:

C:\WinAVR\bin>install_giveio.bat
Copying the driver to the windows directory
target file: C:\WINDOWS\giveio.sys
1 file(s) copied.
Remove a running service if needed…
Installing Windows NT/2k/XP driver: giveio
installing giveio from C:\WINDOWS\giveio.sys… ok.
starting giveio… ok.
set start type of giveio to auto… ok.
Success

Po šios operacijos galima patikrinti ar tvarkingai veikia:

C:\WinAVR\bin>status_giveio.bat
status of giveio:
Type: [0x01] Kernel driver.
Start Type: [0x02] Automatic
Error Control: [0x01] NORMAL: Display a message box.
Binary path: \??\C:\WINDOWS\giveio.sys
Load order grp:
Dependencies:
Start Name:
ok.

Kaip portų draiveriai nustatyti galima pabandyti programuoti AVR mikrokontrolerį. Programavimo kabelis tinka tas pats – AVR ISP kuris buvo naudojamas PonyProg.

Atsidarom komandų langą (Run->cmd) ir pabandom užprogramuoti atmega8:

C:\WinAVR\bi>avrdude -p m8 -c pony-stk200 -e -U flash:w:demo.hex

Jeigu pavyko – sveikinu įveikus pirmą etapą.

Pabandykim įdomesnį variantą. Naudoti komandinę eilutę yra tikrai nepatogumas. Padarykim kad AVR mikrokontroleris būtų užprogramuojamas automatiškai kompiliuojant C programą su WinAVR. Tam reikia sukonfigūruoti Makefile. Atsidarom Makefile su Mfile programa. Ir ten pasirenkame programatoriaus tipą (pony-stk200):

Mfile_Avrdude_setting1.PNG

makefile turėtumėte matyti štai ką:

Mfile_Avrdude_setting2.PNG

Ir viskas. Belieka išbandyti. Jeigu programa parašyta belieka tik paspausti “Program” kuris yra Programmers Notepad meniu Tools.

AVRDUDE_programming.PNG

Taigi šita komanda atlieką visus mums reikiamus žingsnius(sukompiliuoja, užprogramuoja AVR) vienu paspaudimu.

Kadangi pradėjom kalbą apie AVRDUDE verta paminėti tai, jog yra jam grafinis apvalkalas AVRDUDE-GUI kuris plėtojamas (bent jau buvo) kaip atskiras projektas.

avrdude_gui.PNG

Taip pat galima rasti ir kitų sukurtų grafinių apvalkalų skirtų AVRDUDE tokiu kaip AVR8 Burn-O-Mat parašyta Java kalba.

Skelbta Elektronika Pažymėti: ,
One comment on “AVR mikrovaldiklių programavimas naudojant AVRDUDE vietoj PonyProg
  1. rikis parašė:

    AVR mikrovldikliams siulau naudoti Eclipse + AvrDude + WinAVR
    Pats naudoju ir esu labai patenkintas.
    http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin

Parašykite komentarą