Sommario:

Come utilizzare i pin GPIO di un Raspberry Pi e Avrdude per programmare Bit-bang DIMP 2 o DA PIMP 2: 9 passaggi
Come utilizzare i pin GPIO di un Raspberry Pi e Avrdude per programmare Bit-bang DIMP 2 o DA PIMP 2: 9 passaggi

Video: Come utilizzare i pin GPIO di un Raspberry Pi e Avrdude per programmare Bit-bang DIMP 2 o DA PIMP 2: 9 passaggi

Video: Come utilizzare i pin GPIO di un Raspberry Pi e Avrdude per programmare Bit-bang DIMP 2 o DA PIMP 2: 9 passaggi
Video: Il GPIO del Raspberry Pi 2024, Dicembre
Anonim
Come utilizzare i pin GPIO di un Raspberry Pi e Avrdude per programmare Bit-bang DIMP 2 o DA PIMP 2
Come utilizzare i pin GPIO di un Raspberry Pi e Avrdude per programmare Bit-bang DIMP 2 o DA PIMP 2

Queste sono istruzioni passo passo su come utilizzare un Raspberry Pi e il comando open source gratuito avrdude per programmare bit-bang un DIMP 2 o DA PIMP 2. Presumo che tu abbia familiarità con il tuo Raspberry Pi e LINUX riga di comando. Non devi avere familiarità con la programmazione del chip AVR, ma aiuta se qualcosa va storto perché puoi leggere l'output di avrdude e avere un'idea di cosa fare.

Questa procedura dovrebbe richiedere circa 1 ora la prima volta e da 5 a 10 minuti ogni volta dopo.

Avrai bisogno:

1) Un Raspberry Pi con pin GPIO e alimentatore. Sto usando un Raspberry Pi Zero W con pin GPIO saldati. Il sistema operativo dovrebbe essere il sistema operativo Raspberry Pi (precedentemente Raspbian). Sto usando Raspbian Lite (Stretch), che è un po' vecchio. Questi comandi dovrebbero ancora funzionare sull'ultima versione del sistema operativo Raspberry Pi.

Andando avanti mi riferirò al Raspberry Pi come "RPi".

2) Ponticelli femmina-femmina. Prendi uno di questi colori: rosso, nero, blu, giallo, verde, viola. Sto usando il marrone invece del viola.

3) Un DIMP 2 o DA PIMP 2 con l'intestazione ICSP a 10 pin opzionale saldata. Sto usando un DIMP 2 qui, ma le istruzioni sono le stesse per DA PIMP 2.

4) Accesso a Internet per RPi in modo da poter installare il comando open source gratuito avrdude.

5) Una copia del file.hex flash per il tuo DIMP 2 o DA PIMP 2. Puoi creare tu stesso il file.hex dal codice sorgente grezzo, ma non ti mostrerò come farlo qui.

6) Un modo per accedere a RPi: utilizzare una connessione di rete o l'accesso diretto alla console. Devi essere in grado di eseguire comandi su di esso.

Passaggio 1: rimuovere il cavo di alimentazione CA e rimuovere la batteria da 9 V

Innanzitutto, controlla se il cavo di alimentazione CA è collegato a DIMP 2 o DA PIMP 2 e collegato alla rete CA. In caso affermativo, PERICOLO: PERICOLO DI SHOCK LETALE. Indossare guanti di gomma e quindi spegnere l'interruttore principale a bilanciere sul DIMP 2 o DA PIMP 2. Quindi, scollegare il cavo di alimentazione CA dalla rete CA e scollegare il cavo di alimentazione CA dal DIMP 2 o DA PIMP 2. È possibile prendere togliere i guanti di gomma una volta rimosso il cavo di alimentazione CA.

Quindi, rimuovere la batteria da 9V. L'alimentazione sarà fornita al DIMP 2 dall'RPi attraverso i fili rosso (Vcc) e nero (GND). Per ogni evenienza, disattivare l'interruttore a scorrimento del DIMP 2 o del DA PIMP 2.

Passaggio 2: collegare i cavi dei ponticelli

Collegare i cavi dei ponticelli
Collegare i cavi dei ponticelli
Collegare i cavi dei ponticelli
Collegare i cavi dei ponticelli
Collegare i cavi dei ponticelli
Collegare i cavi dei ponticelli
Collegare i cavi dei ponticelli
Collegare i cavi dei ponticelli

Con l'RPi non acceso, iniziare a collegare i cavi dei ponticelli. Andando avanti, i pin GPIO sono sul Raspberry Pi e i pin ICSP sono sul DIMP 2 (header J3) o DA PIMP 2 (header J1).

Fare riferimento allo schema che ho messo insieme e alle foto se ti sei perso.

La parte RPi del diagramma proviene da pinout.xyz.

La parte ATMEGA48V-10PU del diagramma è copyright 2016 Atmel Corp.

Rivendico l'uso corretto di questi disegni a causa delle aggiunte significative e trasformative.

Il nero va dal pin 6 GPIO al pin 10 ICSP. Questo è GND (terra)

Il giallo va dal pin 12 GPIO al pin 9 ICSP. Questo è MISO.

Il verde va dal pin 16 GPIO al pin 1 ICSP. Questo è MOSI.

Il blu va dal pin 18 GPIO al pin 7 ICSP. Questo è SCK o SCLK (SClock)

Il viola (marrone nelle mie foto) va dal pin 32 GPIO al pin 5 ICSP. Questo è RESET.

Il rosso va dal pin 4 GPIO al pin 2 ICSP. Questo è Vcc (alimentazione 5V)

Passaggio 3: accendi l'RPi

Ora vai avanti e accendi l'RPi. Anche la parte del voltmetro di DIMP 2 o DA PIMP 2 dovrebbe accendersi, ma non lo saprai guardando il display. In caso di dubbio, misurare la tensione con la sonda rossa al pin 20 dell'ATMEGA48V-10PU e la sonda nera al pin 4, 6 o 8 dell'intestazione ICSP. Dovrebbe essere intorno a 5VDC.

Passaggio 4: installa Avrdude

Le mie istruzioni mostreranno solo i comandi della riga di comando. Se hai una GUI in esecuzione, vorrai aprire un Terminale per eseguire questi comandi della riga di comando.

Accedi come utente predefinito pi. La password predefinita è lampone

Installa il comando avrdude digitando quanto segue al prompt dei comandi del terminale:

sudo apt-get install avrdude

Passaggio 5: modifica il file di configurazione di Avrdude

Modifica il file di configurazione di avrdude digitando:

sudo nano /etc/avrdude.conf

Aggiungi queste righe al centro del file dove si trovano le altre definizioni del programmatore. Quello che ho fatto è copiare la sezione del programmatore proprio sopra di essa per id = "linuxgpio", quindi incollarla proprio sotto (alla riga 1274), quindi modificare la nuova sezione.

programmatore

id = "pi_1"; desc = "Usa l'interfaccia sysfs di Linux per bitbang sulle linee GPIO"; tipo = "linuxgpio"; reset = 12; sck = 24; mosi = 23; miso = 18;;

Quindi salvare il file premendo: Ctrl-O

E poi esci dall'editor nano premendo: Ctrl-X

Passaggio 6: scarica o copia il file Flash.hex in /home/pi

Copia il file flash.hex su RPi. Presumo tu sappia come farlo. SUGGERIMENTO: utilizzare il comando wget, curl, git o scp per trasferire il file dal Web all'RPi.

Il file.hex di DIMP 2 è qui, insieme al codice sorgente:

github.com/dchang0/dimp2

Una versione personalizzata del file.hex di DA PIMP 2 è qui. Non l'ho testato!

github.com/jcwren/DaPimp2

Se la versione precedente del file.hex di DA PIMP 2 non funziona, il codice sorgente originale di DA PIMP 2 di Mikey Sklar è qui. Dovrai compilarlo tu stesso in un file.hex funzionante. Non lo tratterò in queste istruzioni perché sarà un tutorial lungo (ma non difficile). Ho programmato con successo diverse unità DA PIMP 2 funzionanti utilizzando questo codice sorgente:

drive.google.com/open?id=0Bx5Als-UeiZbSUdH…

Oppure puoi andare alla pagina principale di DA PIMP 2 qui e fare clic sul collegamento al codice sorgente.

mikeysklar.blogspot.com/p/da-pimp-battery-…

Metti il file.hex in questo percorso e nome file sull'RPi…

Per il DIMP 2:

/home/pi/dimp2.hex

Per il DA PIMP 2:

/home/pi/da_pimp2.hex

Passaggio 7: verificare che Avrdude possa comunicare con ATMEGA48V-10PU

Eseguire il comando avrdude per assicurarsi che possa parlare con il chip ATMEGA48V-10PU sul DIMP 2 o DA PIMP 2.

cd /home/pi

sudo avrdude -c pi_1 -p m48 -v

Otterrai circa una pagina di output. Guarda alla fine. Se ricevi una risposta come questa, puoi procedere.

avrdude: dispositivo AVR inizializzato e pronto ad accettare istruzioni

Lettura | ################################################# | 100% 0.00s

In caso contrario, c'è qualcosa che non va e dovresti capirlo. Molto probabilmente si tratta di un cablaggio errato, ma un'altra lamentela comune che ho riscontrato è che il chip ATMEGA48V-10PU è un falso. Sembra che molti di quelli venduti su Amazon o ebay siano falsi. Quelli venduti da Mouser o Digikey e altri distributori autorizzati sono originali.

Passaggio 8: eseguire il flash del file.hex su ATMEGA48V-10PU

Esegui questo comando per eseguire la programmazione del chip…

Per il DIMP 2:

cd /home/pi

sudo avrdude -c pi_1 -p m48 -U flash:w:dimp2.hex

Per il DA PIMP 2:

cd /home/pi

sudo avrdude -c pi_1 -p m48 -U flash:w:da_pimp2.hex

Otterrai circa una pagina di output. Cerca queste righe:

avrdude: scrittura flash (1528 byte):

Scrittura | ################################################# | 100% 0.79s

avrdude: verificando…

avrdude: 1528 byte di flash verificati avrdude: safemode: Fusibili OK (E:FF, H:DF, L:62)

Se sei arrivato così lontano, dovresti vedere il display a LED che mostra zeri per la tensione. Se vedi gli zeri, hai finito! In caso contrario, vai al passaggio successivo.

Se vedi gli zeri, spegni con grazia il tuo RPi con questo comando:

sudo shutdown -h ora

Quando la spia di alimentazione sull'RPi si spegne (il DIMP 2 o il DA PIMP 2 saranno ancora accesi), è possibile scollegare l'alimentatore dall'RPi. Quindi scollegare i cavi dei ponticelli tra RPi e DIMP 2 o DA PIMP 2.

Passaggio 9: semplice risoluzione dei problemi in caso di errore del flash

Se non vedi zeri sul display del tuo DIMP 2 o DA PIMP 2, allora è il momento di risolvere il problema.

Di nuovo, controlla prima il cablaggio.

Quindi, controlla gli stati dei fusibili mostrati da avrdude. È possibile che il tuo chip sia arrivato con i fusibili impostati su valori diversi rispetto all'impostazione di fabbrica. Potrebbe essere necessario ripristinare i fusibili del chip, il che richiede un dispositivo hardware completamente diverso. Questo è un problema con molti dei falsi chip ATMEGA48V-10PU venduti su ebay: sono vecchi chip estratti da hardware scartato e i fusibili sono stati impostati e il venditore non si è preoccupato di ripristinare i fusibili.

A volte il chip non è nemmeno un ATMEGA48V-10PU. Potrebbe essere un chip diverso rietichettato. Di solito puoi riconoscere questi falsi osservando attentamente i segni sulla parte superiore e inferiore del chip. È più saggio ottenere il tuo ATMEGA48V-10PU tramite un fornitore affidabile come Mouser o Digikey.

Consigliato: