Nel tutorial di oggi vedremo Come programmare un ATtiny85 con Arduino, impostato come programmatore ISP, tramite Arduino IDE.
Microcontrollore ATtiny85
L’ATtiny85 è un micro-controllore, prodotto dalla ATMEL, appartenente alla stessa famiglia dei chip presenti su alcune schede Arduino (ATmega328P, ecc…). Un esempio è l’Arduino Nano, che andremo ad utilizzare come programmatore, equipaggiato con un chip ATmega328P.
Queste le caratteristiche principali: oscillatore interno a 8 MHz (o 16 MHz con PLL interno), interfaccia SPI, I2C o porta seriale, 8 K di memoria di programma flash, 512 byte di RAM, 512 byte di EEPROM e supporta un’alimentazione da 1.8 a 5.5 volt.
Questo il Pinout del chip:
Per maggiori info potete consultare il datasheet a questo link.
Materiale occorrente
Per realizzare questo progetto ci servono i seguenti componenti:
- Arduino Nano: (Link Amazon – Link eBay)
- Chip ATTiny85: (Link Amazon – Link eBay)
- Resistenza 220Ω: (Link Amazon – Link eBay)
- Breadboard: basetta forata sperimentale (Link Amazon – Link eBay)
- Jumper Wire: cavetti elettrici (Link Amazon – Link eBay)
- Arduino IDE: (per l’installazione vi rimando a questi post)
Oltre al materiale elencato sarà necessario scaricare, tramite l’IDE, le schede aggiuntive per programmare i chip ATtiny, e configurare Arduino come Programmatore ISP.
Configurazione scheda ATtiny85 in Arduino IDE
Di default Arduino IDE non gestisce le schede ATtiny, ma installare il necessario è molto semplice.
Per prima cosa dobbiamo aggiungere il link per permettere ad Arduino IDE di gestire le schede aggiuntive.
Apriamo l’IDE e clicchiamo su File->Impostazioni
Aggiungiamo nel campo URL aggiuntive per il Gestore Schede il link “https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json”, come evidenziato nell’immagine seguente, e premiamo OK
N.B. se sono già presenti dei collegamenti per altre schede possiamo aggiungere il link in coda separandolo con una virgola da quelli già presenti
Ora rechiamoci nel gestore schede da Strumenti->Scheda->Gestore Schede
Nella barra di ricerca inseriamo ATtiny e premiamo Invio (1).
Verrà mostrato il pacchetto di installazione disponibile per le schede della famiglia ATtiny, compreso la ATtiny85. Clicchiamo su Installa (2) per avviare l’installazione
Al termine dell’installazione il nostro ambiente di sviluppo sarà pronto per poter essere utilizzato per la programmazione dei chip ATtiny.
Come programmare un ATtiny85 con Arduino
Configurare Arduino come Programmatore ISP
Ora vediamo come impostare Arduino Nano, come Programmatore ISP, in modo da poterlo utilizzare per caricare gli sketch sul chip ATtiny85.
Con Arduino collegato ad una delle porte USB configuriamolo, dal pannello Strumenti dell’IDE, in questo modo:
- Scheda -> Arduino Nano
- Processore -> ATmega328P
- Porta -> COM4 (N.B. la porta potrebbe essere differente)
- Programmatore -> Arduino as ISP
Dalla tab File -> Esempi cerchiamo e selezioniamo lo sketch ArduinoISP
Una volta selezionato carichiamolo, su Arduino Nano, cliccando sul pulsante Carica (contrassegnato da una freccia rivolta verso destra)
A questo punto la board Arduino è pronta per essere utilizzata come programmatore
Schema di montaggio per caricare lo sketch
Ora dobbiamo effettuare i collegamenti necessari per poter permettere ad Arduino Nano di poter caricare gli sketch sul chip ATtiny85
Per questioni di spazio le indicazioni degli 8 piedini non vengono stampate tutte, sul chip ATTiny85, ma può essere individuato facilmente il Pin 1 che solitamente è contrassegnato con un piccolo cerchio o, se non presente, a sinistra della scalanatura a forma di mezzo cerchio
Una volta individuato il piedino 1 basta guardare lo schema dell’immagine del Pinout per individuare la disposizione degli altri piedini.
Ora effettuiamo i collegamenti tra Arduino Nano, impostato come programmatore, e il chip ATtiny85 come mostrato nella tabella seguente
COLLEGAMENTO ATtiny85 – Arduino | ||
---|---|---|
Arduino Nano/UNO | ATtiny85 | Jumper |
D10 | Pin 1 (Reset) | Arancione |
D11 | Pin 5 (MOSI) | Bianco |
D12 | Pin 6 (MISO) | Verde |
D13 | Pin 7 (SCK) | Giallo |
5V | Pin 8 (VCC) | Rosso |
GND | Pin 4 (GND) | Nero |
Questo il circuito realizzato con fritzing
Sketch blink per ATtiny85
Copiamo ed incolliamo, lo sketch seguente, nell’IDE di Arduino:
Configurazione IDE e esecuzione dello sketch
Prima di caricare lo sketch è necessario impostare la Scheda, il Processore, il Clock e la Porta relativi all’ATtiny85.
Colleghiamo la board Arduino Nano al nostro PC, tramite la porta USB, e configuriamola dal pannello Strumenti dell’IDE in questo modo
- Scheda -> ATtiny25/45/85
- Processore -> ATtini85
- Clock -> Internal 1 MHz (solitamente il valore impostato di default su chip nuovi)
- Porta -> COM4 (N.B. la porta potrebbe essere differente)
Assicuriamoci anche che in Programmatore sia impostato Arduino as ISP
Terminata la configurazione non ci resta che caricare lo sketch cliccando sul pulsante Carica
Se non si sono verificati errori, il nostro ATtiny è pronto per far lampeggiare un led.
Scolleghiamo i jumper utilizzati per il collegamento, con il micro-controllore Arduino Nano, ed effettuiamo i collegamenti del Led e dell’ATTiny come da schema seguente
COLLEGAMENTO ATtiny85 Led | |||
---|---|---|---|
ATtiny85 | Led | R220Ω | |
Pin 5 | + | ||
– | 1° Pin | ||
Pin 4 | 2° Pin |
Sul Pin 8 va collegato il VCC e sul Pin 4 il GND di una fonte di alimentazione (massimo 5,5 volt).
N.B. per alimentare il circuito ho utilizzato una scheda di ricarica TP4056. Se no avete una fonte di alimentazione potete utilizzare tranquillamente i PIN 5V e GND di Arduino e sfruttare Arduino come alimentatore.
Questo il circuito realizzato con fritzing
e questo il circuito reale
Ora non ci resta che alimentare l’ATTiny per vedere in esecuzione lo sketch.
A presto 😉