Pages: 1 [2] 3 4   Go Down
Author Topic: [RISOLTO] ATtiny 85 avrdude: stk500_getsync(): not in sync: resp=0x15  (Read 1840 times)
0 Members and 1 Guest are viewing this topic.
Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ragazzi un altro problemino  smiley-roll
Carico arduino ISP sull'ATmega, quindi il seguente codice sul tiny:
Code:
#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:
Code:
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..

Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21619
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho provato sia ad 1 che ad 8 Mhz, la versione penso sia quella che dici tu http://code.google.com/p/arduino-tiny/downloads/list
Ormai ho posato tutto, dici che potrebbe essere un problema di pin? Nella maggior parte dei tutorial usano quelli comunque..
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21619
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:

Quote
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)'
Logged

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E grazie, i fuse erano ancora impostati ad 1Mhz! L'errore non me lo dava ma provando con un blink effettivamente va più lento mettendolo ad 8Mhz!
Ho provato a scrivere il bootloader con arduino ma l'errore è questo:
Code:
avrdude: invalid byte value (null) specified for immediate mode
avrdude: write to file 'null' failed

di cui in rete ho trovato poco o comunque riferimenti alla riga di comando di avrdude che sinceramente non ho capito cosa sia.
Ho provato in ogni caso ad aggiungere questa riga nel file arduino\hardware\tools\avr\etc\avrdude.conf :
Code:
read            = "0 1 0 1  0 0 0 0  0 0 0 0  0 0 0 0",
                           "x x x x  x x x x  o o o o  o o o o";

avendo questo:
Code:
#   ATtiny85 has Signature Bytes: 0x1E 0x93 0x08.
     memory "signature"
         size            = 3;
         read            = "0  0  1  1   0  0  0  0   0  0  0  x   x  x  x  x",
                           "x  x  x  x   x  x a1 a0   o  o  o  o   o  o  o  o";
       ;
     memory "lock"
         size            = 1;
         write           = "1 0 1 0  1 1 0 0  1 1 1 x  x x x x",
                           "x x x x  x x x x  1 1 i i  i i i i";
         read            = "0 1 0 1  1 0 0 0  0 0 0 0  0 0 0 0",
                           "0 0 0 0  0 0 0 0  o o o o  o o o o";
        min_write_delay = 9000;
        max_write_delay = 9000;
       ;

Ma niente, effettivamente questo andava fatto per l'errore
avr_read(): error reading address 0x0000
read operation not supported for memory "lock"
avrdude: failed to read all of lock memory, rc=-2 

che a me neanche era spuntato..
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 410
Posts: 11985
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se vuoi cambiare i fuse ad un tiny devi ricorrere ad AVRDUDE, non ho mai provato con l'1.0.1 ma con la 0022 la scrittura del bootloader (peraltro fittizio, in quanto vuoto) non cambiava i valori dei fuse.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma allora perchè dicono di scrivere il bootloader?

Se vuoi cambiare i fuse ad un tiny devi ricorrere ad AVRDUDE

Come ? :\

Ho una confuzione in testa..! Ricapitolando con la NewSoftSerial @ 1 Mhz mi da quell'errore che sarà probabilmente di sintassi e con la SoftSerial sia @1 che 8 Mhz la compilazione va a buon fine ma essendo i fuse impostati a 1 la seriale non va e i delay sono a 8x

Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 410
Posts: 11985
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

chi lo dice? la tecnica di scrittura del bootloader per cambiare i fuse funziona solo con gli ATmega.
Posso prepararti la stringa per eseguire il comando da AVRDUDE ma mi serve sapere:
modello di Arduino
versione IDE
micro da programmare (sappiamo che è il tiny85)
Altra cosa: alla fine NON hai detto se per programmare il tiny hai usato il condensatore o no e se nel frattempo hai aggiornato il bootloader della tua Arduino alla versione Optiboot 4.4.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non l'ho aggiornato, per il condensatore era sottinteso che lo usassi perchè senza non funzionava  smiley

Ho visto in giro queste stringhe ma effettivamente non ho capito dove vanno messe. In un terminale che sarebbe avrdude?
Se si dove lo trovo?Non c'entra niente con il windowsavr che se non sbaglio avevo scaricato per l'upload di sketch "grandi" sul tiny?

grazie per la pazienza smiley-grin

Arduino 0023 su XP
« Last Edit: October 28, 2012, 10:03:07 am by sciorty » Logged

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

chi lo dice? la tecnica di scrittura del bootloader per cambiare i fuse funziona solo con gli ATmega.

Lo dicono qui.
Gli Attiny escono di fabbrica con i fuse impostati in maniera tale che il microcontrollore utilizzi l’oscillatore interno a 1Mhz. E’ l’opzione migliore per la maggior parte dei progetti, ma se aveste bisogno di una velocità maggiore si può programmare l’Attiny in maniera tale che utilizzi il proprio oscillatore interno a 8Mhz oppure utlizzando un oscillatore esterno a 16Mhz (vedi post precedenti). Se vogliamo cambiare velocità al nostro Attiny, utlizzando as esempio l’oscillatore interno a 8Mhz, dobbiamo settare i fuse, facendo un’upload di un bootloader vuoto, contenente solo i settaggi che ci interessano. Per fare ciò è sufficiente selezionare da Tools –> Boards il settaggio che ci interessa (ad esempio Attiny85 @ 8Mhz), e poi Tools –> Burn bootloader —> w/Arduino as ISP.
A questo punto probabilmente vi darà il seguente errore:

che sarebbe l'errore di cui parlavo sopra ma che a me non è spuntato
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 410
Posts: 11985
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

beh, fagli sapere che è sbagliato o che la spiegazione non porta al risultato sperato.
Arduino 0023 quand'è uscito? Ancora devono completare la prima distribuzione della DUE e già sono alla 23? smiley-yell
Scherzo, AVRDUDE è il programma che permette di dialogare in lettura e scrittura con il micro, nel nostro caso sempre mediante tecnica ISP.
Devi:
1 - (per comodità) copiare in C:\ la cartella "avr" che si trova in tuopath\hardware\tools dell'IDE 0023
2 - caricare ArduinoISP sulla tua UNO (immagino...)
3 - collegare Arduino UNO al tuo micro tiny 85 con la tecnica ISP, aggiungendo il condensatore
4 - esegui il prompt di DOS e vai su C:\
5 - aspetti intanto che ti preparo la stringa smiley-wink
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9186
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

5 - aspetti intanto che ti preparo la stringa smiley-wink

6 - metti su la caffettiera che tra poco passo da te  smiley-grin
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 410
Posts: 11985
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

5 - aspetti intanto che ti preparo la stringa smiley-wink

6 - metti su la caffettiera che tra poco passo da te  smiley-grin
Se dovesse davvero mai capitare ne sarei più che felice e la prima tappa sarebbe il miglior Ristorante della zona smiley-wink ma è vero, il piacere di un caffé domestico è impagabile, specialmente quando lo sorseggi parlando con un amico  smiley-lol

@sciorty
7 - scrivi la stringa
Quote
"C:\avr\bin\avrdude.exe" -C "C:\avr\etc\avrdude.conf" -p t85 -c stk500v1 -b 19200 -P COM2 -U lfuse:w:E2:m -U hfuse:w:DF:m -U efuse:w:FF:m
e poi premi INVIO
al posto di COM2 metti la COM con cui è riconosciuta la tua Arduino, il resto NON devi modificarlo.
Postami tutti i messaggi che escono dopo il comando.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ahahaha scusa comunque è una 2009, molto probabilmente un clone che presi inconsapevolmente 1 anno fa quando cominciai!

Ho caricato l'Arduino ISP sull'arduino, mandati in esecuzione i comandi e il risultato sputato fuori è quello allegato.
Quindi uno sketch sul tiny:
Code:
#include <SoftwareSerial.h>

SoftwareSerial mySerial(0, 1);

void setup()
{
  mySerial.begin(9600);
  delay(2000);
  pinMode(2,OUTPUT);
}

void loop() {
    delay(500);
    digitalWrite(2,LOW);
    delay(500);
    digitalWrite(2,HIGH);
    mySerial.println('c');
}

Ma il delay è di 4 secondi circa ancora :'(


* Immagine.bmp (340.84 KB, 642x181 - viewed 6 times.)
« Last Edit: October 28, 2012, 11:00:54 am by sciorty » Logged

Pages: 1 [2] 3 4   Go Up
Jump to: