Turinys:

Kaip užprogramuoti AVR (arduino) naudojant kitą „Arduino“: 7 žingsniai
Kaip užprogramuoti AVR (arduino) naudojant kitą „Arduino“: 7 žingsniai

Video: Kaip užprogramuoti AVR (arduino) naudojant kitą „Arduino“: 7 žingsniai

Video: Kaip užprogramuoti AVR (arduino) naudojant kitą „Arduino“: 7 žingsniai
Video: Как использовать SSD1306 128x32 OLED-дисплей I2C с кодом Arduino 2024, Lapkritis
Anonim
Kaip užprogramuoti AVR (arduino) naudojant kitą „Arduino“
Kaip užprogramuoti AVR (arduino) naudojant kitą „Arduino“
Kaip užprogramuoti AVR (arduino) naudojant kitą „Arduino“
Kaip užprogramuoti AVR (arduino) naudojant kitą „Arduino“
Kaip užprogramuoti AVR (arduino) naudojant kitą „Arduino“
Kaip užprogramuoti AVR (arduino) naudojant kitą „Arduino“

Ši instrukcija yra naudinga, jei:

* arduino turite su atmega168 ir vietinėje elektronikos parduotuvėje nusipirkote atmega328. Jame nėra „arduino“įkrovos tvarkyklės *, kurį norite sukurti projektui, kuriame nenaudojamas „arduino“- tik įprastas AVR lustas (pvz., „USBTinyISP“) - turite švarų „attiny2313/attiny48“ir tt, kuriame norite įrašyti programinę įrangą. Paprastai, norėdami užprogramuoti naują lustą, turėsite turėti ISP („System Programmer“), pvz., „USBTinyISP“. Turėdami arduino, galite išmokyti jį būti programuotoju dėl nuostabaus Randalo Bohno darbo. Jis sukūrė „Mega -ISP“- arduino eskizą, kuris veikia kaip programuotojas.

1 žingsnis: ko jums reikia?

Ko tau reikia ?
Ko tau reikia ?

* veikiantis „Arduino“(arba klonas - aš naudoju BBB - „BareBonesBoard“ir RBBB - „RealBareBonesBoard by ModernDevices“) * mikroschema, kurią norite užprogramuoti (išbandyta naudojant „atmega8“, „atmega168“, „atmega368“, „attiny2313“, „attiny13“) * duonos lentą arba plokštė su ISP antrašte * 3 šviesos diodai + 3 rezistoriai * duonos plokštės laidai

2 žingsnis: Padarykite „Mega-ISP“programuotoją ant duonos lentos

„Mega-ISP“programuotojo kūrimas ant duonos lentos
„Mega-ISP“programuotojo kūrimas ant duonos lentos
„Mega-ISP“programuotojo kūrimas ant duonos lentos
„Mega-ISP“programuotojo kūrimas ant duonos lentos
„Mega-ISP“programuotojo kūrimas ant duonos lentos
„Mega-ISP“programuotojo kūrimas ant duonos lentos

Yra du būdai, kaip prijungti „Arduino“prie lusto programavimo.

Galite prijungti savo avr lustą prie duonos lentos ir prijungti 5v ir GND prie atitinkamų kaiščių (patikrinkite duomenų lapą!) + Ištraukimo rezistorių, kad iš naujo nustatytumėte ir prijungtumėte kaiščius nuo jūsų arduino prie lusto. Tai yra „Arduino“linijos ir jų funkcija 13 - SCK 12 - MISO 11 - MOSI 10 - RST (iš naujo nustatyti) Arba galite sukurti 2x3 kontaktų ISP antraštę, kurią galite prijungti prie plokštės, kurioje yra viena (kita arduino plokštė). IPT antraštės kontaktas yra trečiame paveikslėlyje. Yra 3 šviesos diodai, rodantys programuotojo būseną. 9 kaištis - mėlyna lemputė - tai programuotojo švytėjimas. 8 smeigtukas - raudonas šviesos diodas - rodo klaidą smeigtukas 7 - žalias šviesos diodas - rodo, kad programavimas vyksta (buvau tingus, todėl neatitikau nustatymų spalvų) Čia yra brėžiniai, padaryti „Fritzing“. MEGA-ISP skydas. Jaroslavas Osadchyy sukūrė skydą iš erelio. Erelio failus galite gauti jo svetainėje:

3 žingsnis: eskizo įkėlimas

Įkeliamas eskizas
Įkeliamas eskizas

Atsisiųskite eskizą iš „mega-isp“„Google“kodo. (Avrisp.03.zip rašymo metu). Išpakuokite jį ir paleiskite arduino ide ir atidarykite avrisp.pde. Įkelkite jį į savo arduino lentą. Širdies plakimas turėtų pradėti plakti.

4 veiksmas: naudojimas su „Avrdude“

Naudojimas su „Avrdude“
Naudojimas su „Avrdude“

Norėdami naudoti su avrdude (ir visomis jį naudojančiomis GUI), turite pasirinkti „avrisp“programuotoją. saugiausias bitų greitis yra 19200.

