Taula de continguts:

Com programar un AVR (arduino) amb un altre Arduino: 7 passos
Com programar un AVR (arduino) amb un altre Arduino: 7 passos

Vídeo: Com programar un AVR (arduino) amb un altre Arduino: 7 passos

Vídeo: Com programar un AVR (arduino) amb un altre Arduino: 7 passos
Vídeo: MKS SGEN L V1.0 - A4988 Stepper Drivers 2024, De novembre
Anonim
Com programar un AVR (arduino) amb un altre Arduino
Com programar un AVR (arduino) amb un altre Arduino
Com programar un AVR (arduino) amb un altre Arduino
Com programar un AVR (arduino) amb un altre Arduino
Com programar un AVR (arduino) amb un altre Arduino
Com programar un AVR (arduino) amb un altre Arduino

Aquest instructable és útil si:

* teniu el vostre arduino amb atmega168 i heu comprat un atmega328 a la vostra botiga d’electrònica local. No té un carregador d'arrencada arduino *, voleu fer un projecte que no utilitzi arduino, només un xip AVR normal (com el USBTinyISP), teniu un attiny2313 / attiny48 net, etc., en el qual voleu gravar el firmware. Normalment, haureu de tenir un ISP (In System Programmer) com USBTinyISP per programar el vostre nou xip. Tenint l'arduino, podeu ensenyar-lo a ser programador gràcies a un gran treball realitzat per Randall Bohn. Va crear Mega-ISP, un esbós arduino que funciona com un programador.

Pas 1: què necessiteu?

Què necessites ?
Què necessites ?

* un Arduino en funcionament (o un clon: estic fent servir BBB - BareBonesBoard i un RBBB - RealBareBonesBoard de ModernDevices) * un xip que voleu programar (provat amb atmega8, atmega168, atmega368, attiny2313, attiny13) * una placa amb capçalera ISP * 3 leds + 3 resistències * cables de taulers de suport

Pas 2: crear el programador Mega-isp en una tauleta de pa

Creació del programador Mega-isp en una taula de pa
Creació del programador Mega-isp en una taula de pa
Creació del programador Mega-isp en una taula de pa
Creació del programador Mega-isp en una taula de pa
Creació del programador Mega-isp en una taula de pa
Creació del programador Mega-isp en una taula de pa

Hi ha dues maneres de connectar el vostre Arduino per programar un xip.

Podeu connectar el vostre xip AVR a una placa de connexió i connectar 5V i GND als respectius pins (consulteu el full de dades!) + Una resistència de tracció per restablir-los i connectar els pins del vostre arduino al xip. Aquestes són les línies d'Arduino i la seva funció 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Restablir). El pinout de la capçalera ISP es troba a la tercera imatge Hi ha 3 leds per indicar l'estat del programador. el pin 9 - led blau - és el ritme del programador. pin 8 - led vermell - indica un error pin 7 - led verd - indica que la programació s'està duent a terme (feia mandra, així que no coincidia amb els colors de la meva configuració) Aquests són els dibuixos fets a Fritzing També podeu fer un Escut MEGA-isp. Yaroslav Osadchyy va dissenyar l'escut en àguila. Podeu obtenir els fitxers de l'àguila al seu lloc:

Pas 3: penjar l'esbós

Carregant l’esbós
Carregant l’esbós

Baixeu-vos l'esbós des del codi google mega-isp. (Avrisp.03.zip en el moment d'escriure-ho). Desempaqueteu-lo i executeu arduino ide i obriu avrisp.pde. Pengeu-lo a la vostra placa arduino. El led de batec del cor hauria de començar a bategar.

Pas 4: utilitzar-lo amb Avrdude

Ús amb Avrdude
Ús amb Avrdude

Per utilitzar-lo amb avrdude (i totes les interfícies gràfiques gràfiques que l’utilitzen) heu de seleccionar el programador “avrisp”. la taxa de bits més segura és el 19200.

Per provar el vostre nou atmega168 des de la línia d'ordres, proveu: $ avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 / dev / USB0 és el port que arduino està connectat a la meva caixa de Linux (el vostre pot ser com5). Això es pot comprovar a l'IDE arduino a Eines -> Port sèrie. Haureu d'obtenir: [kabturek @ hal-9000 ~] # avrdude -p m168 -P / dev / ttyUSB0 -c avrisp -b 19200 avrdude: Dispositiu AVR inicialitzat i llest per acceptar instruccions Lectura | ####################################################### | 100% 0,13 s avrdude: Signatura del dispositiu = 0x1e9406 avrdude: safemode: Fusibles OK avrdude done. Gràcies. Això vol dir que tot està bé. Si teniu errors, consulteu l'últim pas.

