Sommario:
- Passaggio 1: cosa ti serve?
- Passaggio 2: realizzare il programmatore Mega-isp su una breadboard
- Passaggio 3: caricamento dello schizzo
- Passaggio 4: utilizzo con Avrdude
- Passaggio 5: masterizzare il firmware USBtinyISP su un Attiny2313
- Passaggio 6: masterizzare il bootloader di Arduino
- Passaggio 7: risoluzione dei problemi
Video: Come programmare un AVR (arduino) con un altro Arduino: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:06
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?
* 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
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
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
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
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
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
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:
Programmare un Arduino usando un altro Arduino per visualizzare un testo scorrevole senza una libreria: 5 passaggi
Programmazione di un Arduino utilizzando un altro Arduino per visualizzare un testo scorrevole senza una libreria: Sony Spresense o Arduino Uno non sono così costosi e non richiedono molta energia. Tuttavia, se il tuo progetto ha limitazioni di potenza, spazio o persino budget, potresti prendere in considerazione l'utilizzo di Arduino Pro Mini. A differenza di Arduino Pro Micro, Arduino Pro Mi
Come programmare Arduino Pro Mini con Arduino Uno: 4 passaggi
Come programmare Arduino Pro Mini con Arduino Uno: ho scritto questo come parte di un altro progetto, ma poi ho deciso di utilizzare un Pro Micro che può essere programmato direttamente dal laptop. Tuttavia, questo potrebbe essere utile un giorno (o a qualcuno) quindi Lo lascio qui
Come programmare una scheda AVR utilizzando una scheda Arduino: 6 passaggi
Come programmare una scheda AVR utilizzando una scheda Arduino: hai una scheda microcontrollore AVR in giro? È complicato programmarlo? Bene, sei nel posto giusto. Qui, ti mostrerò come programmare una scheda microcontrollore Atmega8a utilizzando una scheda Arduino Uno come programmatore. Quindi senza ulteriori
Come emulare un telecomando TV o altro con Arduino Irlib: 3 passaggi (con immagini)
Come emulare un telecomando TV o altro con Arduino Irlib: IntroduzioneCiao a tutti e benvenuti nel mio primo Instructable.Oggi impareremo, come dice il titolo, ad emulare un telecomando e TV o qualcosa di simile che funziona con segnali infrarossi usando Arduino (qualsiasi modello) .Il problema era: come posso trasmettere i codici a un
Come Ottenere Canzoni o Altro da un DVD come MP3: 4 Passaggi
Come ottenere brani o altro da un DVD come MP3: se si dispone di un DualDisc con brani che si desidera ascoltare su un Ipod o un normale DVD con forse una traccia di commento su cui si desidera ascoltare un iPod, leggi il resto per farlo. Oggetti necessari: computer, mani, cervello, DVD, iPod