Kako programirati AVR (arduino) s drugim Arduinom: 7 koraka
Kako programirati AVR (arduino) s drugim Arduinom: 7 koraka

Video: Kako programirati AVR (arduino) s drugim Arduinom: 7 koraka

Video: Kako programirati AVR (arduino) s drugim Arduinom: 7 koraka
Video: Программирование Ардуино с нуля. Arduino для начинающих. 2025, Januar
Anonim

Ove upute su korisne ako:

* Imate svoj arduino sa atmega168 i kupili ste atmega328 u lokalnoj trgovini elektronike. Nema arduino bootloader * za koji želite napraviti projekt koji ne koristi arduino - samo običan AVR čip (poput USBTinyISP) - imate čist attiny2313/attiny48 itd. Na koji želite narezati firmver. Obično biste morali imati ISP -a (u sistemskom programatoru) poput USBTinyISP -a da biste programirali svoj novi čip. Imajući arduino, možete ga naučiti da bude programer zahvaljujući sjajnom poslu koji je obavio Randall Bohn. On je stvorio Mega -ISP - arduino skicu koja radi kao programer.

Korak 1: Šta vam treba?

* radni Arduino (ili klon - koristim BBB - BareBonesBoard i RBBB - RealBareBonesBoard by ModernDevices) * čip koji želite programirati (testirano sa atmega8, atmega168, atmega368, attiny2313, attiny13) * ili ploča sa ISP zaglavljem * 3 LED diode + 3 otpornika * žice za matičnu ploču

Korak 2: Izrada Mega-isp programera na pločici

Postoje dva načina povezivanja vašeg Arduina za programiranje čipa.

Možete priključiti svoj avr čip na matičnu ploču i spojiti 5v i GND na odgovarajuće pinove (provjerite tablicu s podacima!) + Otpornik za povlačenje za resetiranje i povezivanje pinova s vašeg arduina na čip. Ovo su linije na Arduinu i njihova funkcija 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Reset) Ili možete napraviti 2x3pin ISP zaglavlje koje možete priključiti na ploču koja pruža jednu (drugu arduino ploču). Ispis za ISP zaglavlje nalazi se na trećoj slici. Postoje 3 LED diode koje označavaju status programera. pin 9 - plava LED dioda - to je zvuk programatora. pin 8 - crvena led lampica - označava grešku pin 7 - green led - označava da se programiranje odvija (bio sam lijen pa nisam odgovarao bojama u postavkama) Evo crteža napravljenih u Fritzingu Možete i napraviti MEGA-isp štit. Yaroslav Osadchyy dizajnirao je štit u orlu. Datoteke orla možete pronaći na njegovoj web stranici:

Korak 3: Otpremanje skice

Preuzmite skicu sa mega-isp google koda. (Avrisp.03.zip u vrijeme pisanja). Raspakirajte ga i pokrenite arduino ide i otvorite avrisp.pde. Prenesite ga na svoju arduino ploču. LED otkucaja srca trebao bi početi kucati.

Korak 4: Korištenje s Avrdudeom

Za korištenje s avrdudeom (i svim grafičkim sučeljima koja ga koriste) morate odabrati programer 'avrisp'. najsigurniji bitrate je 19200.

Da biste testirali svoj novi atmega168 iz komandne linije, pokušajte: $ avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 /dev /USB0 je port koji je arduino povezan na moj linux box (vaš je možda com5). To se može provjeriti u arduino IDE -u u Alati -> Serijski port. Trebali biste dobiti: [kabturek@hal -9000 ~]# avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 avrdude: AVR uređaj inicijaliziran i spreman za prihvaćanje uputa Čitanje | ################################################# | 100% 0.13s avrdude: Potpis uređaja = 0x1e9406 avrdude: safemode: Osigurači OK avrdude učinjeno. Hvala ti. To znači da je sve u redu. Ako dobijete greške - provjerite posljednji korak.

Korak 5: Snimanje USBtinyISP firmvera na Attiny2313

USBTinyISP je odličan programer iz LadyAde koji je zaista jeftin - 22 USD. Imao sam rezervni attiny2313 i neke dijelove pa sam odlučio napraviti sam. Ako nemate iskustva u izradi PCB -a, savjetujem vam da kupite komplet jer je kvalitetniji nego što ga možete sami napraviti:). Barem kupite PCB ako ga želite izgraditi. Možete ga nabaviti od Adafruit -a. Povežite ATtiny2313Na posljednjoj slici možete vidjeti attiny2313 sa pinovima koji se koriste za ISP -a u crvenoj boji. Slika je iz vodiča LadyAda avr. Snimanje firmvera: Raspakirajte USBTinyISP firmver. Idite na spi dir i pokrenite $ avrdude -p pt2313 -P /dev /ttyUSB0 -c avrisp -b 19200 da provjerite je li sve u redu sa čipom. Sada postavite osigurače: $ avrdude -P /dev /ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m Sada biste trebali priključiti vanjski oscilator od 12 mhz na čip. I narežite firmver: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P /dev /ttyUSB0 -c avrisp -b 19200 Voila. Vaš attiny2313 ima USBTinyISP firmver.

Korak 6: Paljenje Arduino Bootloader -a

SpajanjeIzvadio sam malo jer sam upotrijebio RBBB da pojednostavim veze. Shema je na slici #2. Ako koristite 2 arduina, upotrijebite sliku #3 i spojite ISP pin na ICSP 2x3glavlje na drugom (slave) arduinu. Samo priključite USB napajanje na prvu ploču. Način grafičkog sučelja Ovo je malo zeznuto jer ne možete samo koristiti Tools-> Burn Bootloader-> w/ AVR ISP jer je zadana brzina prevelika za mega-isp. Pronađite avrdude.conf koji dolazi s arduino IDE -om (u arduino/hardware/tools/avrdude.conf) i promijenite granicu za programere avrisp sa 115200 na 19200 (oko retka 312) Pronađite i promijenite u avrdude.conf programer id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 115200; # zadano je 115200 type = stk500;; do: programer id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 19200; # zadano je 115200 type = stk500;; Sada možete koristiti Alati -> Burn Bootloader -> w/AVR ISP (nakon što odaberete odgovarajuću ploču iz izbornika Alati) Commanline Također možete koristiti naredbenu liniju: Uredi arduino/hardware/bootloaders/atmega/Makefile i promijeni ISPTOOL/PORT /SPEED za: # unesite parametre za avrdude isp alat ISPTOOL = avrisp ISPPORT = /dev /ttyUSB0 ISPSPEED = -b 19200 ne možete napisati $ make diecimila_isp za spaljivanje osigurača i pokretačkog programa. Test Sada spojite novi arduino na USB i spali trepćući!

Korak 7: Rješavanje problema

Greške Avrdude: avrdude: ser_open (): ne može otvoriti uređaj "/dev/ttyUSB0": Nema takve datoteke ili direktorija Imate naveden pogrešan port (-P) ili vaš arduino nije povezan. provjerite vezu avrdude: Potpis uređaja = 0x000000 avrdude: Svaka čast! Nevažeći potpis uređaja. Dvaput provjerite veze i pokušajte ponovo ili koristite -F da biste poništili ovu provjeru. Ovo je neka opšta greška. Vaš čip nije prepoznat. Provjerite vezu na ploči (GND/5V spojeno na pinove?) Dobit ćete ovu grešku kada je vaš čip konfiguriran za korištenje vanjskog oscilatora i ne radi (nema ga ili ne oscilira pravilno - 22pf kape nedostaje?)