INHOUDSOPGAWE:

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! 2024, November
Anonim
Hoe om 'n AVR (arduino) te programmeer met 'n ander Arduino
Hoe om 'n AVR (arduino) te programmeer met 'n ander Arduino
Hoe om 'n AVR (arduino) te programmeer met 'n ander Arduino
Hoe om 'n AVR (arduino) te programmeer met 'n ander Arduino
Hoe om 'n AVR (arduino) te programmeer met 'n ander Arduino
Hoe om 'n AVR (arduino) te programmeer met 'n ander Arduino

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?

Wat het jy nodig ?
Wat het jy 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

Maak die Mega-isp programmeerder op 'n broodbord
Maak die Mega-isp programmeerder op 'n broodbord
Maak die Mega-isp programmeerder op 'n broodbord
Maak die Mega-isp programmeerder op 'n broodbord
Maak die Mega-isp programmeerder op 'n broodbord
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 op
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

Gebruik met Avrdude
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

Brand USBtinyISP -firmware na 'n Attiny2313
Brand USBtinyISP -firmware na 'n Attiny2313
Brand USBtinyISP -firmware na 'n Attiny2313
Brand USBtinyISP -firmware na 'n Attiny2313
Brand USBtinyISP -firmware na 'n Attiny2313
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

Brand die Arduino Bootloader
Brand die Arduino Bootloader
Brand die Arduino Bootloader
Brand die Arduino Bootloader
Brand die Arduino Bootloader
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

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

Aanbeveel: