Sommario:
- Passaggio 1: costruzione dell'allegato Cobbler
- Passaggio 2: installazione e utilizzo di Avrdude
- Passaggio 3: ottenere i programmi Arduino sugli AVR
Video: AVR/Arduino lampeggiante con Raspberry Pi: 3 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Un programmatore in-system (ISP) è un dispositivo che puoi utilizzare per programmare molti microcontrollori, ad esempio l'ATMega328p che è il cervello di un Arduino Uno. Puoi acquistare qualcosa come un USBtinyISP o puoi persino usare un Arduino. Questa istruzione ti mostrerà come utilizzare un Raspberry Pi come ISP.
Il programma avrdude, che è ciò che l'IDE Arduino utilizza sotto il cofano per flashare i chip, può essere utilizzato con molti programmatori. Una delle sue opzioni è utilizzare i pin SPI sulla porta di espansione del Pi. Spiegherò come effettuare le connessioni appropriate, mettere insieme un semplice circuito su perfboard in modo da non dover ripetere il cablaggio ogni volta che si desidera eseguire il flashing di un chip e come installare e utilizzare avrdude. Ti mostrerò anche come ottenere programmi compilati usando l'IDE Arduino su un chip AVR come un ATmega o ATtiny usando questo metodo.
Cose necessarie:
- Raspberry Pi con l'ultima versione di Raspbian installata
- Presa con connettore maschio a 40 pin (o 26 pin se si dispone di un Pi più vecchio)
- Cavo IDE per il collegamento al tuo Pi
- Risonatore a cristallo da 16 MHz
- Condensatori da 22 pF (2)
- LED (1) per indicare lo stato del programmatore
- Prese IC a 8, 14 e/o 28 pin, a seconda della forma dei chip che si desidera far lampeggiare
- Alcuni perfboard, fili, saldatura
Passaggio 1: costruzione dell'allegato Cobbler
Serial Peripheral Interface (SPI), chiamata anche seriale a quattro fili, è un modo di comunicare tra un singolo dispositivo master e uno o più dispositivi slave. Lo useremo per flashare i chip, con il Pi come master e il chip come slave. Effettuerai le seguenti connessioni tra il Pi e il tuo chip (vedi i pinout sopra per vari AVR e porte di espansione Pi per sapere quali pin sono quali):
- Collegare i pin MOSI (master-out-slave-in) insieme
- Collegare insieme i pin SCLK (orologio condiviso)
- Collega i pin MISO (master-in-slave-out) insieme a un resistore da 220 Ohm, per proteggere il Pi da eventuali tensioni inaspettatamente elevate dal chip
- Collega GPIO 25 sul Pi direttamente al pin RESET sul chip. Il Pi abbassa questo pin durante la programmazione, quindi usiamo un resistore da 10K per mantenerlo alto quando non si programma e un LED con un resistore di protezione da 1K che funziona a tensione positiva per darci un bel feedback visivo durante la programmazione.
Colleghiamo i pin di terra e di alimentazione (3,3 V) tra il Pi e i chip che vogliamo programmare. Nel caso in cui non lo sapessi già, i pin del Raspberry Pi non sono tolleranti a 5 V: saranno danneggiati se su di essi appaiono più di 3,3 V. Se i chip programmati necessitano di alimentazione a 5 V per qualche motivo, potremmo utilizzare un chip di spostamento del livello per proteggere i pin del Pi, ma non ho riscontrato alcun problema nell'utilizzo di 3,3 V, quindi consiglio di giocare sul sicuro e di risparmiare sui componenti.
Infine, colleghiamo un oscillatore a cristallo da 16 MHz attraverso i pin XTAL del chip, che colleghiamo anche a terra tramite un paio di condensatori da 22 pF. I chip AVR possono essere impostati per funzionare a frequenze diverse e possono anche essere impostati per utilizzare una sorgente interna o esterna per determinare quella frequenza. Se il tuo chip è impostato per utilizzare un cristallo esterno come sorgente di frequenza, non sarai in grado di riprogrammare senza di esso. Altrimenti non importa se c'è.
Puoi usare lo schema del circuito nell'ultima immagine come guida per assemblare il tuo accessorio per calzolaio su perfboard. Puoi avere tutte le forme diverse di prese IC che desideri, basta collegare i pin appropriati in parallelo con il Pi e il cristallo. N. B. se usi l'immagine del mio prototipo come guida, nota che ho aggiunto alcuni pin e prese di intestazione extra in modo da poter accedere ai pin sul Pi per motivi non correlati.
Passaggio 2: installazione e utilizzo di Avrdude
Per installare avrdude sul tuo Pi, digita
sudo apt-get install avrdude
Sarà quindi necessario abilitare l'interfaccia SPI, se non è già stata attivata. Esiste un modo da riga di comando per farlo, ma è molto più semplice utilizzare lo strumento di configurazione Raspberry Pi. Tipo
sudo raspi-config
e vai su Opzioni interfaccia per attivare SPI.
Per far lampeggiare il tuo chip, collega il cavo a nastro dal tuo Pi al connettore sul circuito perfboard e inserisci il chip nella presa IC appropriata (assicurati che sia rivolto nel modo giusto).
Quando si esegue il flashing di un programma, è inoltre necessario assicurarsi di impostare correttamente i fusibili nel chip. Questi sono in realtà solo bit nel chip che imposti per dirgli a quale velocità di clock eseguire, se cancellare la EEPROM durante la scrittura del chip, ecc. Puoi leggere le specifiche AVR complete per capire come impostare ogni bit, ma è molto più semplice utilizzare il calcolatore dei fusibili fornito su engbedded.com/fusecalc. Selezionare il nome della parte dell'AVR che si sta utilizzando e scegliere le opzioni desiderate nell'area "Selezione funzionalità". Di solito mi assicuro che le impostazioni dell'orologio siano corrette e lascio le altre cose come predefinite. Quasi sempre vorrai lasciare "Programmazione seriale abilitata" SELEZIONATO e "Reset disabilitato" NON SELEZIONATO - altrimenti non sarai in grado di riprogrammare il chip. Quando hai le impostazioni corrette, puoi scorrere verso il basso l'area "Impostazioni correnti" e copiare gli argomenti AVRDUDE come mostrato nell'immagine.
Per impostare i fusibili, inserisci il comando
sudo avrdude -c linuxspi -P /dev/spidev0.0 -p
dove partname corrisponde al chip che stai utilizzando. Puoi trovare l'elenco dei nomi delle parti inserendo sudo ardude -c linuxspi -p ?type. Per eseguire il flashing del programma, assicurati che sia nella directory corrente e inserisci
sudo avrdude -c linuxspi -P /dev/spidev0.0 -p -U flash:w::i
Dopo entrambi i comandi, il LED si accenderà durante la modifica del chip.
Passaggio 3: ottenere i programmi Arduino sugli AVR
L'obiettivo principale di questo istruibile è eseguire il flashing di programmi già compilati su chip, non come scriverli o compilarli. Tuttavia, volevo spiegare come è possibile compilare binari utilizzando l'IDE Arduino e portarli su chip AVR nudi usando questo metodo, poiché Arduino è relativamente facile da imparare e ci sono così tanti tutorial ed esempi.
Innanzitutto, dovrai aggiungere informazioni sui chip AVR che lampeggerai in modo che l'IDE sappia come compilarli. James Sleeman ha messo insieme alcuni file di installazione molto utili, che sono disponibili su github. Per utilizzarli, apri il menu "Preferenze" nell'IDE di Arduino e fai clic sulla casella accanto al campo "URL di Gestione schede aggiuntive". Copia e incolla i seguenti URL nella finestra di dialogo che appare:
Quindi, vai al menu "Strumenti" e trova l'opzione "Gestione schede…" nel sottomenu "Board". Scorri fino alla fine dell'elenco nella finestra di dialogo Boards Manager e installa le schede DIY ATmega e DIY ATtiny.
Per compilare i tuoi programmi, assicurati prima di aver selezionato il chip corretto nel menu "Processore", così come la corretta velocità del processore. Seleziona l'opzione "Usa Bootloader: No", poiché caricheremo direttamente con il Pi e quindi possiamo utilizzare lo spazio extra che normalmente verrebbe occupato dal bootloader di Arduino. Ora, fai clic sul pulsante "Verifica" (il segno di spunta). Questo compilerà il tuo programma senza provare a caricarlo (dato che stai facendo questo passaggio da solo).
Supponendo che tutto vada bene, ora devi portare il programma compilato sul tuo Pi. L'IDE li nasconde in una posizione temporanea, poiché è progettato per caricare i programmi stesso. Su Windows, è in AppData/Local/Temp nella directory dell'utente, in una cartella che inizia con 'arduino_build'. Cerca il file.hex: questo è il tuo programma! Invialo al tuo Pi tramite FTP o con una chiavetta USB e sei a posto.
Per fare ciò, devi disporre di un PC Windows o Mac per compilare i tuoi programmi, che poi invii al Pi. Sarebbe davvero facile poterlo fare sul Pi stesso, ma sfortunatamente la versione ufficiale dell'IDE Arduino disponibile nel repository Raspbian è piuttosto vecchia e non ha il Board Manager. Senza questo, aggiungere le impostazioni appropriate per compilare per gli AVR nudi è un po' più complicato. Ci sono tutorial là fuori per compilare una versione più recente di Arduino sul tuo Pi - se è quello che vuoi fare, vai a trovarli! Sento anche che dovrebbe essere possibile fare in modo che l'IDE utilizzi il programmatore linuxspi per eseguire il flashing di un chip dall'interno dell'IDE stesso (cioè usando il pulsante "download"), ma questo va oltre la mia pazienza e il mio livello di abilità - se lo sai a proposito, postalo nei commenti! Infine, potresti semplicemente scrivere programmi direttamente in AVR-C e compilarli sul Pi con avr-gcc, dandoti una piattaforma di sviluppo AVR completa nel Raspberry Pi. Ne ho fatto un po', e se vuoi seguire quella strada, ti saluto. Inizia a lampeggiare!
Consigliato:
Decorazione per albero lampeggiante PCB: 5 passaggi (con immagini)
Decorazione dell'albero lampeggiante PCB: in questo tutorial imparerai come realizzare efficacemente un progetto di elettronica. Ad esempio, realizzerò un PCB con luci lampeggianti dall'inizio alla fine. Tutta l'elettronica funziona da sola senza bisogno di codifica. Tutto quello che devi fare è collegare
Kit fai da te Luce lampeggiante LED rossa a forma di mulino a vento: 6 passaggi (con immagini)
Kit fai da te a forma di mulino a vento LED rosso lampeggiante: descrizione: questo è un design MCU fai-da-te che insegna kit di mulini a vento elettronici per la pratica di saldatura. Facile da montare: questo prodotto viene fornito da te se il kit di componenti deve essere installato su un modulo freddo come un mulino a vento. I nomi dei marcatori dei componenti del kit erano
Circuito lampeggiante a strisce LED con relè 12V: 7 passaggi (con immagini)
Circuito lampeggiante a strisce LED utilizzando un relè da 12 V: Ciao amico, oggi realizzerò un circuito di lampeggianti a strisce LED utilizzando un relè da 12 V e condensatori. Cominciamo
Luce lampeggiante a LED fai-da-te: 5 passaggi (con immagini)
Luce lampeggiante a LED fai-da-te: là fuori basando il mio camion RC intorno al tramonto e ho iniziato ad affrontare il problema per trovare l'orientamento corretto. Quindi ho pensato di costruire una luce lampeggiante per me stesso. Quindi in questo istruibile ti mostrerò come funziona una luce lampeggiante e lat
Orologio con quadrante lampeggiante a LED stampato in 3D: 7 passaggi (con immagini)
Orologio con quadrante LED lampeggiante stampato in 3D: benvenuto nell'istruzione di Yantrah! Noi di Yantrah ci concentriamo sull'istruzione pratica, insegniamo progettazione CAD 3D, programmazione, STEAM e robotica. Questo è un semplice orologio stampato in 3D basato su arduino con LED lampeggianti per mostrare l'ora , minuti e secondi passati