salve a tutti,
rieccomi dopo un periodo di pausa( nel quale mi sono laureato in effetti ihihihih)
ieri cercavo di costruire un piccolo controller per una ventola, precisamente questo ma non riesco a programmare il piccolo attiny85
ho provato sia con Usbasp che con la mia mega e arduinoasISP
Arduino:1.8.16 (Windows Store 1.8.51.0) (Windows 10), Scheda:"ATtiny25/45/85 (No bootloader), Enabled, CPU (CPU frequency), ATtiny85, 8 MHz (internal), EEPROM retained, B.O.D. Disabled (saves power), Enabled"
Lo sketch usa 2606 byte (31%) dello spazio disponibile per i programmi. Il massimo è 8192 byte.
Le variabili globali usano 21 byte (4%) di memoria dinamica, lasciando altri 491 byte liberi per le variabili locali. Il massimo è 512 byte.
C:\Users\crist\Documents\ArduinoData\packages\arduino\tools\avrdude\6.3.0-arduino18/bin/avrdude -CC:\Users\crist\Documents\ArduinoData\packages\ATTinyCore\hardware\avr\1.5.2/avrdude.conf -v -pattiny85 -cstk500v1 -PCOM3 -b19200 -Uflash:w:C:\Users\crist\AppData\Local\Temp\arduino_build_553405/Smart_Fan_Controller.ino.hex:i
avrdude: Version 6.3-20201216
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Users\crist\Documents\ArduinoData\packages\ATTinyCore\hardware\avr\1.5.2/avrdude.conf"
Using Port : COM3
Using Programmer : stk500v1
Overriding Baud Rate : 19200
Setting bit clk period : 5.0
AVR Part : ATtiny85
Chip Erase delay : 400000 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 12 4 0 no 512 4 0 4000 4500 0xff 0xff
flash 65 12 32 0 yes 8192 64 128 30000 30000 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 : STK500
Description : Atmel STK500 Version 1.x firmware
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: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x000000 (retrying)
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x000000 (retrying)
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.
Errore durante il caricamento dello sketch
Trovata libreria non valida in C:\Users\crist\Documents\Arduino\libraries\esp32EXAMPLE: Nessun header file (.h) trovato in C:\Users\crist\Documents\Arduino\libraries\esp32EXAMPLE
il problema è "Device signature = 0x000000" tipico di quando non si cabla bene il micro target, ma ho fatto e rifatto i collegamenti piu volte e anche la usbasp non ha dato esisto positivo...
idee ? suggerimenti ?
Sarebbe interessante vedere questi collegamenti, posta uno schema o una foto. Se, ad esempio, hai seguito le istruzioni del link che hai postato non potrà funzionare sul Mega, perchè i pin da usare sono altri. Inoltre, che 'core' hai usato? Hai provato come prima operazione (prima del caricamento sketch) a impostare i fuse correttamente (voce del menu "scrivi bootloader")?
come sono altri ? se ti riferisci al pin del reset al 53 questa cosa è stata rettificata; ho usato il pin 10 per il reset anche con la mega...
ho usato prima un core trovato in rete, poi disinstallato e usato quello consigliato da Arduino playground e cioè questo :https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
ho provato a scrivere il bootloader ma l'esito è sempre lo stesso: Device signature = 0x000000
Gli ATtiny85, come tutti gli AVR, escono di fabbrica con il clock impostato ad 1 MHz ...
... io che uso veri programmatori (e non schede Arduino usate come programmatori), con gli ATtiny85 ho avuto a volte questi tuoi stessi problemi dovuti al "Bit Clock" (parametro -B di avrdude) e, ho risolto, semplicemente rallentando, ovvero passando come parametro ad avrdude il -B 100
−B bitclock
Specify the bit clock period for the JTAG interface or the ISP clock (JTAG ICE only). The value is a floating point number in microseconds. The default value of the JTAG ICE results in about 1 microsecond bit clock period, suitable for target MCUs running at 4 MHz clock and above. Unlike certain parameters in the STK500, the JTAG ICE resets all its parameters to default values when the programming software signs off from the ICE, so for MCUs running at lower clock speeds, this parameter must be specified on the command‐line. You can use the ’default_bitclock’ keyword in your ${HOME}/.avrduderc file to assign a default value to keep from having to specify this option on every invocation.
avrdude: Version 5.6, compiled on Mar 5 2009 at 09:59:30
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
System wide configuration file is "C:\Users\crist\Documents\ArduinoData\packages\ATTinyCore\hardware\avr\1.5.2/avrdude.conf"
error at C:\Users\crist\Documents\ArduinoData\packages\ATTinyCore\hardware\avr\1.5.2/avrdude.conf:332 unrecognized character: "d"
Non so se hai usato il chip o una schedina già montata con il chip e altro, ma è indispensabile almeno un condensatore da 100nF vicino ai piedini di alimentazione, altrimenti non si riesce a programmarlo!
che intendi con "vicino ai piedini di alimentazione ? tra il positivo e e il negativo dell'attiny?
@gpb01: ho intallato l'IDE su un portatile appena formattato.. dovrebbe essere tutto pulito... ho dato il comando come da te suggerito ma nulla.. allora ho provato a "forzare ( - F) questa è la risposta:
C:\Users\Windows\Documents\ArduinoData\packages\arduino\tools\avrdude\6.3.0-arduino18\bin>avrdude -CC:\Users\Windows\Documents\ArduinoData\packages\ATTinyCore\hardware\avr\1.5.2/avrdude.conf -v -pattiny85 -cstk500v1 -PCOM3 -b19200 -B 100 -F -Uflash:w:C:\Users\Windows\AppData\Local\Temp\arduino_build_942579/Smart_Fan_Controller.ino.hex:i
avrdude: Version 6.3-20201216
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Users\Windows\Documents\ArduinoData\packages\ATTinyCore\hardware\avr\1.5.2/avrdude.conf"
Using Port : COM3
Using Programmer : stk500v1
Overriding Baud Rate : 19200
Setting bit clk period : 100.0
AVR Part : ATtiny85
Chip Erase delay : 400000 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 12 4 0 no 512 4 0 4000 4500 0xff 0xff
flash 65 12 32 0 yes 8192 64 128 30000 30000 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 : STK500
Description : Atmel STK500 Version 1.x firmware
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: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.09s
avrdude: Device signature = 0x000000 (retrying)
Reading | ################################################## | 100% 0.08s
avrdude: Device signature = 0x000000 (retrying)
Reading | ################################################## | 100% 0.09s
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATtiny85 is 1E 93 0B
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "C:\Users\Windows\AppData\Local\Temp\arduino_build_942579/Smart_Fan_Controller.ino.hex"
avrdude: writing flash (2608 bytes):
Writing | ################################################## | 100% 4.49s
avrdude: 2608 bytes of flash written
avrdude: verifying flash memory against C:\Users\Windows\AppData\Local\Temp\arduino_build_942579/Smart_Fan_Controller.ino.hex:
avrdude: load data flash data from input file C:\Users\Windows\AppData\Local\Temp\arduino_build_942579/Smart_Fan_Controller.ino.hex:
avrdude: input file C:\Users\Windows\AppData\Local\Temp\arduino_build_942579/Smart_Fan_Controller.ino.hex contains 2608 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 2.63s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0x00 != 0x3b
avrdude: verification error; content mismatch
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: safemode: Fuses OK (E:00, H:00, L:00)
avrdude done. Thank you.
Senti, io è una vita che programmo gli ATtiny85 e non ho mai avuto i problemi che segnali tu, quindi ... c'è qualche cosa che stai facendo errata.
Hai un vero programmatore (e NON un giocattolo o un Arduino usato come programmatore)? Un qualche cosa tipo QUESTO? Ecco, i collegamenti per la programmazione ISP credo tu li conosca:
... usa un interfaccia grafica ad avrdude, tipo avrdudess, programma prima correttamente i FUSE per la configurazione che ti serve e poi carica il programma.
Facci sapere ...
Guglielmo
P.S.: il quarzo esterno non ti serve, con i fuse correttamente programmati hai il clock interno a 8MHz. Ovvio che se giocando con detti FUSE hai "brickato" il chip, con un normale programmatore NON lo programmi più, ti serve un programmatore HV per resettarlo.
mah non so che dire, ho un normalissimo USBASP con il quale ho gia programmato gli attiny, che appunto sono di una facilità tale da essere a prova d'errore;
il punto è che nemmeno piu l'usbasp mi riconosce piu (dice che la scheda non esiste ) e allora mi chiedo: ci sta aver brickato l'attiny, ma l'asp che c'entra ?
percio avevo usato la mega;
intanto sto ordinando questo che dovrebbe essere gia compatibile con l'IDE e finire sta schedina
il dubbio cmq rimane...
... l'asp NON c'entra nulla, se sbagli la programmazione dei fuse puoi creare una condizione in cui con nessun normale programmatore programmi più. Per ripristinare la situazione iniziale occorre uno speciale programmatore HV (High Voltage) ... un oggetto come QUESTO (che funziona benissimo).
Oppure, non so come, hai semplicemente danneggiato gli ATtiny85 ...