ATTINY85 bootloader e IDE arduino

Salve ho da poco dei tiny85 e dei tiny84 .
Seguendo le varie guide di Leo72 usando l'ide 1.5.8 ed il suo core per tiny programmo senza problemi i tiny84.
per i tiny85 invece non c'è niente da fare mi restituisce sempre il 0x0000000 e ricontrollando mille volte i collegamenti li trovo sempre corretti ossia:
pin1: reset
pin 7 : sck
pin 6 : miso
pin 5 : mosi
pin 8 : vcc
pin 4 : gnd

qualcuno mi sa aiutare sa dire se è un problema legato all'Ide?
o se sbaglio qualcosa nel collegamento?
Grazie

I pin mi sembrano quelli giusti.
Banalmente, ma tra le board dell'IDE hai selezionato il tiny85 giusto (AtTiny85@xxxMhz) ?
Colleghi un cristallo esterno (senza 1Mhz o 8Mhz se modifichi i fuse) ?

La stessa guida può essere usata da chi ha una IDE 1.6.5 installata?

Il pin 1 a cosa è collegato di preciso?

Con un core credo diverso, io avevo un problema a scrivere il bootloader: falliva la programmazione dei lock bits se non ricordo male. Però riuscivo a caricare un programma sul chip. Ho risolto aggiungendo una riga in avrdude.conf. Maggiori dettagli qua: Burning bootloader fails on ATtiny85 - read operation not supported for memory "lock" · Issue #16 · SpenceKonde/ATTinyCore · GitHub.

inter1908:
La stessa guida può essere usata da chi ha una IDE 1.6.5 installata?

C'e' quella per 1.6.1
http://www.leonardomiliani.com/2015/arduino-ide-1-6-1-e-core-per-attiny-e-atmega6441284/

nid69ita:
C'e' quella per 1.6.1
http://www.leonardomiliani.com/2015/arduino-ide-1-6-1-e-core-per-attiny-e-atmega6441284/

Sicuramente mi sono perso io qualcosa ma non ho trovato il link per il download :frowning:

Era un po che non usavo gli attiny85 e con il nuovo ide (1.6.5) la guida di leo per l'ide 1.5.8 non funzionava più. Mi dava questo errore

avr_read(): error reading address 0x0000     read operation not supported for memory "lock" avrdude: failed to read all of lock memory, rc=-2

Ho risolto editando il file avrdude.conf presente in C:\Program Files (x86)\Arduino\hardware\tools\avr\etc, sostituendo le righe riferite all'attiny85 con quelle simili presenti nel file avrdude.conf della guida di leo.

queste le righe della guida di leo

#------------------------------------------------------------

ATtiny85

#------------------------------------------------------------

rimpiazzato da quello presente in avrdude.conf della guida di Leo

part
id = "t85";
desc = "ATtiny85";
has_debugwire = yes;
flash_instr = 0xB4, 0x02, 0x12;
eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
0xBC, 0x02, 0xB4, 0x02, 0xBA, 0x0D, 0xBB, 0xBC,
0x99, 0xE1, 0xBB, 0xAC;

no STK500 devcode in XML file, use the ATtiny45 one

stk500_devcode = 0x14;

avr910_devcode = ?;

Try the AT90S2313 devcode:

avr910_devcode = 0x20;
signature = 0x1e 0x93 0x0b;
reset = io;
chip_erase_delay = 4500;
pagel = 0xB3;
bs2 = 0xB4;

pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
"x x x x x x x x x x x x x x x x";

chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
"x x x x x x x x x x x x x x x x";

timeout = 200;
stabdelay = 100;
cmdexedelay = 25;
synchloops = 32;
bytedelay = 0;
pollindex = 3;
pollvalue = 0x53;
predelay = 1;
postdelay = 1;
pollmethod = 1;

hvsp_controlstack =
0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66,
0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78,
0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
hventerstabdelay = 100;
hvspcmdexedelay = 0;
synchcycles = 6;
latchcycles = 1;
togglevtg = 1;
poweroffdelay = 25;
resetdelayms = 1;
resetdelayus = 0;
hvleavestabdelay = 100;
resetdelay = 25;
chiperasepolltimeout = 40;
chiperasetime = 0;
programfusepolltimeout = 25;
programlockpolltimeout = 25;

ocdrev = 1;

memory "eeprom"
size = 512;
paged = no;
page_size = 4;
min_write_delay = 4000;
max_write_delay = 4500;
readback_p1 = 0xff;
readback_p2 = 0xff;
read = "1 0 1 0 0 0 0 0 0 0 0 x x x x a8",
"a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";

write = "1 1 0 0 0 0 0 0 0 0 0 x x x x a8",
"a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";

loadpage_lo = " 1 1 0 0 0 0 0 1",
" 0 0 0 0 0 0 0 0",
" 0 0 0 0 0 0 a1 a0",
" i i i i i i i i";

writepage = " 1 1 0 0 0 0 1 0",
" 0 0 x x x x x a8",
" a7 a6 a5 a4 a3 a2 0 0",
" x x x x x x x x";

mode = 0x41;
delay = 6;
blocksize = 4;
readsize = 256;
;
memory "flash"
paged = yes;
size = 8192;
page_size = 64;
num_pages = 128;
min_write_delay = 4500;
max_write_delay = 4500;
readback_p1 = 0xff;
readback_p2 = 0xff;
read_lo = " 0 0 1 0 0 0 0 0",
" 0 0 0 0 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";

read_hi = " 0 0 1 0 1 0 0 0",
" 0 0 0 0 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";

loadpage_lo = " 0 1 0 0 0 0 0 0",
" 0 0 0 x x x x x",
" x x x a4 a3 a2 a1 a0",
" i i i i i i i i";

loadpage_hi = " 0 1 0 0 1 0 0 0",
" 0 0 0 x x x x x",
" x x x a4 a3 a2 a1 a0",
" i i i i i i i i";

writepage = " 0 1 0 0 1 1 0 0",
" 0 0 0 0 a11 a10 a9 a8",
" a7 a6 a5 x x x x x",
" x x x x x x x x";

mode = 0x41;
delay = 6;
blocksize = 32;
readsize = 256;
;

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;
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";
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";
min_write_delay = 9000;
max_write_delay = 9000;
;

memory "lfuse"
size = 1;
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
"x x x x x x x x i i i i i i i i";

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";
min_write_delay = 9000;
max_write_delay = 9000;
;

memory "hfuse"
size = 1;
write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
"x x x x x x x x i i i i i i i i";

read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
"x x x x x x x x o o o o o o o o";
min_write_delay = 9000;
max_write_delay = 9000;
;

memory "efuse"
size = 1;
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
"x x x x x x x x x x x x x x x i";

read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
"x x x x x x x x o o o o o o o o";
min_write_delay = 9000;
max_write_delay = 9000;
;

memory "calibration"
size = 2;
read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
"0 0 0 0 0 0 0 a0 o o o o o o o o";
;
;

Aggiornamento:

In virtù del fatto che ho attualmente installata la IDE 1.6.5 ho deciso di scaricarmi dal sito la versione portatile della IDE 1.5.8 (in pratica la versione che non richiede l'installazione).

Nel mentre avevo applicato anche la modifica al file avrdude.conf così come riportata dall'ottimo @doppiozero (che ai fine dell'utilizzo della IDE 1.5.8 portatile non dovrebbe influenzare).

Ho recuperato e applicato la guida di @Leo72 per la IDE 1.5.8.

Ebbene, con la IDE 1.5.8 portatile non sono riuscito a programmare l'ATTINY85 a seguito di un error sulla scrittura mentre sono riuscito a programmarlo con laIDE 1.6.5 .

Ho provato il tutto con lo sketch dei tre led.

A queso punto, mi verrebbe da dire che si può usare la IDE 1.6.5 con la guida della 1.5.8 modificando il file evidenziato da @doppiozero.

Spero di essere stato utile a qualcuno e ringrazio @Leo72 per la guida e @doppiozero per la segnalazione.

Alberto

per rispondere a nid69ita seleziono il micro che va a 8 mhz senza quarzo esterno (uso sempre l'oscillatore da 8mhz interno).
e visto che non lo avevo scritto uso un Arduino UNO come programmatore per i tiny.
Nello specifico per i tiny 85 (gli unici che non riesco a programmare) collego i piedini di Arduino cosi:
reset : pin 10
mosi : pin 11
miso : pin 12
sck : pin 13.

secondo voi dovrei cambiare la versione dell'IDE? perchè mi pare di capire che qualcun'altro ha avuto problemi nel programmare i tiny85!!!

Credo che tu sia incappato nel mio stesso problema di cui sopra, e io uso l'IDE 1.6.5...

sv1972:
per rispondere a nid69ita seleziono il micro che va a 8 mhz senza quarzo esterno (uso sempre l'oscillatore da 8mhz interno).

Ma hai cambiato i fuse ? Perchè mi pare di ricordare che se non cambi i fuse, il micro è a 1Mhz

Ho seguito alla lettera la procedura cambiando solo il file di configurazione e ho scelto "Attiny85@8 Mhz (internal oscillator; BOD disabled)”"

Possibile che selezioni 8Mhz e poi vada a 1Mhz? C'è modo di verificarlo?

Alberto

Confermo che dovrebbe andare a 1 MHz di default, perché il clock è impostato sì su 8 MHz, ma è anche attivo il divisore per 8 del clock. Almeno, sui miei ATtiny84 era così, per cui immagino valga anche per gli '85. Tuttavia dovresti essere in grado di scrivere il bootloader (che nella pratica setta soltanto i fuse su queste piattaforme) per farlo andare a 8.

Possibile che selezioni 8Mhz e poi vada a 1Mhz? C'è modo di verificarlo?

con i consumi, stando al datasheet a 5V 1MHz sei su 1.5mA, 8Mhz 5mA.

Almeno, sui miei ATtiny84 era così, per cui immagino valga anche per gli '85

esatto

dal datasheet:

The device is shipped with CKSEL = “0010”, SUT = “10”, and CKDIV8 programmed. The default clock source setting
is therefore the Internal RC Oscillator running at 8 MHz with longest start-up time and an initial system clock
prescaling of 8, resulting in 1.0 MHz system clock.

Con onestà... non ho l'attrezzatura adatta per verificare l'assorbimento da 1.5mA a 5mA. ma poi la misurazione va fatta a vuoto collegando la sola alimentazione?

Ho un tester analogico e non digitale. ppena lo compro verifico.

la misurazione va fatta a vuoto collegando la sola alimentazione?

si esatto

inter1908:
Ho seguito alla lettera la procedura cambiando solo il file di configurazione e ho scelto "Attiny85@8 Mhz (internal oscillator; BOD disabled)”"

Possibile che selezioni 8Mhz e poi vada a 1Mhz? C'è modo di verificarlo?

Alberto

AvrDudess è una interfaccia grafica ad avrdude e tramite lui legge i fuse attuali.

Non ricordo però se è possibile passare attraverso Arduino as ISP.

nid69ita certo che imposto i fuses a 8mhz (scivendo il bootloader) è proprio qua che mi pianto!
Ho aperto la discussione proprio per questo!.
lo strano è che per i tiny84 non ho nessunissimo problema e ne ho un certo numero che funzionano 24h su 24 senza problemi.

sukkopera ! ma tu con l'ide 1.6.5 hai problemi a programmare i tiny85? riesci a scrivere il bootloader?

Ti allego il mio file do configurazione. Provalo e fammi sapere come va.
Io ho usato la IDE 1.6.5 senza problemi

avrdude.zip (29.9 KB)