Sadržaj:

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 для начинающих. 2024, Novembar
Anonim
Kako programirati AVR (arduino) s drugim Arduinom
Kako programirati AVR (arduino) s drugim Arduinom
Kako programirati AVR (arduino) s drugim Arduinom
Kako programirati AVR (arduino) s drugim Arduinom
Kako programirati AVR (arduino) s drugim Arduinom
Kako programirati AVR (arduino) s drugim Arduinom

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?

Šta ti treba ?
Šta ti 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

Izrada Mega-isp programera na pločici
Izrada Mega-isp programera na pločici
Izrada Mega-isp programera na pločici
Izrada Mega-isp programera na pločici
Izrada Mega-isp programera na pločici
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

Otpremanje skice
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

Korištenje s Avrdudeom
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

Snimanje USBtinyISP firmvera na Attiny2313
Snimanje USBtinyISP firmvera na Attiny2313
Snimanje USBtinyISP firmvera na Attiny2313
Snimanje USBtinyISP firmvera na Attiny2313
Snimanje USBtinyISP firmvera na Attiny2313
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

Snimanje Arduino Bootloader -a
Snimanje Arduino Bootloader -a
Snimanje Arduino Bootloader -a
Snimanje Arduino Bootloader -a
Snimanje Arduino Bootloader -a
Snimanje 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

Rješavanje problema
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?)

Preporučuje se: