Nel mondo dei microcontrollori e dell’elettronica, ci sono molti tipi diversi. Uno dei tipi di microcontrollori più popolari è la famiglia AVR. Questi microcontrollori possono essere utilizzati in una varietà di progetti o prodotti, poiché hanno molti usi e funzioni.
Se vuoi iniziare un progetto Arduino ma non sei sicuro di come programmare il microcontrollore AVR con Arduino, non preoccuparti! In questo articolo del blog, copriremo tutte le tue opzioni!
Cos'è un microcontrollore AVR?
Un microcontrollore AVR è un microcontrollore che utilizza il set di istruzioni AVR. AVR è un microcontrollore a chip singolo RISC a 8 bit di architettura Harvard modificata che è stato sviluppato da Atmel nel 1996. I microcontrollori AVR sono spesso utilizzati nelle schede Arduino e quando si programma per le schede Arduino, si utilizzerà il microcontrollore AVR.

Forma completa del microcontrollore AVR
La forma completa del microcontrollore AVR è Atmel AVR. È un tipo di microcontrollore che è stato originariamente progettato per dispositivi embedded come automobili, telefoni cellulari, elettrodomestici, sistemi di monitoraggio domestico e molto altro! I microcontrollori AVR sono spesso utilizzati nelle schede Arduino e quando si programma per le schede Arduino, si utilizzerà il microcontrollore AVR.
Caratteristiche del microcontrollore AVR
– Basso consumo – Una delle migliori caratteristiche dei microcontrollori AVR è il loro basso consumo energetico. A seconda di ciò che stai facendo con il dispositivo, può variare da trascurabile a un paio di watt.
– Ampia gamma di temperature – Sebbene la temperatura possa influire sulla velocità del dispositivo, i microcontrollori AVR possono resistere a temperature comprese tra -40 gradi Celsius e 85 gradi Celsius.
– Architettura a 8 bit – Un’altra caratteristica dei microcontrollori AVR è la loro architettura a 8 bit. Ciò consente al tuo dispositivo di avere più memoria e più potenza di elaborazione.
– Facile da programmare – Ultimo ma non meno importante, i microcontrollori AVR sono facili da programmare. Questo li rende una scelta eccellente per principianti e hobbisti che desiderano creare i propri progetti.
Architettura del microcontrollore AVR
L’architettura AVR si basa su un’architettura di computer a set di istruzioni ridotto (RISC). Le architetture RISC rendono il processo di programmazione molto più semplice ed efficiente, che è uno dei motivi per cui AVR è diventato così popolare.
– Set di istruzioni – Il set di istruzioni dell’architettura è anche ridotto. Sebbene possa sembrare che ciò renda la programmazione più difficile, la rende più facile perché meno istruzioni significano istruzioni meno complesse.
– Percorso dati a 8 bit – L’architettura a 8 bit significa anche che ha un percorso dati a 8 bit, il che significa che può elaborare più dati contemporaneamente.
– Memoria del programma – La memoria del programma è dove sono memorati tutti i tuoi programmi. È come un disco rigido per il tuo dispositivo.
– Memoria dei dati – La memoria dei dati è dove sono memorati i tuoi dati. Ad esempio, se vuoi memorizzare un numero nel dispositivo, viene memorizzato nella memoria dei dati.
Schema dei pin del microcontrollore AVR
Esistono diversi tipi di microcontrollori AVR e lo schema dei pin varierà a seconda del tipo. Tuttavia, ci sono alcuni schemi dei pin che sono comuni in molti tipi di microcontrollori AVR come ATmega328P.
Configurazione dei pin ATmega328P
– RESET – RESET è una linea che si attiva quando il dispositivo viene ripristinato. Questo può interferire con il programma se i due sono collegati.
– GND – GND sta per massa. Questa è la connessione che il dispositivo utilizzerà per completare il circuito.
– VCC – VCC è la tensione utilizzata per alimentare il dispositivo.
– RX – RX è un pin di ingresso che riceve dati da un altro dispositivo.
– TX – TX è un pin di uscita che invia dati a un altro dispositivo.
Diagramma a blocchi del microcontrollore AVR
Il diagramma a blocchi del microcontrollore AVR è il diagramma che mostra tutte le parti interne del microcontrollore. Diversi modelli avranno parti diverse, ma ogni modello è generalmente lo stesso in termini di funzionalità.
– Memoria programma – La memoria programma è dove viene memorizzato il programma. Questo è come un disco rigido per il dispositivo.
– Memoria dati – La memoria dati è dove vengono memorizzati i dati.
– Contatore di programma – Il contatore di programma tiene traccia di dove ti trovi nel programma.
– Registro istruzioni – Il registro istruzioni contiene la prossima istruzione che verrà eseguita.
– ALU – L’ALU sta per unità aritmetico-logica. Questo esegue tutte le operazioni matematiche nel programma.
– File di registro – Il file di registro è una raccolta dei registri dell’ALU. – Timer/contatore – Il timer/contatore viene utilizzato per misurare il tempo o contare diversi eventi.
Cos'è Arduino
Arduino è una piattaforma open-source che rende facile per le persone con poca o nessuna esperienza di programmazione progettare e creare progetti elettronici. Le schede Arduino sono in grado di controllare una varietà di luci, sensori e altri dispositivi. Le schede Arduino utilizzano software specifico per programmarle. Se vuoi programmare il microcontrollore AVR con Arduino, devi utilizzare una scheda specificamente progettata per questo.
Programmazione del microcontrollore AVR con Arduino
Se vuoi programmare il microcontrollore AVR con Arduino, dovrai utilizzare una scheda Arduino progettata per i microcontrollori AVR. Queste schede sono specificamente progettate per gestire la programmazione del microcontrollore AVR. Programmare il microcontrollore AVR con Arduino è facile come caricare un programma sulla scheda. Una volta caricato il programma, devi ripristinare la scheda Arduino e quindi scollegare la fonte di alimentazione. Quando ricolleghi la fonte di alimentazione, il microcontrollore AVR con Arduino sarà programmato.
1. Configura programmatore-Arduino
Innanzitutto, devi configurare “programmatore-Arduino” (l’Arduino che hai configurato come programmatore) come ISP. Per impostazione predefinita, gli sketch (codice) sono disponibili in Esempio di codice nel menu File dell’IDE Arduino. Lo sketch Arduino ISP passa le istruzioni necessarie al Programmatore-Arduino per configurarlo in modalità programmazione.

2. LED collegato ad Arduino
Come secondo passo, lo stato del Programmatore-Arduino può essere monitorato utilizzando i LED collegati come mostrato. Il codice Arduino ISP è pre-programmato per questa funzionalità.

Note LED:
Pin 7 = programmazione (si illumina durante la programmazione)
Pin 8 = Errore (si accende in caso di errore di programmazione)
Pin 9 = Normale (rimane acceso una volta che il programmatore è alimentato)
Una volta che il Programmatore-Arduino è configurato, viene stabilita la connessione tra il Programmatore-Arduino e l’Arduino di destinazione. La configurazione dei pin deve essere eseguita esattamente come descritto nel codice Arduino ISP.
3. Configura la comunicazione SPI
L’Arduino ISP comunica utilizzando il protocollo Serial Peripheral Interface (SPI) per programmare il microcontrollore AVR. La comunicazione SPI utilizza 4 segnali logici: MOSI, MISO, SCLK e SS. Oltre a I2C, SPI è una delle modalità di comunicazione più comunemente utilizzate per i MCU. SPI segue un’architettura master-slave, il che significa che un dispositivo master può comunicare con più dispositivi slave utilizzando gli stessi pin dati e il dispositivo slave di destinazione viene selezionato utilizzando la linea di selezione slave.
Se c’è una scheda di memoria, la selezione viene utilizzata per selezionare un chip specifico tra più chip. Tuttavia, quando si utilizza Arduino come strumento di programmazione, il segnale di selezione slave viene utilizzato solo per ripristinare il microcontrollore. Ripristina il microcontrollore in uno stato di accettazione dei comandi dal programmatore Arduino.
Su Programmer-Arduino, i pin 10, 11, 12 e 13 vengono utilizzati come pin dati. La configurazione è la seguente:
pin 10 = reset
Pin 11 = MOSI
Pin 12 = MISO
Pin 13 = SCK
4. configura i pin dell'header ICSP
La programmazione seriale in circuito (ICSP) è la capacità di programmare un microcontrollore senza interrompere il circuito. L’header ICSP è disponibile come 6 pin sulla scheda Arduino. Collega i pin 11, 12 e 13 dell’Arduino di destinazione ai pin 11, 12 e 13 dell’Arduino programmatore. Nota che il pin 10 dell’Arduino programmatore deve essere collegato al pin di reset dell’Arduino di destinazione. In alternativa, i pin dell’header ICSP possono essere utilizzati per la comunicazione SPI.

5. Configura Arduino come ISP
Dopo aver collegato tutto quanto sopra, devi definire che stai utilizzando la modalità Programmatore sul PC host. Vai su Strumenti nel menu e seleziona “Arduino come ISP” nell’opzione “Programmatore”.

6. Brucia il Bootloader sull'Arduino
Successivamente, carica il bootloader nella memoria dell’Arduino di destinazione e definisci il “fuse”. In Arduino-land, un fuse è un insieme di istruzioni utilizzate per definire più funzioni in un microcontrollore. Ad esempio, la frequenza del chip e la sorgente di clock sono definite nei fuse. I microcontrollori sono sensibili alle tensioni operative e possono funzionare male se i livelli di tensione sono inferiori a quelli specificati. La tensione operativa minima è definita anche all’interno del fuse.

Precauzioni
#1. Se il microcontrollore o la scheda Arduino possono comunicare con il programma Arduino IDE, ci sono vari vantaggi, come la possibilità di utilizzare il monitor seriale dell’Arduino IDE per controllare i risultati in fase di esecuzione. (Il Monitor Seriale si apre in una finestra separata, fungendo da terminale separato per la ricezione e l’invio di dati seriali.)
#2. Se il bootloader non è caricato nel microcontrollore, non sarà in grado di utilizzare le funzioni di Arduino e non sarà in grado di comunicare con l’IDE di Arduino. Il bootloader occupa parte della memoria. In alcuni casi, non è necessario utilizzare l’IDE di Arduino, quindi il bootloader non deve essere programmato. Se il bootloader non è programmato, è possibile liberare più memoria per lo sketch del programma principale. Ad esempio, in Arduino UNO, la dimensione totale della memoria è di 32 KB e 0,5 KB di memoria sono allocati per il bootloader. Se il bootloader non è installato, la memoria totale disponibile per lo sketch del programma principale è maggiore.
Riepilogo
Il microcontrollore AVR è un chip facile da usare e potente che può essere programmato per un’ampia gamma di applicazioni. È un ottimo chip per i principianti che vogliono entrare nel mondo dei microcontrollori e dell’elettronica. La piattaforma Arduino è un ottimo modo per iniziare con i microcontrollori ed è progettata specificamente pensando ai principianti.




