Innehållsförteckning:

Hur man programmerar en AVR (arduino) med en annan Arduino: 7 steg
Hur man programmerar en AVR (arduino) med en annan Arduino: 7 steg

Video: Hur man programmerar en AVR (arduino) med en annan Arduino: 7 steg

Video: Hur man programmerar en AVR (arduino) med en annan Arduino: 7 steg
Video: ESP8266 ESP01 WI-FI-UART | Программирование LDmicro-Roboremo 2024, Juli
Anonim
Hur man programmerar en AVR (arduino) med en annan Arduino
Hur man programmerar en AVR (arduino) med en annan Arduino
Hur man programmerar en AVR (arduino) med en annan Arduino
Hur man programmerar en AVR (arduino) med en annan Arduino
Hur man programmerar en AVR (arduino) med en annan Arduino
Hur man programmerar en AVR (arduino) med en annan Arduino

Dessa instruktioner är användbara om:

* du har din arduino med atmega168 och du köpte en atmega328 hos din lokala elektronikbutik. Den har inte en arduino bootloader * du vill göra ett projekt som inte använder arduino - bara ett vanligt AVR -chip (som USBTinyISP) - du har en ren attiny2313/attiny48 etc som du vill bränna firmware på. Normalt måste du ha en ISP (In System Programmer) som USBTinyISP för att programmera ditt nya chip. Med arduino kan du lära dig att vara en programmerare tack vare ett fantastiskt arbete som utförts av Randall Bohn. Han skapade Mega -ISP - en arduino -skiss som fungerar som en programmerare.

Steg 1: Vad behöver du?

Vad behöver du ?
Vad behöver du ?

* en fungerande Arduino (eller en klon - jag använder BBB - BareBonesBoard och en RBBB - RealBareBonesBoard av ModernDevices) * ett chip som du vill programmera (testat med atmega8, atmega168, atmega368, attiny2313, attiny13) * ett brödbräda eller en bräda med ISP -sidhuvud * 3 lysdioder + 3 motstånd * brödbräda

Steg 2: Gör Mega-isp-programmeraren på ett brödbräda

Gör Mega-isp-programmeraren på ett brödbräda
Gör Mega-isp-programmeraren på ett brödbräda
Gör Mega-isp-programmeraren på ett brödbräda
Gör Mega-isp-programmeraren på ett brödbräda
Gör Mega-isp-programmeraren på ett brödbräda
Gör Mega-isp-programmeraren på ett brödbräda

Det finns två sätt att ansluta din Arduino för att programmera ett chip.

Du kan ansluta ditt avr -chip till en brödbräda och ansluta 5v och GND till respektive stift (kolla databladet!) + Ett pullup -motstånd för att återställa och trådstift från din arduino till chipet. Det här är linjerna på Arduino och deras funktion 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Återställ) Eller så kan du göra en 2x3pin ISP -rubrik som du kan ansluta till ett kort som ger en (ett annat arduino -kort). Pinout för ISP -rubriken finns på den tredje bilden Det finns 3 lysdioder för att indikera status för programmeraren. stift 9 - blå led - det är programmerarens hörsel. stift 8 - röd lysdiod - indikerar ett fel stift 7 - grönt led - indikerar att programmeringen pågår (jag var lat så jag matchade inte färgerna i min inställning) Här är ritningarna gjorda i Fritzing Du kan också göra en MEGA-isp-sköld. Yaroslav Osadchyy designade skölden i örn. Du kan få örnfilerna på hans webbplats:

Steg 3: Ladda upp skissen

Ladda upp skissen
Ladda upp skissen

Ladda ner skissen från mega-isp google-kod. (Avrisp.03.zip i skrivande stund). Packa upp den och kör arduino ide och öppna avrisp.pde. Ladda upp den till ditt arduino -kort. Heartbeat led bör börja slå.

Steg 4: Användning med Avrdude

Använda med Avrdude
Använda med Avrdude

För att använda med avrdude (och alla GUI som använder det) måste du välja 'avrisp' -programmeraren. den säkraste bithastigheten är 19200.

För att testa din nya atmega168 från kommandoraden, försök: $ avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 /dev /USB0 är porten som arduino är ansluten till min linuxbox (din kan vara com5). Detta kan kontrolleras i arduino IDE i Verktyg -> Seriell port. Du bör få: [kabturek@hal -9000 ~]# avrdude -p m168 -P /dev /ttyUSB0 -c avrisp -b 19200 avrdude: AVR -enhet initierad och redo att acceptera instruktioner Läsning | #################################################### | 100% 0.13s avrdude: Enhetssignatur = 0x1e9406 avrdude: safemode: Säkringar OK avrdude gjort. Tack. Det betyder att allt är ok. Om du får fel - kolla det sista steget.

Steg 5: Bränning av USBtinyISP -firmware till en Attiny2313

Bränner USBtinyISP -firmware till en Attiny2313
Bränner USBtinyISP -firmware till en Attiny2313
Bränner USBtinyISP -firmware till en Attiny2313
Bränner USBtinyISP -firmware till en Attiny2313
Bränner USBtinyISP -firmware till en Attiny2313
Bränner USBtinyISP -firmware till en Attiny2313

USBTinyISP är en bra programmerare från LadyAda som är riktigt billig - 22 $. Jag hade ett extra attiny2313 och några delar så jag bestämde mig för att göra en själv. Om du inte har någon erfarenhet av att göra PCB i råd köper du satsen eftersom det är högre kvalitet än du kan göra själv:). Köp åtminstone kretskortet om du vill bygga ett. Du kan få det från Adafruit. Anslut ATtiny2313 På den sista bilden kan du se attiny2313 med stiften som används för ISP i rött. Bilden är från LadyAda avr tutorial. Bränna fast programvara: Packa upp USBTinyISP -firmware. Gå till spi dir och kör $ avrdude -p pt2313 -P /dev /ttyUSB0 -c avrisp -b 19200 för att kontrollera om allt är ok med chipet. Ställ nu in säkringarna: $ avrdude -P /dev /ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m Nu ska du fästa den 12mhz externa oscillatorn till chipet. Och bränn firmware: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P /dev /ttyUSB0 -c avrisp -b 19200 Voila. Din attiny2313 har fast programvara för USBTinyISP.

Steg 6: Bränning av Arduino Bootloader

Bränner Arduino Bootloader
Bränner Arduino Bootloader
Bränner Arduino Bootloader
Bränner Arduino Bootloader
Bränner Arduino Bootloader
Bränner Arduino Bootloader

Jag lurade lite eftersom jag använde en RBBB för att förenkla anslutningarna. Schemat finns på bild #2. Om du använder 2 arduinoer använder du bild #3 och ansluter ISP -stiftet till ICSP 2x3headern på den andra (slaven) arduinoen. Anslut bara usb -strömmen till det första kortet. GUI-sättet Detta är lite knepigt eftersom du inte bara kan använda Verktygs-> Burn Bootloader-> w/ AVR ISP eftersom standardhastigheten är för stor för mega-isp. Hitta avrdude.conf som levereras med arduino IDE (i arduino/hardware/tools/avrdude.conf) och ändra gränsen för avrisp programmerare från 115200 till 19200 (runt rad 312) Hitta och ändra i avrdude.conf programmerare id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 115200; # standard är 115200 typ = stk500;; till: programmerare id = "avrisp"; desc = "Atmel AVR ISP"; baudrate = 19200; # standard är 115200 typ = stk500;; Nu kan du använda Verktyg -> Burn Bootloader -> w/AVR ISP (efter att du har valt rätt kort från Verktyg -menyn) Kommanlinje Du kan också använda kommandoraden: Redigera arduino/hardware/bootloaders/atmega/Makefile och ändra ISPTOOL/PORT /SPEED to: # ange parametrarna för avrdude isp -verktyget ISPTOOL = avrisp ISPPORT = /dev /ttyUSB0 ISPSPEED = -b 19200 nej du kan skriva $ make diecimila_isp för att bränna säkringar och bootloader. Test Anslut nu din nya arduino till usb och bränn det blinkande!

Steg 7: Felsökning

Felsökning
Felsökning

Avrdude-fel: avrdude: ser_open (): kan inte öppna enheten "/dev/ttyUSB0": Ingen sådan fil eller katalog Du har angett fel port (-P) eller så är din arduino inte ansluten. kontrollera anslutningen avrdude: Enhetssignatur = 0x000000 avrdude: Japp! Ogiltig enhetssignatur. Dubbelkontrollera anslutningarna och försök igen, eller använd -F för att åsidosätta denna kontroll. Det här är ett generellt fel. Ditt chip känns inte igen. Kontrollera anslutningen på kortet (GND/5V ansluten till stift?) Du får det här felet när ditt chip är konfigurerat för att använda en extern oscillator och det fungerar inte (det finns inte en eller det är inte oscillerande korrekt - 22pf lock saknas ?)

Rekommenderad: