U ovom članku ćemo opisati faze proizvodnje korak po korak. USBasp programator za AVR mikrokontrolere. U posebnim člancima ćemo dati opis instaliranja drajvera za Windows XP i Windows 7 (x64/x86) operativne sisteme. Na kraju posta nalazi se link s potrebnom dokumentacijom za izradu USBasp programatora vlastitim rukama.
USBasp programator, zbog svoje lakoće proizvodnje i upotrebe jeftinih i široko dostupnih elemenata, postao je vrlo popularan među radio-amaterima. Njegovi radni parametri nisu inferiorni od profesionalnih i skupih AVR programera mikrokontrolera.
Prije početka rada, vrijedno je upoznati se s redoslijedom svih izvršenih radnji, i to:
Postoji mnogo verzija USBasp programatora, ali sve su bazirane na glavnom kolu čiji je autor Thomas Fischl. Njegovo autorstvo je i firmver mikrokontrolera programera.
Originalno kolo programatora:
U ovom slučaju, originalna shema je odabrana kao osnova. Budući da upotreba kratkospojnika u originalnom krugu nije sasvim zgodna, odlučeno je koristiti DIP prekidače. Neke vrijednosti otpornika su također promijenjene.
Štoviše, u originalnom kolu, TxD i RxD linije su usmjerene na ISP konektor, iako to nije potrebno (tačnije, ne koriste se u praksi).
Ispod je dijagram sa napravljenim promjenama:
Postoji mnogo verzija PCB-a za ovaj programator, neke se mogu naći na službenoj USBasp web stranici. Međutim, ja sam napravio svoju na osnovu gornjeg dijagrama.
Nažalost, zbog upotrebe DIP prekidača, dizajn ploče je postao malo složeniji, što je dovelo do upotrebe 2 kratka kratkospojnika kako bi se osiguralo da je PCB i dalje jednostrana.
Ispod je rezultat PCB-a:
Kao što se može vidjeti na slici, programer nije koristio SMD elemente. Prazan prostor na ploči je „ispunjen“ poljem mase, uglavnom da bi se izbjeglo urezivanje veliki broj bakra, a takođe smanjuju uticaj smetnji na programator.
Dizajn štampane ploče USBasp programatora prebačen je na laminat od fiberglasa pomoću LUT () metode. Nećemo opisivati kako to učiniti, jer na Internetu ima puno ovih informacija.
Recimo ukratko da se prvo na sjajnom papiru štampa crtež u razmeri 1:1, a zatim se nanosi na očišćenu i odmašćenu bakrenu stranu fiberglasa i fiksira papirnom trakom. Zatim se papirna strana pažljivo zagladi peglom pomoću pegle sa 3 tačke. Nakon toga se sve namoči u vodi i pažljivo očisti od papira.
Sljedeći korak je nagrizanje ploče u otopini željeznog klorida. Tokom jetkanja poželjno je održavati temperaturu rastvora najmanje 40 C, pa teglu sa rastvorom potopite u toplu vodu:
Nakon što je proces jetkanja završen, morate ukloniti toner acetonom.
Sve što sada ostaje je da izbušite rupe. Nakon završetka procesa proizvodnje ploče, možete započeti lemljenje elemenata USBasp programatora, počevši od kratkospojnika.
Spremno za štampanje (in PDF format) Crtež štampane ploče nalazi se na kraju članka. Također možete pronaći nekoliko opcija na službenoj web stranici projekta.
Sada kada su svi dijelovi zalemljeni, preostaje samo da se “flash” Atmegę8 mikrokontroler samog programatora. Za ovo vam je potreban poseban programator, to može biti, na primjer, STK 200 (LPT port), STK500, itd. LPT programator je povezan na USBasp preko IDC-10 konektora.
Imajte na umu da je distribucija pinova u konektoru originalnog programatora (USBasp) na desnoj strani, dok je u verziji opisanoj u ovom članku lijevo:
Distribucija prikazana na slici desno odgovara onoj koju koristi Atmel u svojim originalnim programatorima. Ova distribucija smanjuje rizik od smetnji tokom programiranja u slučaju dugih žica od programatora do kontrolera, budući da je svaki signalni vod zaštićen uzemljenjem, osim MOSI.
Tokom programiranja, omogućite SELF način rada okretanjem DIP prekidača br. 3 u položaj ON. Zahvaljujući tome, postaje moguće programirati Atmega8. Nakon što je programiranje završeno, položaj prekidača (3) mora biti postavljen na OFF.
Najnovija verzija firmvera može se preuzeti sa službene web stranice. Preporučujemo verziju za Atmega8, koja se nalazi u arhivi: usbasp.2011-05-28.tar.gz.
Imajte na umu da prije programiranja Atmega8 morate postaviti osigurače koji imaju sljedeće vrijednosti:
Ako je programiranje uspješno, povežite programator na USB konektor računara, crvena LED dioda bi trebala zasvijetliti, a računar bi trebao obavijestiti da je otkrivena nova oprema.
Način instaliranja drajvera programatora opisan je u posebnim člancima, a tamo su dostupni i sami drajveri. Ispod su direktne veze do ovih članaka:
Najpopularniji program koji podržava USBasp programator je konzolni program AVRdude. Postoji i mnogo izvedenih programa, čija je upotreba mnogo praktičnija. Oni su predstavljeni u članku Poređenje programa koji podržavaju USBasp programator.
Programator je baziran na drajveru kompanije Objective Development i potpuno je kompatibilan u komandama sa originalnim AVR910 programatorom iz ATMEL-a. Opis uređaja. Osigurač štiti strujne vodove USB porta od slučajnih kratkih spojeva u strujnim krugovima programatora. Diode VD1, VD2 su ispravljački silikonski dizajnirani su da smanje napajanje mikrokontrolera na 3,6 V. Prema dokumentaciji, kontroler može raditi na ovom naponu napajanja do frekvencije od nešto više od 14 MHz. LED diode VL1 (" R.D."), VL2 (" WR") signalizira trenutne radnje programera i ukazuje na načine čitanja i pisanja. LED VL3 (" PWR”) označava da se napajanje napaja .
Jumper J1 - ( MODify) se koristi za početno programiranje upravljačkog MK programatora. Kada je zatvoren, eksterni programator se povezuje na ISP konektor i kontrolni program se učitava u MK. Nakon programiranja upravljačkog MK programatora, ovaj kratkospojnik se mora otvoriti i kratkospojnik J2 - NORMal mora biti zatvoren.
Jumper J3 LOW SCK snižava taktnu frekvenciju SPI porta MK programatora na ~20 kHz. Kada je kratkospojnik otvoren, SPI frekvencija je normalna, kada je zatvoren, smanjena. Džamper možete prebaciti u hodu, jer kontrolni program MK programatora provjerava stanje PB0 linije svaki put kada se pristupi SPI portu. Nije preporučljivo mijenjati kratkospojnik dok radi upisivanje/čitanje programabilnog mikrokontrolera, jer će to najvjerovatnije dovesti do izobličenja podataka koji se upisuju/čitaju. Jumper J3 je uveden kako bi omogućio programiranje AVR mikrokontrolera koji se taktiraju iz internog oscilatora od 128 kHz.
Otpornici R10 - R14 su dizajnirani da odgovaraju nivoima signala mikrokontrolera programatora i eksternih kola (programabilnog mikrokontrolera ili drugog programatora). Frekvencija takta SPI porta MK programatora sa otvorenim džamperom J3 je 187,5 kHz. Ovo omogućava da se kontroleri programiraju sa brzinama takta u rasponu od približno 570 kHz za ATtiny/ATmega, 750 kHz za 90S i 7,5 MHz za 89S. Kontroleri se programiraju od 10 do 30 sekundi (kada se koristi uslužni program AVRProg v.1.4 iz paketa AVR Studio) zajedno sa verifikacijom u zavisnosti od količine FLASH memorije i frekvencije takta.
Kvadratni val frekvencije od 1 MHz izlazi na LED izlaz ISP konektora da „oživi“ MK-ove koji su pogrešno programirali bitove osigurača odgovorne za taktiranje. Signal se generira konstantno i ne ovisi o načinu rada programatora. Programator je testiran sa programima AVRProg v.1.4 (uključen u paket AVRStudio), ChipBlasterAVR v.1.07 Evaluation, CodeVisionAVR, AVROSP (ATMEL AVR Open Source Programmer). Za normalan rad kontrolera u kolu, potrebno je da se bitovi programiraju (podesite na “0”) SPIEN, CKOPT, SUT0 I BODEN. Tipično mikrokontroleri koji dolaze iz tvornice, npr. novi, već programirani bit SPIEN. Preostali bitovi moraju biti deprogramirani (postavljeni na "1").
Upute za instalaciju i rad. Flash kontroler. Povežite svježe pečeni programator na računar preko USB-a. Operativni sistem će pronaći novi uređaj - AVR910 USB programator, kada se od njega zatraži da automatski pronađe drajver, odbije i navede putanju do inf datoteke, u zavisnosti od operativnog sistema instaliranog na vašem računaru.
Forum sadrži sve fajlove, kao i štampanu ploču za naš avr programer. Ovdje ću vam pokazati tehnologiju sastavljanja AVR USB programatora i pakovanja u kutiju. Prvo preuzmite arhivu i napravite štampanu ploču.
Zatim lemimo sve detalje na njega. Nisam mogao naći mali kvarc, pa sam zalemio veliki, ali na duge noge, da ga kasnije savijem da ne bi smetao ugradnji ploče u kućište. Zatim biramo odgovarajuću kutiju;
Ploču prilagodimo kućištu, izvršimo sve mjere, izbušimo rupe i eto vam gotov uređaj, sa univerzalnom pločom.
Ako ne postoji posebna mjerna oprema, možete provjeriti pomoću LED-a. LED dioda je povezana sa anodom na LED pin, a katodom sa bilo kojim GND pinom ISP konektora. Kada se uključi napajanje, LED bi trebao svijetliti punim intenzitetom. Prilikom zatvaranja nogu pincetom kristalni oscilator LED dioda bi trebala svijetliti u "punom sjaju" ili ne bi trebala biti sjaja.
Bez grešaka, sklopljeni programator sa ispravno programiranim mikrokontrolerom ne treba da se konfiguriše. Ali ako je RESET ulaz programabilnog MK spojen na napon napajanja pomoću otpornika, tada vrijednost otpornika ne bi trebala biti niža od 10 kOhm - to je zbog smanjen napon napajanjem upravljačkog kontrolera u krug programatora i uvođenjem ograničavajućih otpornika na ISP konektorsku magistralu.
Razgovarajte o članku AVR USB PROGRAMER
Hajde da saznamo šta je ISP interfejs i pogledajmo jeftin i praktičan USB ISP programator. Pogledajmo šematske dijagrame najjednostavnijih programera za AVR mikrokontroleri koristeći COM i LPT portove računara. Ove informacije su sasvim dovoljne za flešovanje većine modela AVR mikrokontrolera ne samo u Linuxu, već iu drugim operativnim sistemima.
Da biste napisali program u AVR mikrokontroler, trebat će vam programator.
Programer- mali je elektronsko kolo, koji vam omogućava da povežete mikrokontroler na jedan od portova računara (COM, LPT, USB) za naknadno čitanje i pisanje firmvera (programiranje).
Postoji dosta različitih dizajna programatora za AVR mikrokontrolere koji se povezuju na različite računarske portove.
Najpouzdanija i najprikladnija opcija je programator koji se spaja na USB port, budući da je novi desktop računare a laptopi više nemaju instalirane COM i LPT portove.
Kod gotovih uređaja, programator je povezan sa mikrokontrolerom preko interfejsa ISP(U sistemskom programiranju) - interfejs za programiranje u sistemu. ISP interfejs se sastoji od nekoliko provodnika kroz koje se primaju signal takta i podaci za povezivanje programatora sa mikrokontrolerom.
ISP sučelje se po pravilu postavlja na ploče u obliku deset ili šest pinova, na koje je programator povezan preko odgovarajućeg konektora preko kabla.
Rice. 4. ISP interfejs na ploči.
Svrha pinova u ISP sučelju:
Za programiranje mikrokontrolera u krugu dovoljna su samo 4 pina, jer se mikrokontroler može napajati iz samog kola u kojem je instaliran.
Kako spojiti programator na AVR mikrokontrolerski čip ako nije zalemljen u krug? - vrlo jednostavno, koristeći iste pinove ISP sučelja, ako je potrebno, napajanje mikrokontrolera iz izvora napajanja.
Za rad sa AVR čipovima, kupio sam jeftin USB ISP programator za oko 10 dolara. Takav uređaj je sada u prodaji u mnogim domaćim i stranim internet trgovinama, tako da ne bi trebalo biti problema s kupovinom.
Rice. 5. USB ISP - programator sa kablom za in-krug AVR programiranje ATMEL mikrokontroleri.
Ovaj programator je bezbedan za upotrebu, male je veličine i podržava ga većina programa za flešovanje AVR mikrokontrolera. USB ISP radi pod operativnim sistemima Linux sistemi, Mac OS X i Windows. Za Linux, ne morate instalirati nikakve drajvere nakon povezivanja programatora na USB port Uređaj će odmah biti otkriven i spreman za upotrebu.
U nastavku ću dati pinout konektora USB ISP programatora - bit će nam korisno kasnije prilikom povezivanja na mikrokontroler.
Rice. 6. Položaj igle USB konektor ISP (pinout).
Rice. 7. Položaj kontakata u utičnicama konektora povezanih na USB ISP programator.
Šta učiniti ako ne možete kupiti USB ISP programator?- možete programirati mikrokontrolere koristeći jednostavne domaće programatore koji se povezuju na COM ili LPT port, ali je bolje da sami napravite USB ISP i programirate čip mikrokontrolera za njega jednom jednostavnim domaćim programatorom preko COM ili LPT porta.
Rice. 8. Šematski dijagram domaći USB ASP ISP programator.
Detaljne informacije o proizvodnji USB ASP-a, kao i štampanih ploča, drajvera i firmvera za mikrokontroler možete pronaći na službenoj web stranici: http://www.fischl.de/usbasp/
Osim toga, na Internetu postoji dosta resursa o ovom besplatnom programatoru, postoji mnogo gotovih rasporeda tiskanih ploča, uključujući i program SprintLayout, tako da se u ovom članku nećemo detaljnije zadržavati na tome.
Ovaj programer se naziva i "Gromov programer", u čast onoga koji je smislio ovu šemu, tvorca programa Algorithm Builder ( grafičko okruženje za programiranje AVR pod Windows korištenjem algoritamski jezik) - G.L. Gromova.
Ovaj programator vam omogućava da programirate AVR čipove koristeći COM port računara - RS232 interfejs. Da biste sastavili takav programator, trebat će vam minimalno dijelova - 3 diode, 7 otpornika, DB-9 ili DB-25 konektor (ovisno o tome koji spojni konektor je instaliran u vašem računalu) i ISP konektor za spajanje na mikrokontroler (ili samo nekoliko provodnika za čip). U krugu se mogu koristiti bilo koje diode male snage.
Rice. 9. Šematski dijagram programatora AVR mikrokontrolera preko COM porta računara.
Za potpunost informacija, u nastavku ću dati pin-out RS-232 portova za opcije DB-9 i DB-25.
Rice. 10. RS232 - COM port, raspored pina DB-9.
Rice. 11. RS232 COM port DB-25 - lokacija pinova na konektorima.
Kao što znamo, LPT port računara je dizajniran za povezivanje lokalnog štampača (Local Printer Port), ali se ipak često koristi za povezivanje razni uređaji i domaći proizvodi. U ovom slučaju, možemo ga koristiti za programiranje AVR mikrokontrolera, nakon što smo vrlo montirali jednostavan dijagram koji je dat u nastavku.
Rice. 12. Šematski dijagram programatora za AVR mikrokontrolere koji koristi LPT port računara.
Kao što vidite, sklop je još jednostavniji nego u verziji sa, ovdje su nam potrebna samo 4 otpornika male snage i konektor (muški, sa pinovima) za povezivanje na LPT port računara.
Rice. 13. Položaj pinova za konektore LPT porta.
Svi dijelovi i priključci se mogu smjestiti u kućište LPT konektora, a za spajanje na mikrokontroler se može izvući kabel sa konektorom za ISP interfejs ili jednostavno potrebni provodnici za povezivanje na mikročip.
Nakon što ste povezali COM ili LPT programator na mikrokontroler, morate zapamtiti da napajate sam mikročip. Možete koristiti baterije ili napajanje sa stabilizatorom kao izvor napajanja za mikrokontroler; Već smo razgovarali o tome kako ga koristiti.
Pod Linuxom postoji vrlo moćan program koji može raditi sa USB ASP, COM i LPT programerima - ovaj program AVRDUDE, o tome će biti riječi u sljedećim odjeljcima.
Za AVR firmverčipovi za Windows koji koriste COM podatke i LPT programeri potreban vam je program UniProf iz Nikolajeva, koji je univerzalni programator za AVR (avr.nikolaew.org).
PAŽNJA! Budite izuzetno oprezni i pažljivi kada sastavljate i koristite programere koji koriste COM ili LPT port računara, jednostavna greška može lako zapalili ove luke. Za normalan rad Za takve programere treba pokušati koristiti najkraće moguće žice od konektora do kruga programatora i mikrokontrolera. Preporučljivo je da mikroprocesor računara ima frekvenciju ne veću od 1-2 GHz, a preporučljivo je koristiti Win2000 ili WinXP kao OS za programiranje čipova.
Također je važno znati da USB-RS232 (USB-COM port) adapteri najvjerovatnije neće raditi sa Gromovljevim programatorom, tako da je bolje potražiti mašinu sa izvornim COM portom.
Programeri o kojima se govori u članku samo su neki od najpristupačnijih i jednostavna rješenja sa velike liste AVR programatora: USBTinyISP, AVR-Doper, AVR vusbtiny, AVRISP-MkII, FTDI programeri i drugi.
Sada, u svakom slučaju, možete sastaviti programator koji vam je dostupan i flešovati barem jedan čip, na osnovu kojeg možete sastaviti još jedan praktičniji programator ili neki drugi uređaj.
U sljedećem članku ćemo shvatiti kako se povezati različiti modeli AVR mikrokontrolere programatoru, saznajte gdje možete dobiti informacije o pinoutu mikrokontrolera.
22. septembar 2011. u 20:11Kao što pozorište počinje vješalicom, tako i programiranje mikrokontrolera počinje odabirom dobrog programatora. Pošto počinjem da savladavam mikrokontrolere iz ATMEL-a, morao sam da se dobro upoznam sa onim što proizvođači nude. U ponudi imaju puno zanimljivih i ukusnih stvari, samo po previsokim cijenama. Na primjer, šal sa jednim dvadesetokrakim mikrokontrolerom s par otpornika i dioda kao uprtač košta kao "avion". Stoga se postavilo pitanje o samostalno sastavljanje programer Nakon dugog proučavanja razvoja iskusnih radio-amatera, odlučeno je sastaviti dobro dokazani USBASP programator, čiji je mozak Atmega8 mikrokontroler (postoje i opcije firmvera za atmega88 i atmega48). Minimalno ožičenje mikrokontrolera omogućava vam da sastavite prilično minijaturni programator koji uvijek možete ponijeti sa sobom, poput fleš diska.
Autor ovog programera je Nemac Thomas Fichl, njegova razvojna stranica sa dijagramima, fajlovima štampanih ploča i drajverima.
Nakon što je odlučeno da sastavim minijaturni programator, precrtao sam kolo za Atmega8 mikrokontroler u TQFP32 paketu (pinout mikrokontrolera se razlikuje od pinouta u DIP paketu):
Jumper J1 se koristi ako je potrebno flešovati mikrokontroler sa frekvencijom takta ispod 1,5 MHz. Inače, ovaj skakač se može potpuno eliminisati postavljanjem 25. noge MK-a na zemlju. Tada će programator uvijek raditi na smanjenoj frekvenciji. Osobno sam primijetio da programiranje smanjenom brzinom traje djelić sekunde duže, pa stoga sada ne povlačim džemper, već stalno njime šivam.
Zener diode D1 i D2 se koriste za usklađivanje nivoa između programatora i USB magistrala, radiće i bez njih, ali ne na svim računarima.
Plava LED dioda pokazuje da je krug spreman za programiranje, crveni LED svijetli tokom programiranja. Kontakti za programiranje nalaze se na IDC-06 konektoru, pinout je u skladu sa ATMEL standardom za 6-pin ISP konektor:
Ovaj konektor sadrži kontakte za napajanje programabilnih uređaja; USB port računara, pa morate biti oprezni i izbjegavati kratke spojeve. Isti konektor se takođe koristi za programiranje kontrolnog mikrokontrolera da biste to uradili, samo povežite pinove za resetovanje na konektoru i na mikrokontroleru (pogledajte crvenu isprekidanu liniju na dijagramu). U autorskom krugu to se radi sa kratkospojnikom, ali nisam zatrpao ploču i uklonio je. Za jedan firmver, dovoljan je jednostavan žičani kratkospojnik. Ispostavilo se da je ploča dvostrana, dimenzija 45x18 mm.
Konektor za programiranje i kratkospojnik za smanjenje brzine programatora nalaze se na kraju uređaja, što je vrlo zgodno
Nakon treptanja firmvera, LED dioda spojena na nogu 23 mikrokontrolera bi trebala upaliti. Ovo će biti siguran znak da je programator uspješno programiran i spreman za upotrebu.
Odmah će se pojaviti prozor koji vas upozorava da upravljački program koji se instalira nema digitalni potpis za male mekane:
Ignoriramo upozorenje i nastavljamo instalaciju, nakon kratke pauze pojavit će se prozor koji nas obavještava da je operacija instalacije drajvera uspješno završena
To je to, programator je sada spreman za upotrebu.
Osigurači se upisuju u MK memoriju, kao što možete pretpostaviti, pritiskom na tipku Write All. Dugme Sačuvaj čuva trenutnu konfiguraciju, a dugme Učitaj vraća sačuvanu. Istina, nisam mogao smisliti praktičnu upotrebu ovih dugmadi. Dugme Default je dizajnirano za snimanje standardne konfiguracije osigurača, one s kojom mikrokontroleri dolaze iz tvornice (obično 1 MHz od internog RC-a).
Generalno, za sve vreme dok koristim ovaj programator, pokazao se kao najbolji po stabilnosti i brzini rada. Radio je bez problema i na starom desktop računaru i na novom laptopu.
Možete preuzeti PCB datoteku u SprintLayout koristeći
Mikrokontroleri iz ATMEL-a su stekli veliku popularnost. Mogu se programirati direktno na ploči prije upotrebe. gotov uređaj preko jednostavnog ISP kabla spojenog na LPT port personalni kompjuter ili malo komplikovaniji kabl spojen na COM port. Ali danas sve više matične ploče proizvodi se bez i jednog i drugog, au laptopima LPT je davno nestao, zamijenjen USB interfejsom. Međutim, programeri za ovaj interfejs takođe postoje i dostupni su.
Za mjerilo, u blizini se nalazi obična LED dioda od 5 mm.
Ovaj USBASP programator podržava sljedeće mikrokontrolere:
Lista podržanih MK-ova
Attiny11, Attiny12, Attiny15, Attiny22, Attiny24, Attiny25, Attiny28, Attiny44, Attiny84, Attiny85, Attiny861, Attiny861
AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, T90S4433, AT90S4434, AT90S8515, AT90S8535
ATmega8, ATmega48, ATmega88, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega165, ATmega168, ATmega169, ATmega32, ATmega323, ATmega323, AT
ATmega3250, ATmega329, ATmega64, ATmega640, ATmega644, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega128, ATmega1280, ATmega644, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega128, ATmega1280, ATmega1280, ATmega641, ATmega162 03, ATmega406, 15, ATmega8535
AT90CAN32, AT90CAN64, AT90CAN128
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B
AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647
AT89S51, AT89S52
AT86RF401