[RISOLTO] ATtiny 85 avrdude: stk500_getsync(): not in sync: resp=0x15

Ho ripreso un ATtiny che avevo programmato in precedenza per programmarlo e l'errore dato è stato questo. Non avevo toccato niente nelle cartelle..
13Arduino -> 7° piedino tiny
12 -> 6
11 -> 5
10 -> 1
5v -> 8
GND -> 4
Constatato che il problema non fosse di collegamento(ho provato anche il C tra GND e RESET e anche tra 3v3 e RESET) ho provato a rifare tutta l'installazione software.
Ho seguito questa guida quindi aggiunto nella cartella hardware la cartella "tiny" e sovrascritto la "tools". Poi nella cartella libraries ho aggiunto le due librerie che la guida diceva di aggiungere.
Stesso messaggio, il tutto mi sembra che sia stato installato correttamente!

Da un altro topic ho visto che come soluzione è stata consigliata quella di mettere un C tra 3V3 e Reset. Io l'avevo tra GND e RESET perchè l'avevo letto nella guida ma il messaggio è lo stesso in entrambi i casi.
Ho provato con più ATtiny

Immagine.bmp (1.12 MB)

Il messaggio è quello tipico dell'autoreset, nel caso lo metti tra 3,3V e Reset il C va messo però col polo positivo a 3,3V e col negativo sul Reset, quindi è diverso rispetto all'altra modalità, hai fatto così?
La Guida che devi seguire è quella di Leo che peraltro è aggiornata anche per la versione IDE 1.0.1, ed è differente dalla 0022.
Non è che l'ultima volta lo avevi programmato con la 0022?

il condensatore di solito si mette da 10uF col positivo sul reset (di arduino) ed il negativo a massa (gnd)...

una volta mi è successa una cosa del genere, ed i possibili problemi sono:

nel menù di arduino devi settare Strumenti > Programmatore > Arduino as ISP
poi se questo va bene, controlla che in board tu abbia selezionato la voce con attiny85 @ 8mhz o 1mhz (a seconda di come hai il clock del micro impostato)
se anche questo e ok, controlla i collegamenti, controlla che i fili non siano ossidati e che facciano contatto.

forse è meglio se dai un'occhiata a questa discussione

michele posso assicurarti che mi sono creato un arduino-clone (con porta seriale), adibito a mo di stk500-compatible usando arduinoisp, ed ho messo il condensatore da 10uF tra reset e gnd, ho programmato atmega168, atmega168pa, atmega644a, attiny45, ed attiny85, e fin'ora non mi ha dato nessun problema...

questo messaggio mi è apparso solo una volta... purtroppo avevo dimenticato di collegare l'alimentatore :confused: xD

Ascolta, nella versione precedente della mia Guida (è ancora disponibile al vecchio link) usavo questa tecnica, il condensatore (nel mio caso c'era anche una R da 120 tra 5V e RESET) va messo SOLO nel caso in cui si manifesti il problema dell'autoreset, altrimenti non serve, anzi rischi di bloccare la programmazione, ma io non mi riferisco al tuo aggeggio bensì all'Arduino UNO o 2009 o Diecimila.
Io non ho detto che NON funziona, ma quello studio di Astrobeed, che non è uno qualsiasi, ha dimostrato SCIENTIFICAMENTE la maggiore validità della tecnica rispetto a quella che riferisci tu (e che usavo anch'io prima), quindi non c'è alcuna ragione, oltre l'inutile ostinazione, per non usare un metodo molto più valido dal punto di vista elettronico.
Vedi, c'era uno che da sempre quando rientrava a casa apriva la porta con un calcio, e non aveva mai avuto problemi per questa cosa; un giorno un amico che lo accompagnò gli fece osservare che la porta aveva una maniglia... :wink:
Poi fai come vuoi, ma di fronte alla dimostrazione scientifica non bisognerebbe mai insistere su una strada meno corretta, nessuno ti obbliga a cambiare metodo ma almeno non portarlo come credo assoluto, quantomeno leggilo il Topic che ti ho linkato

sono d'accordo con te :wink:

ho solo sostenuto che il metodo giusto o sbagliato che sia, funziona, nient'altro... :wink:

@sciorty:
che Arduino hai? Ti ricordo che il C per l'autoreset serve solo se si usa il vecchio bootloader Optiboot 4.0, che era montato sugli Atmega328 delle prime UNO R1. Le R3 (e forse anche buona parte delle R2) montano il nuovo bootloader Optiboot 4.4 che elimina il problema dell'autoreset. Questo bootloader è distribuito a partire dall'IDE 0023 e si può ovviamente flashare anche sulle R1 per eliminare questo problema.

Tutto emozionato nel vedere 7 risposte comincio a leggere la prima e vedo "polarità" e tra me e me " ma da quando i ceramici hanno polarità? Aspetta, aspetta.. ma non è che sono micro e non pico?"

Sono un pollo, i know.
Grazie e scusate :cold_sweat:

Hai letto la prima risposta ma non l'ultima.

leo72:
@sciorty:
che Arduino hai? Ti ricordo che il C per l'autoreset serve solo se si usa il vecchio bootloader Optiboot 4.0, che era montato sugli Atmega328 delle prime UNO R1. Le R3 (e forse anche buona parte delle R2) montano il nuovo bootloader Optiboot 4.4 che elimina il problema dell'autoreset. Questo bootloader è distribuito a partire dall'IDE 0023 e si può ovviamente flashare anche sulle R1 per eliminare questo problema.

va bene, avrà risolto mettendo il giusto condensatore, è più facile che aggiornare l'optiboot :slight_smile:

Argh! Tu, il Profeta dell'ISP, che rinunci ad una flashatura! :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:

Ma non sarebbe poi tanlimitareliminare il problema alla radice! Dovrei quindi caricare il bootloader 4.4 no?

sciorty:
Dovrei quindi caricare il bootloader 4.4

Esatto.

EDIT:
mi riferisco ovviamente al problema dell'autoreset. Se è lui, con l'Optiboot 4.4 elimini il condensatore.

leo72:

[quote author=Michele Menniti link=topic=128835.msg969948#msg969948 date=1351115341]
va bene, avrà risolto mettendo il giusto condensatore, è più facile che aggiornare l'optiboot :slight_smile:

Argh! Tu, il Profeta dell'ISP, che rinunci ad una flashatura! :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:
[/quote]
e che c'entro io? :astonished: lui :smiley:

Ragazzi un altro problemino :roll_eyes:
Carico arduino ISP sull'ATmega, quindi il seguente codice sul tiny:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(3, 4);

void setup()
{
  mySerial.begin(9600);
  delay(2000);
}

void loop() {
    mySerial.println('c');
    delay(1000);
}

che va a buon fine e, successivamente, il seguente sull'ATmega:

char c;

void setup() {
  Serial.begin(9600);
}

void loop() {
  while (Serial.available() > 0) {
      c = Serial.read();
      Serial.print(c);    
  }
}

Ma non vedo niente sul serial monitor, il pin 3 e 4 (che dovrebbero essere RX e TX) sono collegati rispettivamente a TX ed RX dell'ATmega.. in ogni caso non funziona neanche al contrario..

A quanti MHz lavorano i tuoi Tiny, non mi ricordo più? La SoftwareSerial regge 8 MHz, non 1 MHz.
E poi controlla la versione del core Tiny, se non hai la 0100-0015 riscaricatelo perché tutte le precedenti avevano un bug per cui la seriale software non funzionava.
Infine, cambia anche pin.

Ho provato sia ad 1 che ad 8 Mhz, la versione penso sia quella che dici tu Google Code Archive - Long-term storage for Google Code Project Hosting.
Ormai ho posato tutto, dici che potrebbe essere un problema di pin? Nella maggior parte dei tutorial usano quelli comunque..

Ad 1 MHz non va, stanne pur certo.
Per i pin, prova 0 e 1, io li ho usati sempre con successo.

Neanche cambiando i pin.. escluderei problemi dell'ATmega visto che in ogni caso il led RX sull'arduino non si accende.

Ho provato con la libreria NewSoftSerial seguendo questa guida e quindi andando a sostituire la funzione enable_timer0 nel file .cpp con le righe da loro dette ma l'errore restituitomi nella compilazione è questo:

In file included from tiny_test_trasmissione_newserial.cpp:2:
C:\Documents and Settings\Dario\Desktop\Dario\Arduino\arduino-0023\libraries\NewSoftSerial/NewSoftSerial.h:71: error: conflicting return type specified for 'virtual void NewSoftSerial::write(uint8_t)'
C:\Documents and Settings\Dario\Desktop\Dario\Arduino\arduino-0023\hardware\tiny\cores\tiny/Print.h:73: error: overriding 'virtual size_t Print::write(uint8_t)'