Sommario:

Come programmare un AVR (arduino) con un altro Arduino: 7 passaggi
Come programmare un AVR (arduino) con un altro Arduino: 7 passaggi

Video: Come programmare un AVR (arduino) con un altro Arduino: 7 passaggi

Video: Come programmare un AVR (arduino) con un altro Arduino: 7 passaggi
Video: Impara Arduino in modo PRATICO, facile e divertente! Arduino Tutorial Italiano per Principianti. 2024, Dicembre
Anonim
Come programmare un AVR (arduino) con un altro Arduino
Come programmare un AVR (arduino) con un altro Arduino
Come programmare un AVR (arduino) con un altro Arduino
Come programmare un AVR (arduino) con un altro Arduino
Come programmare un AVR (arduino) con un altro Arduino
Come programmare un AVR (arduino) con un altro Arduino

Questa istruzione è utile se:

* hai il tuo arduino con atmega168 e hai acquistato un atmega328 nel tuo negozio di elettronica locale. Non ha un bootloader arduino * vuoi fare un progetto che non usa arduino - solo un normale chip AVR (come USBTinyISP) - hai un attiny2313/attiny48 pulito ecc. su cui vuoi masterizzare il firmware. Normalmente dovresti avere un ISP (In System Programmer) come USBTinyISP per programmare il tuo nuovo chip. Avendo l'arduino puoi insegnargli ad essere un programmatore grazie ad un ottimo lavoro svolto da Randall Bohn. Ha creato Mega-ISP, uno sketch Arduino che funziona come un programmatore.

Passaggio 1: cosa ti serve?

Di che cosa hai bisogno ?
Di che cosa hai bisogno ?

* un Arduino funzionante (o un clone - sto usando la BBB - BareBonesBoard e una RBBB - RealBareBonesBoard di ModernDevices) * un chip che vuoi programmare (testato con atmega8, atmega168, atmega368, attiny2313, attiny13) * una breadboard o una scheda con header ISP * 3 led + 3 resistenze * fili breadboard

Passaggio 2: realizzare il programmatore Mega-isp su una breadboard

Realizzare il programmatore Mega-isp su una breadboard
Realizzare il programmatore Mega-isp su una breadboard
Realizzare il programmatore Mega-isp su una breadboard
Realizzare il programmatore Mega-isp su una breadboard
Realizzare il programmatore Mega-isp su una breadboard
Realizzare il programmatore Mega-isp su una breadboard

Esistono due modi per collegare Arduino per programmare un chip.

Puoi collegare il tuo chip avr a una breadboard e collegare 5v e GND ai rispettivi pin (controlla la scheda tecnica!) + un resistore di pullup per ripristinare e collegare i pin da arduino al chip. Queste sono le linee su Arduino e la loro funzione 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Reset) Oppure puoi creare un header ISP 2x3pin che puoi collegare a una scheda che ne fornisce uno (un'altra scheda arduino). Il pinout per l'intestazione ISP è sulla terza immagine Ci sono 3 led per indicare lo stato del programmatore. pin 9 - led blu - è il battito cardiaco del programmatore. pin 8 - led rosso - indica un errore pin 7 - led verde - indica che la programmazione è in corso (ero pigro quindi non ho abbinato i colori nel mio setup) Ecco i disegni fatti in Fritzing Puoi anche fare un Scudo MEGA-isp. Yaroslav Osadchyy ha disegnato lo scudo in aquila. Puoi ottenere i file eagle sul suo sito:

Passaggio 3: caricamento dello schizzo

Caricamento dello schizzo
Caricamento dello schizzo

Scarica lo schizzo da mega-isp google code. (avrisp.03.zip al momento della scrittura). Decomprimilo ed esegui arduino ide e apri avrisp.pde. Caricalo sulla tua scheda arduino. Il led del battito cardiaco dovrebbe iniziare a battere.

Passaggio 4: utilizzo con Avrdude

Utilizzo con Avrdude
Utilizzo con Avrdude

Per usare con avrdude (e tutte le GUI che lo usano) devi selezionare il programmatore 'avrisp'. il bitrate più sicuro è 19200.

Per testare il tuo nuovo atmega168 dalla riga di comando, prova: $ avrdude -p m168 -P /dev/ttyUSB0 -c avrisp -b 19200 /dev/USB0 è la porta a cui arduino è collegato alla mia scatola Linux (la tua potrebbe essere com5). Questo può essere verificato nell'IDE arduino in Strumenti -> Porta seriale. Dovresti ottenere: [kabturek@hal-9000 ~]# avrdude -p m168 -P /dev/ttyUSB0 -c avrisp -b 19200 avrdude: dispositivo AVR inizializzato e pronto ad accettare le istruzioni Lettura | ################################################# | 100% 0.13s avrdude: Firma del dispositivo = 0x1e9406 avrdude: safemode: Fusibili OK avrdude fatto. Grazie. Ciò significa che è tutto ok. Se ricevi errori, controlla l'ultimo passaggio.

Passaggio 5: masterizzare il firmware USBtinyISP su un Attiny2313

Masterizzazione del firmware USBtinyISP su un Attiny2313
Masterizzazione del firmware USBtinyISP su un Attiny2313
Masterizzazione del firmware USBtinyISP su un Attiny2313
Masterizzazione del firmware USBtinyISP su un Attiny2313
Masterizzazione del firmware USBtinyISP su un Attiny2313
Masterizzazione del firmware USBtinyISP su un Attiny2313

L'USBTinyISP è un ottimo programmatore di LadyAda che è davvero economico - 22$. Avevo un attiny2313 di riserva e alcune parti, quindi ho deciso di crearne uno da solo. Se non hai alcuna esperienza nella realizzazione di PCB ti consiglio di acquistare il kit perché è di qualità superiore a quella che puoi realizzare da solo:). Almeno compra il PCB se vuoi costruirne uno. Puoi ottenerlo da Adafruit. Collega l'ATtiny2313 Nell'ultima immagine puoi vedere l'attiny2313 con i pin utilizzati per l'ISP in rosso. L'immagine è tratta dal tutorial di LadyAda avr. Masterizzazione del firmware: decomprimere il firmware USBTinyISP. Vai alla directory spi ed esegui $ avrdude -p pt2313 -P /dev/ttyUSB0 -c avrisp -b 19200 per verificare se tutto è a posto con il chip. Ora imposta i fusibili: $ avrdude -P /dev/ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse:w:0xdf:m -U lfuse:w:0xef:m Ora dovresti collegare l'oscillatore esterno da 12 mhz al chip. E masterizza il firmware: $ avrdude -B 1 -pt2313 -U flash:w:main.hex -P /dev/ttyUSB0 -c avrisp -b 19200 Voila. Il tuo attiny2313 ha il firmware USBTinyISP.

Passaggio 6: masterizzare il bootloader di Arduino

Masterizzare il bootloader Arduino
Masterizzare il bootloader Arduino
Masterizzare il bootloader Arduino
Masterizzare il bootloader Arduino
Masterizzare il bootloader Arduino
Masterizzare il bootloader Arduino

ConnessioneHo barato un po' perché ho usato un RBBB per semplificare le connessioni. Lo schema è nell'immagine #2. Se usi 2 arduino, usa l'immagine n. 3 e collega il pin ISP all'intestazione ICSP 2x3 sul secondo arduino (slave). Collega solo l'alimentazione USB alla prima scheda. Il modo GUI Questo è un po' complicato perché non puoi semplicemente usare Strumenti-> Masterizza Bootloader -> con AVR ISP perché la velocità predefinita è troppo grande per mega-isp. Trova avrdude.conf che viene fornito con arduino IDE (in arduino/hardware/tools/avrdude.conf) e cambia il limite per il programmatore avrisp da 115200 a 19200 (intorno alla riga 312) Trova e modifica in avrdude.conf id programmatore = "avrisp"; desc = "Atmel AVR ISP"; velocità di trasmissione = 115200; # il valore predefinito è 115200 tipo = stk500;; a: id programmatore = "avrisp"; desc = "Atmel AVR ISP"; velocità di trasmissione = 19200; # il valore predefinito è 115200 tipo = stk500;; Ora puoi usare Strumenti -> Masterizza Bootloader -> con AVR ISP (dopo aver selezionato la scheda corretta dal menu Strumenti) Riga di comando Puoi anche usare la riga di comando: Modifica arduino/hardware/bootloaders/atmega/Makefile e cambia ISPTOOL/PORT /SPEED a: # inserisci i parametri per lo strumento avrdude isp ISPTOOL = avrisp ISPPORT = /dev/ttyUSB0 ISPSPEED = -b 19200 no puoi scrivere $ make diecimila_isp per bruciare i fusibili e il bootloader. Test Ora collega il tuo nuovo arduino a usb e brucia il lampeggiante!

Passaggio 7: risoluzione dei problemi

Risoluzione dei problemi
Risoluzione dei problemi

Errori di Avrdude: avrdude: ser_open(): impossibile aprire il dispositivo "/dev/ttyUSB0": nessun file o directory di questo tipo Hai specificato la porta (-P) sbagliata o il tuo arduino non è connesso. controlla la connessione avrdude: Firma del dispositivo = 0x000000 avrdude: Yikes! Firma del dispositivo non valida. Ricontrolla le connessioni e riprova, oppure usa -F per sovrascrivere questo controllo. Questo è un tipo di errore generale. Il tuo chip non viene riconosciuto. Controlla la connessione sulla scheda (GND/5V collegata ai pin ?) Riceverai questo errore quando il tuo chip è configurato per utilizzare un oscillatore esterno e non funziona (non ce n'è uno o non oscilla correttamente - 22pf caps mancante ?)

Consigliato: