Hardware

ATmega328 standalone

Una delle prime cose che mi sono chiesto dopo aver iniziato a trafficare con la board Arduino è stata se fosse possibile, una volta progammato, estrarre il chip dal suo socket e utilizzarlo su un circuito stampato preparato ad hoc per il progetto.

La board Arduino è perfetta come base per il prototipo: la presenza di headers, programmatore on-board, regolatori di tensione la rendono veramente versatile ma poco adatta quando si passa dal prototipo a una possibile realizzazione.

 

I motivi della separazione

Quali sono dunque i motivi che potrebbero spingere un progettista a voler estrarre il chip dalla sua scheda Arduino per installarlo altrove?

Innanzitutto il “fattore forma”: probabilmente l’involucro, all’interno del quale il progettista vorrà posizionare i componenti del progetto che sta realizzando, dovrà avere una forma che risponda a criteri di ergonomicità o di estetica o semplicemente di opportunità che poco si sposano con le dimensioni della board Arduino.

In secondo luogo le interconnessioni tra il microcontroller e il mondo esterno: l’alimentazione e i pin i/o sono attestati su connettori la cui resistenza meccanica e bontà del contatto non sono paragonabili ad una saldatura.

Dunque cosa serve?

L’ATmega328 è estremamente parco nelle sue richieste, per funzionare ha bisogno di un quarzo da 16MHz, due condensatori ceramici da 22pF e una sorgente di alimentazione stabile da +5V o +3.3V.

 

 

 

 

 

  • U1: ATmega328
  • C1-C2: 22pF Ceramico
  • XTAL1: 16MHz

 

Come si può notare dallo schema, oltre ai pin 7 e 8, rispettivamente Vcc e Gnd (cioè l’alimentazione principale del microcontroller), sono collegati all’alimentazione anche i pin 20,21 e 22, rispettivamente AVcc, Aref e Gnd; questi ultimi alimentano la sezione del AD converter a cui fanno capo i pin 23-28 (A0-A5 nel gergo di Arduino) che deve essere alimentata anche se non si utilizzano gli ingressi analogici.

Tra i pin 9 e 10 va collegato il quarzo, caricato dai due condensatori C1 e C2 collegati tra i suoi capi e massa. E’ consigliabile che i collegamenti tra i piedini 9 e 10, il quarzo, i condensatori e massa siano il più brevi possibile in modo da ridurre al minimo capacità parassite.

ATTENZIONE!
Questa è la versione più minimale possibile di un Arduino standalone ed ispirata alla riduzione massima dei componenti necessari a far funzionare lo sketch “blink”. Per applicazioni più complesse ci sono ovviamente molte considerazioni da fare, soprattutto sulla affidabilità, che qui non sono state analizzate. Verificate sempre, prima di utilizzare la configurazine proposta che sia adatta a ciò che state realizzando!

 

Proviamolo su una breadboard

Il modo più rapido per verificare il corretto funzionamento di un ATmega328 standalone in questa configurazione è caricare il più classico degli sketch, blink, estrarre il chip dalla board Arduino e montarlo con i componenti necessari su una breadbord. Oltre ai componenti già menzionati, andranno aggiunti: una resistenza da 1KOhm, un led e, naturalmente, la breadbord e i ponticelli (8).

Appena collegati i due ponticelli di alimentazione a un alimentatore stabilizzato da 5V l’ATmega inizia a far lampeggiare il LED come da istruzioni.

 

I prossimi passi

Il passo successivo sarà dotare il nostro ATmega di una personalissima fonte di alimentazione stabilizzata utilizzando il notissimo 7805 e di una comoda porta di programmazione per evitare di spostare il chip avanti e indietro tra la board Arduino e la sceda del progetto in costruzione; i dettagli negli articoli:

Come alimentare correttamente ATmega328 standalone

Una porta di programmazione per ATmega328 standalone

 

 


Commenti

07.09.2012 bahamut

Ciao, intanto ti ringrazio per questa guida che mi ha confermato, come pensavo, la possibilità di rimuovere l'atmega dall'arduino e inserirlo in un circuito. Una cosa di cui vorrei essere sicuro è che nella configurazione riportata qui il pin 1 (reset) non è collegato a niente, con il pic invece che aveva il reset attivo basso come in questo atmega andava collegato a 5v disattivando quindi il reset. Con questo atmega è necessario farlo oppure come da guida non c'è bisogno? Grazie

07.09.2012 Silvio Marzotto

Il circuito presentato in questa pagina rappresenta il minimo indispensabile e sul campo, quando il numero di componenti e lo spazio occupato sono stati fattori critici di progetto, ha comunque dato prova di funzionare stabilmente. In effetti dai datasheets (8161D–AVR–10/09 - ATmega48PA/88PA/168PA/328P) si vede nella figura 10.1 Reset Logic che tra il !RESET e VCC è presente una resistenza di pull-up interna che garantisce quel minimo di stabilità al segnale. E' vero però che nel caso in cui non ci siano problemi di spazio, per rendere il circuito più stabile e immune da disturbi, è possibile aggiungere una resistenza di pull-up esterna con un valore che solitamente va da 4.7KOhm a 10KOhm sul pin RESET (In realtà ci sono parecchi pareri sul valore da attribuire a questa resistenza, la board Arduino dovrebbe usare 10K, alcuni programmatori AVR consigliano 4.7K, i datasheets indicano curiosamente un valore tra 30KOhm e 60KOhm ). Sicuramente un esperimento da provare: verificare la stabilità del reset in funzione della resistenza di pullup... Ciao

14.05.2013 Nicola

salve utilizzando il circuito di alimentazione con 7805 e questo circuito di funzionamento dell atmega 328, ho riscontrato che inserendo il tutto in una scheda da me realizzata per un progetto di pan e tilt comandato con un joystick, il circuito necessita, per funzionare correttamente di 1 o 2 condensatori da 47 microF in uscita del 7805. altrimenti fatte qualche manovre i servi si bloccano.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

In questo articolo abbiamo parlato di

Ne abbiamo parlato anche in...

Alimentare correttamente ATmega328

Hardware

Alimentare correttamente ATmega328

12.02.2012 di Silvio Marzotto19 commenti

Uno dei principali aspetti da tenere in considerazione quando si lavora con microcontrollori e circuiti digitali è la corretta alimentazione. I problemi più comuni che si potrebbero verificare sono legati innanzitutto […]