Bisher konnte ich problemlos eine Schaltung mit einem ATMEGA48PA umprogrammieren. Bis ich bekam (nachdem anscheinend erfolgreich programmiert wurde):
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0x19 != 0x00
avrdude: verification error; content mismatch
Jetzt bekomme ich jedes Mal, wenn ich versuche, es zu programmieren:
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
Bei diesem letzten erfolglosen Programm (das mit dem Verifizierungsfehler) hatte ich den Reset-Pin manuell heruntergezogen. Kann das so geschadet haben? Laut meinem Multimeter wird die Reset-PIN standardmäßig abgerufen (es wird also angenommen, dass sie immer noch als Reset konfiguriert ist).
Sie können die ISP-Schnittstelle des Atmega48 absichern, wenn Sie den eingehenden Programmierdatenstrom einfach so beschädigen, aber das wäre sehr schwierig. Obwohl ich gesehen habe, dass es bei verschobenen Byte-Streams passiert ist, die Ihre manuelle Überschreibung der Reset-Leitung verursacht haben könnte (aber immer noch höchst unwahrscheinlich).
Es ist auch möglich, dass der USBASP ein Firmware-Update benötigt (wie in der Warnmeldung vorgeschlagen) oder lediglich neu geflasht werden muss. Wie in, Sie hatten einfach Pech mit Ihrem Timing und dies ist wirklich ein unabhängiger Fehler im USPASP.
avrdude ist schrecklich beim Debuggen von Programmierkommunikationsproblemen. Verwenden Sie dafür besser den AVR Programmer (Teil von AVR Studio).
Für das allgemeine Diagnoseverfahren siehe diese Frage:
Mäusez
Mäusez
Leon Heller
capcom
Eduardo
Eduardo
Eduardo
Vokilam