Atmel AVR
![](https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/ATmega8_01_Pengo.jpg/220px-ATmega8_01_Pengo.jpg)
L'AVR è una famiglia di microcontrollori RISC ad architettura Harvard sviluppati dalla Atmel a partire dal 1996. L'AVR fu una delle prime famiglie di microcontrollori a utilizzare una memoria flash interna per memorizzare il contenuto del programma: questo permette di cancellare la memoria di programma e riscriverla con una nuova versione in pochi secondi e anche senza rimuovere il microcontrollore dalla scheda su cui è montato, velocizzando enormemente il processo di correzione e messa a punto del codice. Durante gli anni novanta la maggior parte dei microcontrollori utilizzavano One-Time Programmable ROM, EPROM, o EEPROM.
I creatori dell'AVR non hanno mai chiarito il significato della sigla. È comunemente accettato che AVR stia per "Alf and Vegard RISC processor" (da Alf-Egil Bogen e Vegard Wollen, i due studenti che lo idearono).
I microcontrollori AVR tipo "mega" sono diventati molto popolari da quando sono stati inclusi nel progetto della piattaforma Arduino.
Caratteristiche generali
[modifica | modifica wikitesto]Caratteristiche salienti di tutti i dispositivi sono:
- memoria di programma Flash (riprogrammabile per almeno 10.000 volte, ma nella serie XMega questo limite è diventato 100.000)
- memoria EEPROM (riscrivibile almeno 100.000 volte)
- memoria RAM statica (di dimensioni variabili a seconda del dispositivo)
- disponibilità di un clock interno RC calibrato su ogni singolo dispositivo
- possibilità di bloccare l'accesso al programma per evitare copiature (chiamato Lock Bit)
- Watchdog con oscillatore interno autonomo[1]
- POR (Power On Reset: reset[2] automatico quando viene applicata la tensione di alimentazione) e se, durante il funzionamento, la tensione di alimentazione scende sotto una soglia minima prefissata è possibile inserire un reset automatico (in inglese: Brown-out Detection Circuit, circuito di rilevamento dei cali di alimentazione)
Famiglie base
[modifica | modifica wikitesto]In base alle caratteristiche gli AVR si possono suddividere in quattro gruppi:
- Tiny (i dispositivi più piccoli come dice la traduzione del termine) con sigle che iniziano con "ATtiny"
- 1÷8 kB di memoria (flash) per il programma
- set di dispositivi hardware periferici limitato (ad esempio linea seriale[3] disponibile solo su alcuni microcontrollori)
- contenitori disponibili con numero di pin (e quindi di connessioni ingresso/uscita) limitato (da 8 a 32)
- Mega (con sigle che iniziano con "ATmega")
- 4÷256 kB di memoria (flash) per il programma
- set di istruzioni esteso
- maggior numero di periferiche disponibili (ad esempio presenza di una o più linee seriali, presenza di più PWM, ecc.)
- contenitori con pin da 28 a 100
- XMega (sigle che iniziano con "ATXMega")
- 64-384 kB di memoria flash per il programma
- set di istruzioni esteso
- bus dati interno 16 bit
- periferiche disponibili ulteriormente aumentate rispetto ai Mega
- gestione DMA ed eventi
- clock fino a 32 MHz (48 MHz nei modelli con USB)
- nuove periferiche evolute (disponibili o no a seconda del modello), ad esempio unità di cifratura AES, USB high-speed, DAC
- AT90, MCU di questa serie sono state tipicamente studiate per applicazioni specifiche
Questi dispositivi sono concettualmente simili ai Mega, ma a seconda del modello contengono delle periferiche particolari pensate per un uso specifico. Ad esempio esistono versioni con a bordo controllore per display LCD, controllore per porta USB, per seriale CAN, ecc. Tuttavia, le periferiche specializzate degli AT90 sono oggi disponibili nella serie XMega oppure nella serie UC3 con architettura AVR32: di conseguenza per progetti di nuova concezione l'uso degli AT90 non è consigliabile.
- AVR 32-bit
Nel 2006 Atmel ha messo in commercio dei microcontrollori basati sull'architettura a 32-bit AVR32. Questa include istruzioni SIMD e DSP, assieme con altre caratteristiche di elaborazione audio e video. Questa famiglia a 32-bit di dispositivi è stata creata per competere con i processori basati su architettura ARM. L'insieme delle istruzioni è simile ad altri RISC, ma non è compatibile con gli originali AVR.
Note
[modifica | modifica wikitesto]- ^ Questo è importante se è installato un oscillatore (Clock) esterno, in caso di blocco dell'oscillatore esterno il microcontrollore può trovarsi in una condizione che può essere pericolosa (attivazione di un motore o del riscaldamento di una caldaia, ecc). L'oscillatore interno interviene e resetta il microcontrollore spegnendo eventuali dispositivi attivati.
- ^ Il reset nei microcontrollori e microprocessori permette di forzare l'hardware interno (tutti i dispositivi fisici) in uno stato ben definito e di puntare alla prima istruzione da eseguire
- ^ Sui pin microcontrollore è disponibile una linea seriale con livelli logici limitati (tra GND e Vcc): per trasformarla in una seriale che risponda agli standard (RS232 o EIA RS422) si deve aggiungere un circuito integrato dedicato a questa funzione (vedi paragrafo dedicato della voce RS-232).
Voci correlate
[modifica | modifica wikitesto]Altri progetti
[modifica | modifica wikitesto]Wikimedia Commons contiene immagini o altri file su Atmel AVR
Collegamenti esterni
[modifica | modifica wikitesto]- Tutorial e guide opensource ai microcontrollori ATmega e ATtiny, su gioblu.com. URL consultato l'11 agosto 2019 (archiviato dall'url originale il 7 dicembre 2018).
- (EN) Sito web del produttore, su atmel.com. URL consultato il 16 novembre 2007 (archiviato dall'url originale il 21 gennaio 2012).
- (EN) Tutorial, su avr-asm-tutorial.net.
- Sequencer MP3 - Progetto open, su salvitti.it. URL consultato il 21 luglio 2008 (archiviato dall'url originale il 3 ottobre 2008).
Controllo di autorità | LCCN (EN) sh2008020007 · GND (DE) 4540630-3 · J9U (EN, HE) 987007542400905171 |
---|