Cuprins:

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 2024, Noiembrie
Anonim
Cum se programează un AVR (arduino) cu un alt Arduino
Cum se programează un AVR (arduino) cu un alt Arduino
Cum se programează un AVR (arduino) cu alt Arduino
Cum se programează un AVR (arduino) cu alt Arduino
Cum se programează un AVR (arduino) cu alt Arduino
Cum se programează un AVR (arduino) cu alt Arduino

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?

De ce ai nevoie ?
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

Realizarea programatorului Mega-isp pe o placă de calcul
Realizarea programatorului Mega-isp pe o placă de calcul
Realizarea programatorului Mega-isp pe o placă de calcul
Realizarea programatorului Mega-isp pe o placă de calcul
Realizarea programatorului Mega-isp pe o placă de calcul
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

Încărcarea schiței
Î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

Utilizarea cu Avrdude
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

Înregistrarea firmware-ului USBtinyISP pe un Attiny2313
Înregistrarea firmware-ului USBtinyISP pe un Attiny2313
Înregistrarea firmware-ului USBtinyISP pe un Attiny2313
Înregistrarea firmware-ului USBtinyISP pe un Attiny2313
Înregistrarea firmware-ului USBtinyISP pe un Attiny2313
Înregistrarea 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

Arderea Arduino Bootloader
Arderea Arduino Bootloader
Arderea Arduino Bootloader
Arderea Arduino Bootloader
Arderea Arduino Bootloader
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

Depanare
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 ?)

Recomandat: