Sto usando un Arduino UNO per programmare un'immagine esadecimale precompilata su un ATTINY45, usando avrdude nella directory IDE di Arduino, su Windows 7. L'Uno ha lo schizzo ISP caricato dalla directory degli esempi e funziona - il LED del battito cardiaco pulsa bene.
Sul lato hardware ho questa configurazione , tranne per il fatto che ATTINY è a montaggio superficiale, saldato a una tavola da surf con tutti i suoi pin verificati-saldati con un voltmetro. Uso una striscia di intestazione, tenuta a mano per far toccare i pin alla tavola da surf, per ottenere i segnali da Uno a ATTINY.
Ecco le righe di comando, che ho preso guardando l'output di debug dell'IDE:
REM set the fuse for 8MHz, so the ISP programmer can work
C:\Progra~1\Arduino\hardware\tools\avr\bin\avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -e -Uefuse:w:0xff:m -Uhfuse:w:0xdf:m -Ulfuse:w:0xe2:m
REM load the program
C:\Progra~1\Arduino\hardware\tools\avr\bin\avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -Uflash:w:firefly.hex:i
REM set fuse for 1MHz, as the project requires
C:\Progra~1\Arduino\hardware/tools/avr/bin/avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -e -Uefuse:w:0xff:m -Uhfuse:w:0xdf:m -Ulfuse:w:0x62:m
-Tento di eseguirli separatamente, ma ottengo sempre questo errore:
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
ma a volte il numero è ff0000 o ffff00 o ffffff
Ho letto che "Arduino utilizza una versione leggermente modificata di avrdude per caricare gli schizzi sulla scheda Arduino. La versione standard richiede la firma del dispositivo della scheda in un modo non compreso dal bootloader, causando questo errore." Questo significa che l'utilizzo di Arduino avrdude con un nuovo chip ATTINY, senza bootloader, causerebbe anche lo stesso errore? In altre parole, l'avrdude modificato non è in grado di interrogare un chip AVR non caricato da Arduino?
O quell'errore significa semplicemente che non ho un buon contatto tra tutti i miei pin del programmatore e ATTINY?
E, sono davvero necessarie le impostazioni dei fusibili, Uno può programmare il flash in un attiny che funziona a 1MHz e quindi salvarmi alcuni passaggi?
(Vorrei solo comprare un programmatore "reale", ma ho bisogno di ottenere questo codice nei prossimi due giorni, e sono in una zona rurale della Nuova Scozia)
-carduino
lo stk500. Prova a caricare il programma di lampeggiamento sull'attine dall'IDE. In questo modo puoi vedere la riga di comando corretta in fondo, se abiliti "output dettagliato" nelle impostazioni.
-c avrisp
. Penso che tu possa programmarlo a 1 MHz senza problemi.