USBasp programatoriaus surinkimas ir testavimas

Apie USBasp

Kadangi paskutiniu metu pavyko paleisti šį paprasta AVR ISP adapterį, kuris jungiamas prie kompiuterio per USB portą. Pirmiausia pora žodžių apie patį programatorių. USBasp yra gana gerai žinomas tarp AVR mėgėjų. Jo autorius Thomas Fischl, kuris ne tik jį sukūrė, bet ir pastoviai atnaujina. Pats adapteris yra labai paprastas, kuriam pagaminti tereikia keleto komponentų. Visa USB galia slypi Atmega8 mikrovaldiklyje. Dėl savo paprastumo yra labai mėgiamas elektronikos mėgėjų.

USBASP_Device.jpg

USB programatorius palaiko du programavimo dažnius SCK: 375kHz ir 8kHz. Taip yra dėl to,kad programuojamas mikrovaldiklis būtinai turi veikti bent keturis kartus didesniu dažniu nei programatoriaus taktinis dažnis. Sakykim jeigu programuojama 375kHz dažniu, tai valdiklis turi veikti ne mažesniu nei 1.5MHz (4x375kHz=1.5MHz). Jeigu mikrokontroleris naudoja žemo dažnio osciliatorių, pvz 32kHz, tai būtina programatorių perjungti į 8kHz režimą (4x8kHz=32kHz).

USBasp adapterio surinkimas

Programatoriaus schema kaip ir minėjau yra paprasta.

usb_asp_cir_thumb.png

Praktiškai prie Atmegos prijungta USB jungtis per suderinamas varžas, lizdas ISP kabeliui, pra trumpiklių(J3 – programavimo dažniui pasirinkti; JP1 – perjungimas į adapterio programavimo režimą; JP2 – gali būti naudojamas programuojamo mikrovaldiklio maitinimui (nerekomenduojama!)) ir du šviesos diodai vienas maitinimo indikacijai(D1), o kitas programavimo aktyvumui stebėti. Patas adapteris maitinamas tiesiogiai iš USB porto. ISP lizdas yra suderinamas su originaliu STK200/300, tik čia papildomai numatyti RXD, ir TXD išvadai(kurie šiuo atveju nenaudojami).

isp_10_pin_to_ISP_9.jpg

Programatoriaus PCB versijų yra prikurta įvairiausių, kurias rasite čia. Tereikia išsirinkti tinkamiausią ir pasigaminti. Aš pasirinkau J.A. De Groot.

Kai USB programatorius pagamintas, pirmiausia įrašykite naujausią hex failą, kurį rasite paskutiniame atnaujinime (2007-10-23). Nustatykite fuse kad naudotu išorinį kvarcą (HFUSE=0xc9 LFUSE=0xef). Žemiau pateikiami nustatymai programuojant PonyProgu.

USBasp_fuses.jpg

Kai mikrovaldiklis paruoštas belieka suinstaliuoti USBasp draiverius kompiuteryje.

  • USB kabeliu prijunkite adapterį prie kompiuterio USB porto. Nenaudokite jokių šakotuvų, nes kitaip neveiks.

  • Jeigu plokštė teisingai sulituota, sistema turėtų rasti USBasp adapterį.

  • Sistemai paprašius nurodyti draiverį, nukreipkite į usbasp.2007-10-23binwin-driver katalogą, kuriame jis randasi ir paspauskite Next, kad pradėtumėte kopijuoti draiverį į sistemą:

instaling_uasbasp.JPG

Kai draiveriai įdiegti, belieka tik patikrinti ar sistema įtraukė adapterį į savo įrenginių sąrašą:

USBASP_Device_ready.JPG

ISP adapteris paruoštas darbui.

USBasp programatoriaus bandymai

Ka gi liko trečias žingsnis – išbandyti ar adapteris veikia. Tam kad išbandyti adapterį pirmiausia prijunkite jį prie programuojamo mikrokontrolerio. Tam tiks bet kuris projektas su AVR mikrovaldikliu ir ISP jungtimi.

