Hoe om 'n AVR (arduino) met 'n ander Arduino te programmeer: 7 stappe
Hoe om 'n AVR (arduino) met 'n ander Arduino te programmeer: 7 stappe

Video: Hoe om 'n AVR (arduino) met 'n ander Arduino te programmeer: 7 stappe

Video: Hoe om 'n AVR (arduino) met 'n ander Arduino te programmeer: 7 stappe
Video: Arduino MASTERCLASS | Volledige programmeerworkshop in 90 minuten! 2025, Januarie
Anonim

Hierdie instruksies is handig as:

* u het u arduino met atmega168 en u het 'n atmega328 by u plaaslike elektronikawinkel gekoop. Dit het nie 'n arduino bootloader nie * u wil 'n projek maak wat nie arduino gebruik nie - net 'n gewone AVR -chip (soos die USBTinyISP) - u het 'n skoon attiny2313/attiny48 ens waarop u firmware wil verbrand. Normaalweg moet u 'n ISP (In System Programmer) soos USBTinyISP hê om u nuwe chip te programmeer. As u die arduino het, kan u dit leer om 'n programmeerder te wees, te danke aan die uitstekende werk wat Randall Bohn verrig het. Hy het Mega -ISP geskep - 'n arduino -skets wat soos 'n programmeerder werk.

Stap 1: Wat het u nodig?

* 'n werkende Arduino (of 'n kloon - ek gebruik die BBB - BareBonesBoard en 'n RBBB - RealBareBonesBoard deur ModernDevices) * 'n chip wat u wil programmeer (getoets met atmega8, atmega168, atmega368, attiny2313, attiny13) * 'n broodbord of 'n bord met ISP -kop * 3 leds + 3 weerstande * broodborddrade

Stap 2: Maak die Mega-isp programmeerder op 'n broodbord

Daar is twee maniere om u Arduino aan te sluit om 'n chip te programmeer.

U kan u avr -chip aan 'n broodbord koppel en 5v en GND aan die onderskeie penne koppel (kyk die datablad!) + 'N pullup -weerstand om terug te stel en penne van u arduino na die chip te dra. Dit is die lyne op Arduino en hul funksie 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Reset) Of u kan 'n 2x3pin ISP -kopstuk maak wat u kan aansluit op 'n bord wat een bied ('n ander arduino -bord). Die pinout vir die ISP -kop is op die derde prent. Daar is 3 LED's om die status van die programmeerder aan te dui. pen 9 - blou led - dit is die hartklop van die programmeerder. pen 8 - rooi led - dui op 'n fout pen 7 - groen led - dui aan dat die programmering plaasvind (ek was lui, so ek pas nie by die kleure in my opset nie) Hier is die tekeninge wat in Fritzing gemaak is. U kan ook 'n MEGA-isp skild. Yaroslav Osadchyy het die skild in die arend ontwerp. U kan die arendlêers op sy webwerf kry:

Stap 3: Laai die skets op

Laai die skets af van mega-isp google code. (Avrisp.03.zip op die oomblik van skryf). Pak dit uit en voer arduino ide uit en maak avrisp.pde oop. Laai dit op na u arduino -bord. Hartklop gelei moet begin klop.

Stap 4: Gebruik met Avrdude

Om met avrdude (en alle GUI's wat dit gebruik) te gebruik, moet u die 'avrisp' -programmeerder kies. die veiligste bitrate is 19200.

Om u nuwe atmega168 vanaf die opdraglyn te toets, probeer: $ avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 /dev /USB0 is die poort wat arduino aan my Linux -boks gekoppel is (u kan com5 wees). Dit kan in arduino IDE in Tools -> Serial Port nagegaan word. U moet die volgende kry: [kabturek@hal -9000 ~]# avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 avrdude: AVR -toestel geïnitialiseer en gereed om instruksies te aanvaar Lees | #################################################### | 100% 0.13s avrdude: Toestelhandtekening = 0x1e9406 avrdude: safemode: Sekerings OK avrdude gedoen. Dankie. Dit beteken dat alles in orde is. As u foute ondervind, kyk na die laaste stap.

Stap 5: Brand USBtinyISP -firmware na 'n Attiny2313

Die USBTinyISP is 'n uitstekende programmeerder van LadyAda, dit is baie goedkoop - 22 $. Ek het 'n ekstra attiny2313 en 'n paar onderdele gehad, so ek het besluit om dit self te maak. As u geen ervaring het met die maak van PCB nie, raadpleeg u die kit, want dit is van hoër gehalte as wat u self kan maak:). Koop ten minste die PCB as u een wil bou. U kan dit by Adafruit kry. Koppel die ATtiny2313 Op die laaste foto kan u die attiny2313 sien met die penne wat vir ISP gebruik word, in rooi. Die foto is afkomstig van LadyAda avr -tutoriaal. Brand die firmware: Pak die USBTinyISP -firmware uit. Gaan na die spi dir en voer $ avrdude -p pt2313 -P /dev /ttyUSB0 -c avrisp -b 19200 uit om te kyk of alles in orde is met die chip. Stel nou die lonts in: $ avrdude -P /dev /ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m Nou moet u die eksterne ossillator van 12mhz aan die chip koppel. En brand die firmware: $ avrdude -B 1 -pt2313 -U flits: w: main.hex -P /dev /ttyUSB0 -c avrisp -b 19200 Voila. U attiny2313 het die USBTinyISP -firmware.

Stap 6: Brand die Arduino Bootloader

Ek het 'n bietjie bedrieg omdat ek 'n RBBB gebruik het om die verbindings te vereenvoudig. Die skema is op prentjie 2. As u 2 arduino's gebruik, gebruik die prentjie #3 en koppel die ISP -pen aan die ICSP 2x3header op die tweede (slave) arduino. Sluit slegs die usb -krag aan op die eerste bord. Die GUI-manier Dit is 'n bietjie lastig, want u kan nie net Tools-> Burn Bootloader-> w/ AVR ISP gebruik nie, want die standaardspoed is te groot vir mega-ISP. Soek avrdude.conf wat by arduino IDE kom (in arduino/hardware/tools/avrdude.conf) en verander die grenswaarde vir avrisp programmeerder van 115200 tot 19200 (rondom reël 312) Soek en verander in avrdude.conf programmeerder id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 115200; # standaard is 115200 tipe = stk500;; aan: programmeerder id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 19200; # standaard is 115200 tipe = stk500;; Nou kan u Tools -> Burn Bootloader -> w/AVR ISP gebruik (nadat u die regte bord in die menu Tools gehad het) Commanline U kan ook die opdragreël gebruik: Wysig arduino/hardware/bootloaders/atmega/Makefile en verander ISPTOOL/PORT /SPEED om: # voer die parameters in vir die avrdude isp -instrument ISPTOOL = avrisp ISPPORT = /dev /ttyUSB0 ISPSPEED = -b 19200 nee jy kan $ make diecimila_isp skryf om lontjies en die selflaaiprogram te verbrand. Koppel nou jou nuwe arduino aan usb en brand die blink!

Stap 7: Probleemoplossing

Avrdude-foute: avrdude: ser_open (): kan nie toestel oopmaak nie "/dev/ttyUSB0": Daar is nie so 'n lêer of gids nie. U het die verkeerde poort (-P) gespesifiseer of u arduino is nie gekoppel nie. kyk na die verbinding avrdude: Toestelhandtekening = 0x000000 avrdude: Yikes! Ongeldige toestelhandtekening. Kontroleer die verbindings en probeer weer, of gebruik -F om hierdie tjek te ignoreer. Dit is 'n soort algemene fout. U chip word nie herken nie. Kontroleer die verbinding op die bord (GND/5V gekoppel aan penne?) U sal hierdie fout kry as u chip opgestel is om 'n eksterne ossillator te gebruik en dit nie werk nie (daar is nie een nie, of dit pendel nie behoorlik nie - 22pf -kappies ontbreek?)