Programmare ATtiny13 con Arduino

Programmare microcontrollori ATtiny può sembrare complicato, ma con un Arduino Uno e la configurazione giusta diventa un processo sorprendentemente semplice.
In questa guida vedremo come trasformare Arduino in un programmatore ISP e caricare codice su un ATtiny13A.

Occorrente

  • Arduino Uno
  • Microcontrollore ATtiny13A
  • Breadboard e cavi jumper
  • LED e resistenza (per il test finale)
  • Arduino IDE installato sul computer

Preparazione di Arduino come Programmatore ISP

Il primo passo consiste nel convertire l’Arduino Uno in un programmatore AVRISP. ISP significa “In System Programmer” ed è il metodo standard per programmare i microcontrollori AVR.

Per caricare lo sketch su arduino è semplice: basta aprire l’IDE e andare su FileEsempi11.ArduinoISPArduinoISP. Una volta completato l’upload, Arduino è pronto per programmare altri microcontrollori.

Configurazione del Supporto per ATtiny13

Per poter lavorare con l’ATtiny13, dobbiamo aggiungere il supporto specifico nell’IDE tramite MicroCore, un’eccellente libreria che fornisce tutto il necessario, tramite FilePreferenze e inserire nel campo “URL aggiuntive per il Gestore schede” il seguente URL:

https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json

Conferma cliccando su OK. Successivamente, vai su StrumentiSchedaGestore schede, cerca “MicroCore” e clicca su Installa.

Collegamenti Hardware

Ora è il momento di collegare fisicamente l’ATtiny13A all’Arduino. I collegamenti sono fondamentali per una programmazione corretta:

ATtiny 13 Arduino
1 D10 (CS)
5 D11 (MOSI)
6 D12 (MISO)
7 D13 (SCK)
8 5V
4 GND

Per testare il funzionamento, collega un LED con la sua resistenza in serie al pin 3 dell’ATtiny13A (che corrisponde al pin 4 nel codice Arduino).

Configurazione delle Impostazioni di Programmazione

Prima di caricare qualsiasi codice, devi configurare correttamente l’IDE. Vai nel menu Strumenti e imposta i seguenti parametri:

  • Scheda: ATtiny13
  • BOD: 4.3V
  • Clock: 1.2 MHz internal osc.
  • Compiler LTO: Enable
  • Porta: seleziona la porta del tuo Arduino
  • Programmatore: Arduino as ISP

Inizializzazione del Chip

Questa operazione va eseguita una sola volta per ogni nuovo chip ATtiny13A.

Vai su StrumentiScrivi il Bootloader.

Anche se potresti vedere un messaggio di errore, generalmente puoi ignorarlo: l’ATtiny13A non usa un bootloader tradizionale, ma questo comando configura i fuse bit necessari.

Caricamento del codice di test

Ora siamo pronti per caricare il primo programma! Come esempio utilizzeremo il classico blink che fa lampeggiare il LED:

void setup() {
  // Inizializza il pin 4 (pin 3 del chip ATtiny) come output
  pinMode(4, OUTPUT); 
} 

void loop() {
  digitalWrite(4, HIGH);
  delay(1000);
  digitalWrite(4, LOW);
  delay(1000);
} 

Importante: quando programmi l’ATtiny13A attraverso Arduino come ISP, devi usare Sketch → Carica usando un programmatore invece del normale pulsante di upload.

Verifica del funzionamento

Se tutto è stato configurato correttamente, il LED dovrebbe iniziare a lampeggiare con un intervallo di un secondo. Questo conferma che l’ATtiny13A è stato programmato
con successo e sta eseguendo il codice.

Conclusioni

Programmare un ATtiny13A con Arduino Uno è un ottimo modo per esplorare il mondo dei microcontrollori compatti e a basso consumo. Una volta presa confidenza con il processo, potrai creare progetti miniaturizzati che richiedono pochissima energia e spazio, perfetti per applicazioni embedded e dispositivi portatili.