avrdude bloccato nel settare hfuse

salve, sono nuovo del forum e spero di non aver sbagliato sezione per il topic ma nella sezione italiana non ho trovato quella sui micro in standalone. Se sto sbagliando qualcosa non vi arrabbiate... Il mio dubbio è il seguente: sto imparando a programmare i micro ed ho cominciato con un ATtiny85, sto settando i fuse con avrdude ed uso arduino uno come programmatore isp. Il settaggio di lfuse ed efuse vanno senza problemi.Per l' hfuse cè qualcosa che non capisco: il settaggio sembra bloccato, gli rxtx dell'arduino sono accesi ma non termina mai. l'output della shell( sotto Ubuntu):

 avrdude  -p t85 -c arduino  -C /etc/avrdude.conf -b 19200 -P /dev/ttyACM1  -U hfuse:w:0xfc:m  -v

output:

avrdude: Version 5.10, compiled on Mar 23 2010 at 15:03:00
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/antonio/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyACM1
         Using Programmer              : arduino
         Overriding Baud Rate          : 19200
         AVR Part                      : ATtiny85
         Chip Erase delay              : 4500 us
         PAGEL                         : P00
         BS2                           : P00
         RESET disposition             : possible i/o
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65     6     4    0 no        512    4      0  4000  4500 0xff 0xff
           flash         65     6    32    0 yes      8192   64    128  4500  4500 0xff 0xff
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           calibration    0     0     0    0 no          2    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e930b
avrdude: safemode: lfuse reads as E2
avrdude: safemode: hfuse reads as DC
avrdude: safemode: efuse reads as FF
avrdude: reading input file "0xfc"
avrdude: writing hfuse (1 bytes):

Writing |                                                    | 0% 0.00s ***failed;  
Writing | ################################################## | 100% 0.16s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xfc:
avrdude: load data hfuse data from input file 0xfc:
avrdude: input file 0xfc contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.03s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0xfc != 0xdc
avrdude: verification error; content mismatch

avrdude: safemode: lfuse reads as E2
avrdude: safemode: hfuse reads as DC
avrdude: safemode: efuse reads as FF
avrdude: safemode: hfuse changed! Was fc, and is now dc
Would you like this fuse to be changed back? [y/n] y

correggeti se sbaglio, unprogrammed=1 , programmed=0

rstdisb=1 dwen=1 SPIEN=1 WDTON=1 -------------> 1111=15=F EESAVE=1 BODLVL2=1 BODLVL1=0 BODLVL0=0 ------------->1100=12=C quindi hfuse=0xfc

ormai sono 30 minuti che sta cosi

scusate vorrei correggermi, lo fa con tutti e tre i tipi di fuse…
ma nel comando avrdude è corretto inserire -b 19200(penso di no visto che si riferisce a rs-232) o invece devo settare -B (non so xo con quale valore, sul datasheet nn l’ho letto) visto che di default l’attiny85 va a 128khz

Fai una ricerca sul forum. Di Attiny85 se ne parlato diverse volte. Guarda anche le guida sul sito di Leo --> http://www.leonardomiliani.com/

clauser:
scusate vorrei correggermi, lo fa con tutti e tre i tipi di fuse…
ma nel comando avrdude è corretto inserire -b 19200(penso di no visto che si riferisce a rs-232) o invece devo settare -B (non so xo con quale valore, sul datasheet nn l’ho letto) visto che di default l’attiny85 va a 128khz

Tutte le MCU di default vanno a 1 MHz, l’oscillatore a 128 kHz è usato primariamente dal watchdog. Ho letto di poterlo usare anche come clock di sistema ma io non ci sono mai riuscito, per lo meno non con l’ambiente di Arduino, che non prevede assolutamente di compilare per quel clock, forse in assembly ma non ho mai provato.

Tornando al tuo problema, lo fa anche quando scrivi uno sketch oppure no? Il parametro -B non usarlo, incasina e basta.
-b 19200 vale se usi lo sketch ArduinoISP su un Arduino Uno che a sua volta usi come programmatore perché l’ArduinoISP comunica a quella velocità. Se usi un altro programmatore puoi cambiare quel parametro.

Stai usando /etc/avrdude.conf come file di configurazione, ciò mi fa pensare che tu stia usando avrdude prelevato dal tuo repo e non quello allegato all’IDE. Quello allegato all’IDE è patchato per funzionare con l’IDE di Arduino. Togli quello di Ubuntu e se hai l’IDE di Ubuntu, togli anche quella e scaricati l’IDE dal sito di Arduino, poi usa avrdude integrato nell’IDE e riprova.
Fai una prova anche usando “stk500v1” come programmatore

allora, usando avrdude ed il file config di arduino ho lo stesso problema... settando l'stk500v1 come programmatore, stesso problema ... con l'ide non so se posso cambiarli, al massimo provero a scrivere un programmino per settarli.... grazie dell'aiuto e della pazienza

risolto( credo) ho provato a cambiare chip e ci sono riuscito. Avevo fatto confusione con il fuse spien, non avevo capito bene la sua funzione... x non buttarlo sapete come posso resettare tutti i fuse ??

grazie a tutti e due per le risposte

Semplicemente riscrivendoli. Sul sito di Leo trovi gli zip con le board per i micro già pronte, sia per IDE 1.0.x che per IDE 1.5.x.

Se hai disabilitato spien che sarebbe serial periferal interface enable, non puoi più programmarlo via ISP, l'unico modo per programmarlo è tramite il programmatore parallelo. Ci sono cascato anche io, ma con la selezione del clock, risultato micro non usabile, ho dovuto fare i collegamenti paralleli e scrivere un pezzo di programmino per rimettere i fuse standard usando l'indirizzamento parallelo.

Ciao.

Oppure usando un programmatore H/V, tipo quello realizzato da Michele per E.In, con cui resettare completamente il chip.