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, Siječanj
Anonim

Ove upute su korisne ako:

* Imate svoj arduino s 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 -a) - imate čist attiny2313/attiny48 itd. Na koji želite snimiti firmver. Obično biste za programiranje svog novog čipa morali imati ISP -a (u sistemskom programeru) poput USBTinyISP -a. 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 poput programera.

Korak 1: Što vam treba?

* radni Arduino (ili klon - koristim BBB - BareBonesBoard i RBBB - RealBareBonesBoard by ModernDevices) * čip koji želite programirati (testirano s atmega8, atmega168, atmega368, attiny2313, attiny13) * ploču ili ploča s 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 podatkovnu tablicu!) + 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 zaglavlja ISP -a nalazi se na trećoj slici. Postoje 3 LED diode za označavanje statusa programera. pin 9 - plava LED dioda - to je zvuk programera. pin 8 - crveni LED - označava grešku pin 7 - green led - označava da se programiranje odvija (bio sam lijen pa nisam odgovarao bojama u postavkama) Ovdje su crteži napravljeni u Fritzingu Također možete napraviti MEGA-isp štit. Yaroslav Osadchyy dizajnirao je štit u orlu. Datoteke orla možete pronaći na njegovoj web stranici:

Korak 3: Prijenos skice

Preuzmite skicu s mega-isp google koda. (Avrisp.03.zip u vrijeme pisanja). Raspakirajte ga i pokrenite arduino ide te 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 upotrebu 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 naredbenog retka, pokušajte: $ avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 /dev /USB0 je port koji je arduino spojen 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,13 s avrdude: Potpis uređaja = 0x1e9406 avrdude: safemode: Osigurači OK avrdude učinjeno. Hvala vam. To znači da je sve u redu. Ako dobijete pogreške - provjerite zadnji korak.

Korak 5: Snimanje USBtinyISP firmvera na Attiny2313

USBTinyISP je izvrstan programer iz LadyAde koji je jako jeftin - 22 USD. Imao sam rezervni attiny2313 i neke dijelove pa sam ih 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 izraditi:). Barem kupite PCB ako ga želite izgraditi. Možete ga nabaviti od Adafruit -a. Povežite ATtiny2313Na posljednjoj slici možete vidjeti attiny2313 s pinovima koji se koriste za ISP -a u crvenoj boji. Slika je iz vodiča LadyAda avr. Snimanje firmvera: Raspakirajte firmver USBTinyISP. Idite na spi dir i pokrenite $ avrdude -p pt2313 -P /dev /ttyUSB0 -c avrisp -b 19200 da provjerite je li sve u redu s č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 bljesak: w: main.hex -P /dev /ttyUSB0 -c avrisp -b 19200 Voila. Vaš attiny2313 ima firmver USBTinyISP.

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 GUI-a 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 ograničenje za programer 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 s izbornika Alati) Commanline Također možete koristiti naredbeni redak: Uredi arduino/hardware/bootloaders/atmega/Makefile i promijeni ISPTOOL/PORT /SPEED to: # unesite parametre alata avrdude isp 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

Pogreške Avrdude: avrdude: ser_open (): ne može otvoriti uređaj "/dev/ttyUSB0": Nema takve datoteke ili imenika Naveli ste 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 ponovno ili upotrijebite -F za poništavanje ove provjere. Ovo je vrsta opće pogreške. Vaš čip nije prepoznat. Provjerite vezu na ploči (GND/5V spojeno na pinove?) Dobit ćete ovu pogrešku kada je vaš čip konfiguriran za korištenje vanjskog oscilatora i ne radi (nema ga ili ne oscilira pravilno - 22pf kape nedostaje?)