La famiglia ATtiny è una serie microcontrollori più piccoli nel mercato AVR. Questi microcontrollori sono in grado di utilizzare molte delle librerie disponibili sulla piattaforma Arduino. Il chip ATtiny85 è un microcontrollore AVR a 8 bit. Le sue dimensioni ridotte e il basso consumo energetico lo rendono un ottimo abbinamento per progetti portatili con ingombri ridotti e bassi requisiti di alimentazione. Ma inserire il codice nel chip può essere un po’ una sfida in quanto non ha alcuna interfaccia USB.

Componenti Richiesti per la programmazione dell’ ATtiny85 tramite USB

  • Arduino UNO (usato solo una volta per caricare il bootloader)
  • ATtiny85 IC
  • USB di tipo A maschio
  • 3 Resistenze (2×47Ω e 1×1kΩ)
  • 3 Diodi (2×Zener 3,6V & 1×IN4007)
  • Zoccolo 4+4 pin

ATtiny85 Microcontroller IC – introduzione

ATtiny85 di Atmel è un microcontrollore ad alte prestazioni e bassa potenza basato sull’architettura RISC avanzata. Questo chip è dotato di memoria flash ISP da 8 KB, EEPROM da 512 B, SRAM da 512 byte, 6 linee I/O, 32 registri, un timer / contatore a 8 bit con modalità di confronto, uno ad alta velocità a 8 bit timer / contatore, interrupt interni ed esterni, convertitore A / D a 10 bit a 4 canali, timer watchdog programmabile con oscillatore interno, tre modalità di risparmio energetico selezionabili tramite software e debugWIRE per debug su chip.

I pin dell’ ATtiny85 sono riportati di seguito:

Programmazione del Boot-loader con Arduino Uno

Per programmare l’ATtiny85 senza Arduino, dobbiamo prima caricare un bootloader utilizzando la scheda Arduino UNO. Questo è un processo una tantum. La scheda Digispark ATtiny85 esegue il boot loader “micronucleus tiny85”, originariamente scritto da Bluebie. Il boot loader è il codice che è pre-programmato da Digispark e gli consente di agire come un dispositivo USB. Flasheremo lo stesso bootloader digispark attiny85 su ATtiny85.

Step1: Configuring Arduino Uno as an ISP:

L’ ATtiny85 richiede la programmazione di un ISP (In-System Programming). Quindi, per programmarlo, dobbiamo prima configurare Arduino Uno come ISP. Per questo, collega Arduino Uno al computer e apri l’IDE. Successivamente, vai su File -> Esempi -> ArduinoISP e carica il codice ISP Arduino.

Step 2: Circuito per la programmazione

Lo schema dei collegamenti è il seguente:

Un condensatore da 10 µf è eventualmente connesso tra il Reset e GND. E’ necessario solo se la programmazione produce qualche errore.

La corrispondenza dei PIN tra l’ ATtiny85 e Arduino Uno è la seguente:

ATtiny85 PinArduino Uno Pin
8 (Vcc)5V
4 (GND)GND
713
612
511
110

Ora collega l’Arduino Uno al computer e lancia l’IDE di Arduino e trova la COM corrispondente rilevata.

Scarica i file da questo link: ATtiny85 Boot-loader files .

Apri “Burn_AT85_bootloader.bat” e cambia il numero di porta COM “PCOM5” con il numero della porta COM a cui è connesso l’Arduino Uno e cambia il nome del file da flashare da AT85_Bootloader.hex a ATtiny85.hex.

Salva le modifiche prima di uscire.

Ora sposta il file appena modificat “Burn_AT85_bootloader.bat” e “ATtiny85.hex” dentro la cartella di installazione di Arduino IDE: (C:\Program Files (x86)\Arduino).

Fai clic con il pulsante destro del mouse su “Burn_AT85_bootloader.bat” e seleziona “Esegui come amministratore”. Occorrono circa 5-6 secondi per eseguire il flashing del boot loader. Se tutto è andato bene, dovresti ricevere questo messaggio “AVRdude done. Thank you. Press any key to continue…”.

Con questa procedura, il boot loader viene installato sull’ ATtiny85.

Ora è il momento di collegare l’USB con ATtiny85 in modo da poterlo programmare direttamente. Di seguito è riportato lo schema elettrico per la programmazione di ATtiny85 tramite USB:

Installazione dei driver Digispark

Per programmare ATtiny85 tramite USB, devi avere i driver Digispark Drivers installati sul tuo computer, se non li hai puoi scaricarli utilizzando il link riportato. Quindi, estrarre il file zip e fare doppio clic sull’applicazione “DPinst64.exe” per installare i driver a 64bit.

Una volta installati correttamente i driver, collega la scheda ATtiny85 al computer. Ora vai a Gestione dispositivi su Windows e il dispositivo ATtiny85 sarà elencato in “dispositivi libusb-win32” come “Digispark Bootloader”. Se non riesci a trovare “dispositivi libusb-win32” in Gestione dispositivi, vai su Visualizza e fai clic su “Mostra dispositivi nascosti”.

Configurazione di Arduino IDE

Per programmare la scheda ATtiny85 con l’IDE di Arduino, prima dobbiamo aggiungere il supporto della scheda Digispark all’IDE di Arduino. Per questo, vai su File> Impostazioni e aggiungi il link sottostante su URL aggiuntive per il Gestore Schede e fai clic su “OK”.

http://digistump.com/package_digistump_index.json

Successivamente, vai su strumenti -> Scheda… -> Gestore Schede e cerca “Digistump AVR” e installa la versione più recente.

Dopo averlo installato, ora puoi vedere una nuova voce nel menu Gestore Schede denominata “Digispark”.

Ora vai su file> Esempi > 01. Basics e apri l’esempio Blink.

Cambia il numero del pin da LED_BUILTIN a 0 che corrisponde al Pin 5 dell’ Attiny85.

Ora torna su Strumenti -> Scheda e seleziona la scheda :
“Digispark (Default – 16 mhz)”
e poi, alla voce Programmatore, selezione Micronucleus.
Quindi fare clic sul pulsante Carica nell’IDE di Arduino e collega la scheda ATtiny85 al computer, solo quando nell’IDE di Arduino visualizza un messaggio che dice:

Plug in device now… (will timeout in 60 seconds)

Se entro 60 secondi non viene rilevato alcun dispositivo collegato, il processo di caricamento si interromper (anche premendo Ctrl+C).

Una volta caricato il codice, e collegato un led al Pin 5 dell’ Attiny85, lo stesso dovrebbe iniziare a lampeggiare.