Pas 5: gravació del firmware USBtinyISP a un Attiny2313

Gravació del firmware USBtinyISP a un Attiny2313
Gravació del firmware USBtinyISP a un Attiny2313
Gravació del firmware USBtinyISP a un Attiny2313
Gravació del firmware USBtinyISP a un Attiny2313
Gravació del firmware USBtinyISP a un Attiny2313
Gravació del firmware USBtinyISP a un Attiny2313

El USBTinyISP és un gran programador de LadyAda que és realment barat: 22 $. Tenia un attiny2313 de recanvi i algunes peces, així que vaig decidir fer-ne un jo mateix. Si no teniu cap experiència en la fabricació de PCB, us aconsello que compreu el kit perquè té una qualitat superior a la que podeu fer vosaltres mateixos:). Almenys compreu el PCB si voleu construir-ne un. Podeu obtenir-lo a Adafruit. Connecteu l'ATtiny2313 A la darrera imatge podeu veure l'atiny2313 amb els pins que s'utilitzen per a ISP en vermell. La imatge és del tutorial de LadyAda avr. Gravació del microprogramari: descomprimiu el microprogramari USBTinyISP. Aneu a l’esp dir i executeu $ avrdude -p pt2313 -P / dev / ttyUSB0 -c avrisp -b 19200 per comprovar si tot està bé amb el xip. Ara configureu els fusibles: $ avrdude -P / dev / ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse: w: 0xdf: m -U lfuse: w: 0xef: m Ara hauríeu de connectar l'oscil·lador extern de 12 MHz al xip. I gravar el firmware: $ avrdude -B 1 -pt2313 -U flash: w: main.hex -P / dev / ttyUSB0 -c avrisp -b 19200 Voila. El vostre attiny2313 té el firmware USBTinyISP.

Pas 6: gravació del carregador d'arrencada Arduino

Cremant el carregador d'Arduino
Cremant el carregador d'Arduino
Cremant el carregador d’arrencada Arduino
Cremant el carregador d’arrencada Arduino
Cremant el carregador d'Arduino
Cremant el carregador d'Arduino

Connectar: Vaig enganyar una mica perquè vaig utilitzar un RBBB per simplificar les connexions. L’esquema apareix a la imatge núm. 2. Si feu servir 2 arduinos, utilitzeu la imatge # 3 i connecteu el pin ISP a la capçalera ICSP 2x3 del segon arduino (esclau). Connecteu només l’alimentació USB a la primera placa. La manera de la GUI Això és una mica complicat perquè no es pot fer servir només Eines-> Grava el carregador d’arrencada -> w / AVR ISP perquè la velocitat per defecte és massa gran per al mega-isp. Cerqueu avrdude.conf que ve amb IDE arduino (a arduino / hardware / tools / avrdude.conf) i canvieu la freqüència del programador avrisp de 115200 a 19200 (al voltant de la línia 312). Cerqueu i canvieu a programador avrdude.conf id = "avrisp"; desc = "Atmel AVR ISP"; velocitat de transmissió = 115200; # per defecte és 115200 type = stk500;; a: programador id = "avrisp"; desc = "Atmel AVR ISP"; velocitat de transmissió = 19200; # per defecte és 115200 type = stk500;; Ara podeu utilitzar Eines -> Grava el carregador d'arrencada -> amb AVP ISP (després de seleccionar la placa adequada al menú Eines) Commanline També podeu utilitzar la línia d'ordres: Editeu arduino / hardware / bootloaders / atmega / Makefile i canvieu ISPTOOL / PORT / SPEED a: # introduïu els paràmetres de l'eina avrdude isp ISPTOOL = avrisp ISPPORT = / dev / ttyUSB0 ISPSPEED = -b 19200 no podeu escriure $ make diecimila_isp per gravar fusibles i el carregador d'arrencada. crema el parpelleig!

Pas 7: resolució de problemes

Resolució de problemes
Resolució de problemes

Errors Avrdude: avrdude: ser_open (): no es pot obrir el dispositiu "/ dev / ttyUSB0": No hi ha cap fitxer o directori. Teniu especificat el port (-P) incorrecte o el vostre arduino no està connectat. comproveu la connexió avrdude: Signatura del dispositiu = 0x000000 avrdude: Yikes! Signatura del dispositiu no vàlida. Comproveu les connexions i torneu-ho a provar o utilitzeu -F per anul·lar aquesta comprovació. Es tracta d’una mena d’error general. El vostre xip no es reconeix. Comproveu la connexió a la placa (GND / 5V connectat als pins?) Rebrà aquest error quan el vostre xip estigui configurat per utilitzar un oscil·lador extern i no funcioni (no n’hi ha cap o no oscil·la correctament - majúscules 22pf falta?)

Recomanat: