Cum se programează un AVR (arduino) cu un alt Arduino: 7 pași
Cum se programează un AVR (arduino) cu un alt Arduino: 7 pași

Video: Cum se programează un AVR (arduino) cu un alt Arduino: 7 pași

Video: Cum se programează un AVR (arduino) cu un alt Arduino: 7 pași
Video: Cum se utilizează SSD1306 128x32 OLED Display I2C cu cod Arduino 2025, Ianuarie
Anonim

Acest instructable este util dacă:

* ți-ai luat arduino cu atmega168 și ai cumpărat un atmega328 de la magazinul tău local de electronice. Nu are un bootloader arduino * pe care doriți să faceți un proiect care nu utilizează arduino - doar un cip AVR obișnuit (cum ar fi USBTinyISP) - aveți un attiny2313 / attiny48 etc curat pe care doriți să ardeți firmware-ul. În mod normal, ar trebui să aveți un ISP (In System Programmer) ca USBTinyISP pentru a programa noul dvs. cip. Având arduino, îl poți învăța să fie programator datorită muncii grozave făcute de Randall Bohn. El a creat Mega-ISP - o schiță arduino care funcționează ca un programator.

Pasul 1: De ce ai nevoie?

* un Arduino funcțional (sau o clonă - folosesc BBB - BareBonesBoard și un RBBB - RealBareBonesBoard de la ModernDevices) * un cip pe care doriți să îl programați (testat cu atmega8, atmega168, atmega368, attiny2313, attiny13) * o placă cu antet ISP * 3 led-uri + 3 rezistențe * fire de panou

Pasul 2: Realizarea programatorului Mega-isp pe o placă de calcul

Există două moduri de a vă conecta Arduino pentru a programa un cip.

Puteți conecta cipul dvs. avr la o placă de calcul și puteți conecta 5V și GND la pinii respectivi (verificați foaia tehnică!) + Un rezistor de tragere pentru resetare și conectați pinii de la dvs. arduino la cip. Acestea sunt liniile de pe Arduino și funcția lor 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Resetare). Pinout-ul pentru antetul ISP se află pe a treia imagine Există 3 leduri care indică starea programatorului. pinul 9 - led albastru - este sunetul programatorului. pinul 8 - led roșu - indică o eroare pinul 7 - ledul verde - indică faptul că programarea are loc (am fost leneș, așa că nu am potrivit cu culorile din configurarea mea) Iată desenele făcute în Fritzing Puteți face și un Scutul MEGA-isp. Yaroslav Osadchyy a proiectat scutul în vultur. Puteți obține fișierele vultur pe site-ul său:

Pasul 3: Încărcarea schiței

Descărcați schița din codul google mega-isp. (Avrisp.03.zip în momentul scrierii). Despachetați-l și rulați arduino ide și deschideți avrisp.pde. Încărcați-l pe placa dvs. arduino. Ledul bătăilor inimii ar trebui să înceapă să bată.

Pasul 4: Utilizarea cu Avrdude

Pentru a utiliza cu avrdude (și toate GUI-urile care îl utilizează) trebuie să selectați programatorul „avrisp”. cel mai sigur bitrate este 19200.

Pentru a testa noul dvs. atmega168 de la linia de comandă, încercați: $ avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 / dev / USB0 este portul la care arduino este conectat la caseta mea Linux (poate fi com5). Acest lucru poate fi verificat în IDE arduino în Instrumente -> Port serial. Ar trebui să obțineți: [kabturek @ hal-9000 ~] # avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 avrdude: dispozitivul AVR inițializat și gata să accepte instrucțiunile Lectură | ####################################################### | 100% 0.13s avrdude: Semnătura dispozitivului = 0x1e9406 avrdude: safemode: Siguranțe OK avrdude terminat. Mulțumesc. Asta înseamnă că totul este ok. Dacă primiți erori - verificați ultimul pas.

Pasul 5: Arderea firmware-ului USBtinyISP pe un Attiny2313

USBTinyISP este un programator excelent de la LadyAda, este foarte ieftin - 22 $. Aveam un atiny2313 de rezervă și câteva piese, așa că am decis să fac unul singur. Dacă nu aveți nicio experiență în realizarea PCB-ului, vă sfătuiesc să cumpărați kitul, deoarece este de calitate mai bună decât vă puteți face singuri:). Cumpărați cel puțin PCB-ul dacă doriți să construiți unul. O puteți obține de la Adafruit. Conectați ATtiny2313 În ultima imagine, puteți vedea attiny2313 cu pinii folosiți pentru ISP în roșu. Imaginea este din tutorialul LadyAda avr. Arderea firmware-ului: despachetați firmware-ul USBTinyISP. Mergeți la spi dir și rulați $ avrdude -p pt2313 -P / dev / ttyUSB0 -c avrisp -b 19200 pentru a verifica dacă totul este în regulă cu cipul. Acum setați siguranțele: $ avrdude -P / dev / ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m Acum ar trebui să atașați oscilatorul extern de 12mhz la cip. Și ardeți firmware-ul: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P / dev / ttyUSB0 -c avrisp -b 19200 Voila. Attiny2313 dvs. are firmware-ul USBTinyISP.

Pasul 6: Arderea Arduino Bootloader

Am înșelat puțin pentru că am folosit un RBBB pentru a simplifica conexiunile. Schema este în imaginea nr. 2. Dacă utilizați 2 arduino, utilizați imaginea # 3 și conectați pinul ISP la ICSP 2x3header de pe al doilea arduino (slave). Conectați doar puterea USB la prima placă. Modul GUI Aceasta este o cauză puțin dificilă, nu puteți folosi doar Instrumente-> Burn Bootloader -> w / AVR ISP deoarece viteza implicită este prea mare pentru mega-isp. Găsiți avrdude.conf care vine cu IDE arduino (în arduino / hardware / tools / avrdude.conf) și modificați limitele pentru programatorul avrisp de la 115200 la 19200 (în jurul liniei 312) Găsiți și modificați în programatorul avrdude.conf id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 115200; # implicit este 115200 type = stk500;; la: programator id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 19200; # implicit este 115200 type = stk500;; Acum puteți utiliza Tools -> Burn Bootloader -> w / AVR ISP (după ce selectați placa corespunzătoare din meniul Tools) Commanline Puteți utiliza și linia de comandă: Editați arduino / hardware / bootloaders / atmega / Makefile și modificați ISPTOOL / PORT / SPEED to: # introduceți parametrii pentru instrumentul avrdude ISPTOOL = avrisp ISPPORT = / dev / ttyUSB0 ISPSPEED = -b 19200 nu puteți scrie $ face diecimila_isp pentru a arde siguranțe și bootloader-ul. arde clipitul!

Pasul 7: Depanare

Erori Avrdude: avrdude: ser_open (): nu se poate deschide dispozitivul "/ dev / ttyUSB0": Nu există un astfel de fișier sau director Aveți un port greșit (-P) specificat sau arduino-ul dvs. nu este conectat. verifica conexiunea avrdude: Semnătura dispozitivului = 0x000000 avrdude: Yikes! Semnătură de dispozitiv nevalidă. Verificați dublu conexiunile și încercați din nou sau folosiți -F pentru a anula această verificare. Acesta este un fel de eroare generală. Cipul dvs. nu este recunoscut. Verificați conexiunea de pe placă (GND / 5V conectat la pini?) Veți primi această eroare atunci când cipul dvs. este configurat pentru a utiliza un oscilator extern și nu funcționează (nu există unul sau nu este oscilant corect) - capacele 22pf dispărut ?)