Norėdami išbandyti savo naująjį „atmega168“iš komandinės eilutės, pabandykite: $ avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 /dev /USB0 yra prievadas, kuriame arduino yra prijungtas prie mano „Linux“dėžutės (jūsų gali būti „com5“). Tai galima patikrinti naudojant arduino IDE, esantį Įrankiai -> Serijinis prievadas. Turėtumėte gauti: [kabturek@hal -9000 ~]# avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 avrdude: AVR įrenginys inicijuotas ir paruoštas priimti instrukcijas Skaitymas | ############################################### | 100% 0.13s avrdude: Įrenginio parašas = 0x1e9406 avrdude: saugus režimas: saugikliai OK avrdude done. Ačiū. Tai reiškia, kad viskas gerai. Jei gaunate klaidų - patikrinkite paskutinį veiksmą.

5 veiksmas: USBtinyISP programinės įrangos įrašymas į „Attiny2313“

„USBtinyISP“programinės įrangos įrašymas į „Attiny2313“
„USBtinyISP“programinės įrangos įrašymas į „Attiny2313“
„USBtinyISP“programinės įrangos įrašymas į „Attiny2313“
„USBtinyISP“programinės įrangos įrašymas į „Attiny2313“
„USBtinyISP“programinės įrangos įrašymas į „Attiny2313“
„USBtinyISP“programinės įrangos įrašymas į „Attiny2313“

„USBTinyISP“yra puikus „LadyAda“programuotojas, kuris yra tikrai pigus - 22 USD. Turėjau atsarginį „attiny2313“ir kai kurias dalis, todėl nusprendžiau pasigaminti pats. Jei neturite patirties gaminant PCB, patariu pirkti rinkinį, nes jis yra kokybiškesnis nei galite pasigaminti patys:). Bent jau nusipirkite PCB, jei norite ją sukurti. Jį galite gauti iš „Adafruit“. Prijunkite „ATtiny2313“Paveikslėlis yra iš „LadyAda avr“mokymo programos. Firmware įrašymas: išpakuokite USBTinyISP programinę -aparatinę įrangą. Eikite į „spi dir“ir paleiskite $ avrdude -p pt2313 -P /dev /ttyUSB0 -c avrisp -b 19200, kad patikrintumėte, ar viskas gerai su lustu. Dabar nustatykite saugiklius: $ avrdude -P /dev /ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m Dabar prie mikroschemos pritvirtinkite 12 MHz išorinį osciliatorių. Ir įrašykite programinę -aparatinę įrangą: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P /dev /ttyUSB0 -c avrisp -b 19200 Voila. Jūsų attiny2313 turi USBTinyISP programinę įrangą.

6 veiksmas: „Arduino“įkrovos įkėlimas

„Arduino Bootloader“deginimas
„Arduino Bootloader“deginimas
„Arduino Bootloader“deginimas
„Arduino Bootloader“deginimas
„Arduino Bootloader“deginimas
„Arduino Bootloader“deginimas

Aš šiek tiek sukčiavau, nes norėjau supaprastinti ryšius naudodamas RBBB. Schema yra 2 paveiksle. Jei naudojate 2 arduinus, naudokite 3 paveikslėlį ir prijunkite ISP kaištį prie ICSP 2x3header ant antrojo (slave) arduino. USB jungtį prijunkite tik prie pirmosios plokštės. GUI būdas Tai šiek tiek sudėtinga, nes jūs negalite tiesiog naudoti Įrankiai-> Įrašyti įkrovos įkėlimo programą-> su AVR ISP, nes numatytasis greitis yra per didelis mega-ISP. Raskite avrdude.conf, pateiktą kartu su arduino IDE (programoje arduino/hardware/tools/avrdude.conf), ir pakeiskite avrisp programuotojo ribą nuo 115200 iki 19200 (aplink 312 eilutę) Raskite ir pakeiskite avrdude.conf programmer id = "avrisp"; desc = "Atmel AVR ISP"; baudos sparta = 115200; # numatytasis yra 115200 tipas = stk500;; to: programuotojas id = "avrisp"; desc = "Atmel AVR ISP"; baudos sparta = 19200; # numatytasis yra 115200 tipas = stk500;; Dabar galite naudoti Įrankiai -> Įrašyti įkrovos tvarkyklę -> su AVR ISP (pasirinkę tinkamą plokštę meniu Įrankiai) Komandinė eilutė Taip pat galite naudoti komandų eilutę: Redaguoti arduino/hardware/bootloaders/atmega/Makefile ir pakeisti ISPTOOL/PORT /SPEED: sudegink blinky!

7 žingsnis: trikčių šalinimas

Problemų sprendimas
Problemų sprendimas

Avrdude klaidos: avrdude: ser_open (): negaliu atidaryti įrenginio "/dev/ttyUSB0": Nėra tokio failo ar katalogo Nurodytas neteisingas prievadas (-P) arba jūsų arduino neprijungtas. patikrinkite ryšį avrdude: Įrenginio parašas = 0x000000 avrdude: Taip! Netinkamas įrenginio parašas. Dar kartą patikrinkite jungtis ir bandykite dar kartą arba naudokite -F, kad nepaisytumėte šio patikrinimo. Tai yra bendra klaida. Jūsų mikroschema neatpažįstama. Patikrinkite plokštės jungtį (GND/5V prijungta prie kaiščių?) Šią klaidą gausite, kai jūsų lustas sukonfigūruotas naudoti išorinį osciliatorių ir jis neveikia (jo nėra arba jis tinkamai nesvyra - 22pf dangteliai) dingęs ?)

Rekomenduojamas: