Ich verwende ein Arduino UNO, um ein vorkompiliertes Hex-Image unter Verwendung des avrdude im Arduino IDE-Verzeichnis unter Windows 7 auf ein ATTINY45 zu programmieren. Das Uno hat die ISP-Skizze aus dem Beispielverzeichnis geladen und das funktioniert - die Heartbeat-LED pulsiert schön.
Auf der Hardwareseite habe ich dieses Setup , außer dass der ATTINY oberflächenmontiert ist und mit allen mit einem Voltmeter verifizierten Pins an ein Surfbrett gelötet ist. Ich benutze einen Header-Pin-Streifen, der von Hand gehalten wird, damit die Pins das Surfbrett berühren und die Signale vom Uno zum ATTINY gelangen.
Hier sind die Befehlszeilen, die ich aus der Debugging-Ausgabe der IDE entnommen habe:
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
-Ich versuche diese separat auszuführen, erhalte aber immer den folgenden Fehler:
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
aber manchmal ist die Nummer ff0000 oder ffff00 oder ffffff
Ich habe gelesen, dass "Arduino eine leicht modifizierte Version von avrdude verwendet, um Skizzen auf das Arduino-Board hochzuladen. Die Standardversion fragt die Gerätesignatur des Boards auf eine Weise ab, die vom Bootloader nicht verstanden wird, was zu diesem Fehler führt." Bedeutet dies, dass die Verwendung des Arduino-Avrdude mit einem neuen ATTINY-Chip, auf dem sich kein Bootloader befindet, denselben Fehler verursachen würde? Mit anderen Worten, ist die modifizierte Avrdude nicht in der Lage, einen AVR-Chip ohne Arduino-Bootload abzufragen?
Oder bedeutet dieser Fehler einfach, dass ich keinen guten Kontakt zwischen all meinen Programmierstiften und dem ATTINY habe?
Und sind die Sicherungseinstellungen wirklich erforderlich? Kann der Uno den Blitz in eine Umgebung mit 1 MHz programmieren und mir so einige Schritte ersparen?
(Ich würde nur einen "echten" Programmierer kaufen, muss diesen Code aber in den nächsten zwei Tagen erhalten und bin in einem ländlichen Teil von Nova Scotia)
-carduino
nicht der stk500 verwendet. Versuchen Sie einfach, das Blinkprogramm von der IDE auf das Attiny hochzuladen. Auf diese Weise sehen Sie unten die richtige Befehlszeile, wenn Sie in den Einstellungen "ausführliche Ausgabe" aktivieren.
-c avrisp
. Ich denke, Sie können es ohne Probleme mit 1 MHz programmieren.