USBASP_Programming.jpg

USBasp programatorius yra suderinamas su Avrdude 5.2 ir aukštesnėmis versijomis. Jeigu pas jus yra naujausia WinAVR (20070525), tai jokių problemų kilti neturėtų. Pirmiausia pabandykime prisijungti prie adapterio terminalo režime. Paprasčiausiai atsidarykite konsolės (command promt) langą paspaudę Start-Run ir langelyje įrašę cmd. Atsidariusiame juodame lange įrašykite komandą:

avrdude -c usbasp -p atmega16 -P usb -t

Paspaudus enter turėtumėte matyti panašų vaizdą:

USBasp_terminal_mode.jpg

Matome jog adapteris nuskaitė mikrovaldiklio ID(signature) ir laukia tolimesnių komandų. Jų mes nenagrinėsime, nes komandos būdingos AVRDUDE, kurias galima lengvai rasti dokumentacijoje. Kad išeiti iš terminalo režimo parašykite quit.

Na ir paskutinis variantas, dėl ko verta gamintis AVRDUDE palaikomus programatorius tokius kaip šis yra tas jog galima lengvai susikonfigūruoti projektą taip, kad kompiliavimas, įrašymas į mikrokontrolerį bei patikrinimas vyktų tik vieno mygtuko paspaudimu. Tam tereikia paredaguoti porą makefile eilučių. Lengviausia tai daryti naudojant Mfile redaktorių, kuris yra kartu su WinAVR. Atsidarę makefile paredaguokite šias eilutes:

AVRDUDE_PROGRAMMER = usbasp

AVRDUDE_PORT = usb

Tada belieka paleisti [WinAVR] Program komandą iš Programmers Notepad Tools meniu ir stebėti kaip programa susikompiliuoja ir “suvažiuoja” į mikrovaldiklį. Programavimo greitis nėra įspūdingas – tesiekia 5kB per sekundę. Tačiau subjektyviai palyginus su LPT programatoriumi programavimas vyksta greičiau. Ne bet ne greitis čia svarbiausia, svarbesnė yra galimybė jungti tokį programatorių prie kompiuterio kur nėra nei LPT nei COM porto.

