AtTiny84 come utilizzare?

Salve a tutti, ho appena acquistato un microcontrollore ATTINY84 (Questo). Ho seguito vari tutorial online ma non riesco a farlo funzionare. Ho utilizzato il metodo di Arduino as ISP con un Arduino Leonardo. Ho iniziato caricando sulla scheda l'Arduino ISP presente negli Esempi dell'IDE, quindi ho collegato l'attiny nel modo seguente: Pin VCC a pin 5V Pin GND a pin GND Pin MOSI a pin 11 Pin MISO a pin 12 Pin SCK a pin 13 Pin RESET a pin 10

Quindi ho collegato il GND dell'arduino al RESET dell'arduino con un condensatore da 10uF (ho provato anche senza). Una volta fatto ciò ho fatto "Scrivi il bootloader"... l'IDE lavora per circa 5 minuti poi mi restituisce il seguente errore:

Arduino:1.6.4 (Windows 8.1), Scheda:"ATtiny, ATtiny84, 1 MHz (internal)"

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x03

Problema di caricamento sulla scheda. Guarda http://www.arduino.cc/en/Guide/Troubleshooting#upload per suggerimenti

Questo report potrebbe essere più ricco di informazioni con "Mostra un output dettagliato durante la compilazione" abilitato in "File > Impostazioni"

. Qualcuno sa dirmi come posso risolvere questo problema?

Nel menù Programmatore cosa hai selezionato?

Che core hai installato per l'ATtiny?

Nel programmatore ho inserito "Arduino as ISP". Per il core ho fatto cosi: File > Impostazioni > In additional boards manager URL ho inserito "https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json". Quindi da Strumenti > Scheda > Boards manager ho selezionato AtTiny by David A. Mellis v. 1.0.1

Intanto ti consiglio di usare un altro core, meglio mantenuto: https://github.com/SpenceKonde/ATTinyCore

Con questo potrai scegliere alcuni parametri prima di scrivere il bootloader. In particolare assicurati che il clock sia 8 MHz INTERNAL. Prova con un nuovo ATtiny eventualmente, poi vediamo di recuperare questo.

Non funziona, devo utilizzare il B.O.D.? P.S. Resistuisce ancora questo errore: Arduino:1.6.4 (Windows 8.1), Scheda:"ATtiny x4 series, ATtiny84, 8 mhz (internal), B.O.D. Disabled"

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x03

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x03

Problema di caricamento sulla scheda. Guarda http://www.arduino.cc/en/Guide/Troubleshooting#upload per suggerimenti

Questo report potrebbe essere più ricco di informazioni con "Mostra un output dettagliato durante la compilazione" abilitato in "File > Impostazioni"

Prova con un altro ATtiny.

Ho provato anche con un diverso AtTiny, ma restituisce l'errore

OK, pare che con la Leonardo devi fare una modifica ad ArduinoISP:

Tra le prime righe trovi:

// #define USE_OLD_STYLE_WIRING

Decommentala e ricarica lo sketch.

Non ho trovato la riga da decommentare, quindi l'ho aggiunta manualmente. Comunque restuisce ancora lo stesso errore. Adesso faccio una prova con ArduinoMEGA

Stai usando Arduino 1.6.8? Lì dovresti trovarla. Se non c’è, aggiungerla dubito faccia qualcosa.

Il problema è che i pin 11/12/13 sulla Leonardo non sono i pin deputati allo SPI. Dovresti prendere gli stessi segnali sul connettore ICSP:

D14 MISO 1 . . 2 VCC
D15  SCK 3 . . 4 MOSI D16
     RST 5 . . 6 GND

Con quella #define forzi invece l’utilizzo di una SPI software sui pin “classici”.

No, utilizzo 1.6.4, adesso aggiorno il software e riprovo

Ho fatto una prova con la nuova versione, non funziona comunque. Ripeto il collegamento, magari emerge qualche errore: + del attiny > 3.3V - del attiny > GND MOSI attiny > 11 MISO attiny > 12 SCK attiny > 13 RESET attiny> 10 9 arduino > led 8 arduino > led 7 arduino > led

Ho dato un occhiata a come interpretare il lavoro in base ai led collegati ai pin 9,8 e 7. Si accende solamente il led collegato al pin 9, che lampeggia con dissolvenza. Non si accende il led del pin 8 associato all'errore.

Finalmente ho risolto il problema dell’errore, grazie mille SukkoPera per l’aiuto che mi hai dato. Per risolvere il problema ho semplicemente cambiato il programmer da Arduino as ISP a ArduinoLeo as ISP. Adesso ricevo il messaggio Scrittura bootloader completata, però non succede nulla al led collegato, ecco lo sketch caricato:

void setup() {
  // put your setup code here, to run once:
  pinMode(7, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(7, HIGH);
  delay(1000);
  digitalWrite(7, LOW);
  delay(1000);
}

Come non detto, nella mia sbadataggine ho collegato il led con i poli invertiti. :-[ Colgo nuovamente l'occasione per ringraziare SukkoPera che mi ha dato un aiuto fondamentale.