Skelbta Elektronika Pažymėti: ,
34 comments on “USBasp programatoriaus surinkimas ir testavimas
  1. circuit parašė:

    Ir kaip bandymai? Kažkokį panašų dariau:
    http://circuit.lt/?page=image&section=patarimai/pcbuv&img=11&type=2

    Bet visiškai neima ATmega32 ir ATtiny2313. ATmega8 užprogramavo gerai. Veikia su AVRstudio, bet su CodeVisionAVR ožiuojasi.
    Šis su AVRstudio/CodeVisionAVR suderinamas?

  2. circuit parašė:

    Beje, stiliaus faile pridėk eilutę:
    .commenttext { overflow: hidden; }

    Ai, ir dar tikrink ar gerai įvesta suma su javascript, nes dabar užmiršus įvesti dingsta visas rašytas komentaras..

    Sėkmės darbuose 😉

  3. admin parašė:

    Dėkui už pastebėjimus.
    Adapterį bandžiau tik su Atmega8 ir Atmega16, dar turiu galimybę ant smugio išbandyti Atmega128 – ka ir padarysiu. Manau kad turetu vežti ir Atmega32 ir kitas. Del palaikomų programų tai bandziau tik AVRdude.
    Įdomu ar tavo adapteris to paties autoriaus? Gal dėl to visos bėdos…

  4. admin parašė:

    Dėl komentarų, tai yra padaryta, kad reikėtų vieną kartą administratoriui patvirtinti, o kiti komentarai jau atsiranda iš karto tam pačiam žmogui. Šioks toks papildomas apsisaugojimas nuo spamerių.

  5. circuit parašė:

    Dariau pagal šitą:
    http://tinyurl.com/399orp
    Pinoutas kitoks, bet iš esmės funkcijos tos pačios.

    Būtų labai įdomu sužinoti kaip jis susitvarko su mano jau minėtais AVRstudio ir CodeVisionAVR – gal atsiras lankytojas, kuris jau išbandė.

  6. admin parašė:

    Galesiu ir pats išbandyti namuose. Programas turiu, tai jokiu problemu. Bet abejoju ar veiks, nes autorius apie nieka daugiau kaip Avrdude neuzsimina. Matomai cia kitoks firmware veikimas.

  7. admin parašė:

    Tai vat galutinė diagnozė yra ta kad šis programatorius veikia tik su AVRDUDE. Išbandžiau su Atmega128, programina ir skaito. Susijungdavo ne iš karto, matyt dėl to kad maitnama nuo 3,3V. Su kontroleriais maitinamais nuo 5V veikia be jokių sutrikimų.

  8. circuit parašė:

    Hm. Neteko dar naudoti AVRdude, tai reiks pasižiūrėti kas ten per žvėris.
    Arba reiks vieną kartą imt ir pasidaryti pilną STK500v2 programatorių, bet ten jau 3 čipai reikalingi. Arba 2, bet tada negalės pats sau firmwaro keisti. Kažkur voliojosi schema..

  9. admin parašė:

    Na avrdude yra komandine eilute valdomas. Grafinio interfeiso normalesnio kaip ir nera. Vienintelis patogumas, kad naudojant Winavr patogu programuoti sukonfiguravus makefile. Siaip jeigu darbuojies su avrstudio, tai geriausia butu stk500. Yra toks idomus Jtag Ice + Stk500 klonas pasirodes, kur priklausomai nuo jumper settingu galima naudoti kaip jtag arba stk500. Galvoju gal reikes pasidaryti prie progos. Googlej paieskok Jtag Twice. gal sudomins.

  10. circuit parašė:

    Hm. Pasigūglinau, tai radau kur galima tokį įsigyti. Įsigijimas nėra mano prioritetų viršūnėje, labiau norėčiau susimestrauti. Nepavyko rasti net schemos 😐

  11. Dreifas parašė:

    Jeigu kalbi apie Jtag Twice tai jo schema ir firmware yra avrfreaks.net projektų skyriuje. Tiesiogine nuoroda (reikia prisiregistruoti)
    Cia tiesiog yra Jtag ICE sukergtas su stk500. Suzaista su bootloaderiu ir jumperiais.

  12. AIM parašė:

    Pats, turiu pasidares, puikiai veikia. Avrdude turi grafine aplinka, tai avrdude-gui. Tiesa man nelabai sekasi su juo fusebit’us programuot, tai gaminaus kita programatoriu…

  13. Amxas parašė:

    o Atmega 8 su kuria padaritas programeris reik uzprogramuot per ta pati usb ar per kita jau veikenti programeri?

  14. Dovydas parašė:

    Man tai programuoja Atmega32

  15. Lionia King parašė:

    Ar Atmega8 fuse nustatymai tinka ir kitose schemose?

  16. Anonymous parašė:

    Na o as turiu problemu. Ant stacionaraus PC veikia (XP SP2), o ant laptopo hp dv6635en neveikia nei ant Vista nei ant XP, raso malfunctioning ir kad unknown device ir neleidzia suinstalint usbasp draiveriu darant „update drivers“

  17. Lukas parašė:

    O šita atmega8 reik dar programuot nuo atskiro mikrovaldiklio ar jį suprogramuoji iškart padaręs per USB???
    Ačiū už ats.

  18. Lukas parašė:

    o su kuo reik uzprogramuot atmega8 ar jį per kompą užprogramuoji??

  19. meha8 parašė:

    Sveiki,
    surinkau schema taciau pajungiant i usb rodo kad doesn’t recognize neatpazista irenginio. USB driverius suinstaliavau rankiniu budu, tai rodo kad sistemoj yra jisai ir veikia. Kaip issprest problema?

    • droopyk parašė:

      Sveikas, gal jau išsprendei šią problemą? nes man ir taspats, dabar perrinkau visą schemą šnaujo ir vis tiek.. nzn kame bėda..

  20. admin parašė:

    Gla netyčia kištuko išvadai supainioti. Pačiam taip buvo pasitaike.

  21. Alfredas parašė:

    Pagaliau pavyko paleisti,todel noriu pasidalinti ispudziais. Veikia puikiai su Win XP ir Vista. Tikrinau tik su atmega8. HEX nuskaitymui ir irasymui patiko programele eXtreme Burner – AVR: http://extremeelectronics.co.in/avr-tutorials/gui-software-for-usbasp-based-usb-avr-programmers/
    Isbandyta ir su naujausia WinAVR-20090313 versija.
    Pora niuansu: programatorius pas mane dirba tik su mazais greiciais – reikia uzdeti dzemperiuka ant JP3. Beje, Vista irengini atpazino tik prisegus stabilitronus prie D- ir D+, kaip parodyta schemoje http://www.fischl.de/usbasp/
    Aciu dreifui uz puiku aprasyma. Sekmes!

  22. Vidbitas parašė:

    Sveiki

    As noreciau taip pat pabandyti. Bet jus pasakykite, ka su siais programatoriais galima programuoti?

  23. denny parašė:

    Vidbitas, mikrokontrolerius…. ¨…Tam kad išbandyti adapterį pirmiausia prijunkite jį prie programuojamo mikrokontrolerio. Tam tiks bet kuris projektas su AVR mikrovaldikliu ir ISP jungtimi. ….¨ toks jausmas kad net teksto neskaitei…

    ps ne i tema bet, velnias kaip uzknisa ta ¨apsauga nuo spamo¨ yvedinet, nieko ten nesimato…. :/

  24. Justis1018 parašė:

    sveiki, esu jaunas praktikantas 😀 ieskau kur ir su kuo galeciau uzprogramuoti pic16F628A-I/P mikrokontroleri, dekui uz pagalba

  25. Anonymous parašė:

    Sveiki, ar ant windows 7 x64 kas nors bandet paleist programatoriu? Kazkas su driver’iais ne taip. Ant windows XP SP2 viskas tvarkoj.

  26. Anonymous parašė:

    Gal galite paaiskinti ar teisingai suprantu, kad per R7 eina 5V i informacini laida???

  27. uBiT parašė:

    Man nustačius fuse, nebeskaito/neberašo atmega8, o kitas: atmega16, atmega168 puikiausiai skaito, čia turbūt atmega8 užsilokino, gal žino kas kaip atrakint?

  28. Fohnas parašė:

    As esu pasidares AVR910 Prottoss programatoriu is cia:
    http://www.qubbeks.puslapiai.lt/articles.php?article_id=32

  29. Lukas parašė:

    O kaip reikia pati programatoriaus atmega uzprogramuot? Prijungiau bsd programatoriu prie isp portuko, prijungiau usb del maitinimo, paleidziu avr dude, ir pasirenku irasyt i flasha sita hex failiuka kur prikabintas. Uzsiprogramuoja viskas ok, bet paciam gale raso, kad read to file failed. Prijungus prie usb po programavimo jo vistiek neatpazista. Programuojant buvo uzdet jumperiukas JP1, kiek supratau po to ji reikia nuimt

    Gal zinot ka padariau ne taip? kame galetu beda buti?

  30. admin parašė:

    Firmware naujausia iraset is cia http://www.fischl.de/usbasp/?

    Seniai besinaudojau juo bet po naujausio firmwaro irasymo atrodo veike be problemu.

  31. Simonas parašė:

    Sveiki, turiu tokį klausima, viską sujungiau pagal šią schemą, kompiuteris atpažino ir driverius priėmė, tačiau kai bandau nuskaityti ar kažką padaryti kito, per extreme burner avr, jis taip pat randa usbasp bando įjungti power, tada gaunu error „Power on Failed“ ir „Cannot comunicate with Target Chip“ gal kam nors buvo tokia problema ir žinot kaip ją sutvarkyti?

Parašykite komentarą