usb-isp Programmer funktioniert nicht

hallo liebe arduino Gemeinde,

ich versuche schon seit Tagen meinen usb-isp Programmer (AVR-Programmer | USB-ISP) zum laufen zu bringen. Ich verwende einen ATmega328P den ich auf einer Platine mit dem 6-poligen isp Anschluss verbunden habe. Ich habe auch schon den richtigen treiber installiert und wie in diesem Beitrag beschrieben die "programmers.txt" bearbeitet.Arduino Forum
Es bleibt sich auch egal ob der Programmer mit der Platine verbunden ist oder nicht und ob ich eine externe Stromversorgung oder die 5V des Programmers verwende.

Wenn ich nun den Bootloader hinaufspielen möchte kommt nach dem Start immer diese Meldung:

avrdude: stk500v2_command(): command failed
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

avrdude done. Thank you.

Könnte es sein dass es etwas mit der Übertragungsgeschwindigkeit des Programmers zu tun hat ?

Viele Grüße
sevi

Hallo Sevi,

schau mal hier : Fehler beim kompilieren

Gruß Gerd

Danke für die schnelle Antwort aber ich komme einfach nicht weiter.

Ich hätte noch eine Frage:

Damit ich die ISP Clock ändern kann muss ich bei avrdude die Option -B hinzufügen aber wo mache ich das.

Hier sind noch Auszüge aus der gesammten Meldung wenn ich den Bootloader hinaufspielen möchte:

C:\Arduino\arduino-1.0.1\hardware/tools/avr/bin/avrdude -CC:\Arduino\arduino-1.0.1\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328p -cstk500v2 -P\\.\COM3 -e -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xde:m -Ulfuse:w:0xff:m 

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Arduino\arduino-1.0.1\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM3
         Using Programmer              : stk500v2
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14] 
avrdude: Recv: . [1b] 
avrdude: Recv: . [01] 
avrdude: Recv: . [00] 
avrdude: Recv: . [0b] 
avrdude: Recv: . [0e] 
avrdude: Recv: . [01] 
avrdude: Recv: . [00] 
avrdude: Recv: . [08] 
avrdude: Recv: S [53] 
avrdude: Recv: T [54] 
avrdude: Recv: K [4b] 
avrdude: Recv: 5 [35] 
avrdude: Recv: 0 [30] 
avrdude: Recv: 0 [30] 
avrdude: Recv: _ [5f] 
avrdude: Recv: 2 [32] 
avrdude: Recv: . [02] 
avrdude: stk500v2_getsync(): found STK500 programmer
         AVR Part                      : ATMEGA328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         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    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500V2
         Description     : Atmel STK500 Version 2.x firmware
         Programmer Model: STK500
avrdude: Send: . [1b] . [02] . [00] . [02] . [0e] . [03] . [90] . [86] 
avrdude: Recv: . [1b] 
avrdude: Recv: . [02] 
avrdude: Recv: . [00] 
avrdude: Recv: . [03] 
avrdude: Recv: . [0e] 
avrdude: Recv: . [03] 
avrdude: Recv: . [00] 
avrdude: Recv: . [0a] 
avrdude: Recv: . [1d] 
avrdude: Send: . [1b] . [03] . [00] . [02] . [0e] . [03] . [91] . [86] 
avrdude: Recv: . [1b] 
avrdude: Recv: . [03] 
avrdude: Recv: . [00] 
avrdude: Recv: . [03] 
avrdude: Recv: . [0e] 
avrdude: Recv: . [03] 
avrdude: Recv: . [00] 
avrdude: Recv: . [02] 
avrdude: Recv: . [14] 
avrdude: Send: . [1b] . [04] . [00] . [02] . [0e] . [03] . [92] . [82] 
avrdude: Recv: . [1b] 
avrdude: Recv: . [04] 
avrdude: Recv: . [00] 
avrdude: Recv: . [03] 
avrdude: Recv: . [0e] 
avrdude: Recv: . [03] 
avrdude: Recv: . [00] 
avrdude: Recv: . [0a] 
avrdude: Recv: . [1b] 
         Hardware Version: 10
         Firmware Version Master : 2.10
avrdude: Send: . [1b] . [05] . [00] . [02] . [0e] . [03] . [9a] . [8b] 
avrdude: Recv: . [1b] 
avrdude: Recv: . [05] 
avrdude: Recv: . [00] 
avrdude: Recv: . [02] 
avrdude: Recv: . [0e] 
avrdude: Recv: . [03] 
avrdude: Recv: . [c0] 
avrdude: Recv: . [d1] 
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_getparm(): failed to get parameter 0x9a
         Topcard         : Unknown
avrdude: Send: . [1b] . [06] . [00] . [02] . [0e] . [03] . [94] . [86] 
avrdude: Recv: . [1b] 
avrdude: Recv: . [06] 
avrdude: Recv: . [00] 
avrdude: Recv: . [03] 
avrdude: Recv: . [0e] 
avrdude: Recv: . [03] 
avrdude: Recv: . [00] 
avrdude: Recv: 2 [32] 
avrdude: Recv: ! [21] 
         Vtarget         : 5.0 V
avrdude: Send: . [1b] . [07] . [00] . [02] . [0e] . [03] . [98] . [8b] 
avrdude: Recv: . [1b] 
avrdude: Recv: . [07] 
avrdude: Recv: . [00] 
avrdude: Recv: . [03] 
avrdude: Recv: . [0e] 
avrdude: Recv: . [03] 
avrdude: Recv: . [00] 
avrdude: Recv: . [03] 
avrdude: Recv: . [11] 
avrdude: Send: . [1b] . [08] . [00] . [02] . [0e] . [03] . [95] . [89] 
avrdude: Recv: . [1b] 
avrdude: Recv: . [08] 
avrdude: Recv: . [00] 
avrdude: Recv: . [03] 
avrdude: Recv: . [0e] 
avrdude: Recv: . [03] 
avrdude: Recv: . [00] 
avrdude: Recv: 2 [32] 
avrdude: Recv: / [2f] 
avrdude: Send: . [1b] . [09] . [00] . [02] . [0e] . [03] . [96] . [8b] 
avrdude: Recv: . [1b] 
avrdude: Recv: . [09] 
avrdude: Recv: . [00] 
avrdude: Recv: . [03] 
avrdude: Recv: . [0e] 
avrdude: Recv: . [03] 
avrdude: Recv: . [00] 
avrdude: Recv: . [00] 
avrdude: Recv: . [1c] 
avrdude: Send: . [1b] . [0a] . [00] . [02] . [0e] . [03] . [97] . [89] 
avrdude: Recv: . [1b] 
avrdude: Recv: . [0a] 
avrdude: Recv: . [00] 
avrdude: Recv: . [03] 
avrdude: Recv: . [0e] 
avrdude: Recv: . [03] 
avrdude: Recv: . [00] 
avrdude: Recv: . [00] 
avrdude: Recv: . [1f] 
         SCK period      : 3.3 us
         Varef           : 5.0 V
         Oscillator      : Off

avrdude: Send: . [1b] . [0b] . [00] . [03] . [0e] . [02] . [9e] . [01] . [80] 
avrdude: Recv: . [1b] 
avrdude: Recv: . [0b] 
avrdude: Recv: . [00] 
avrdude: Recv: . [02] 
avrdude: Recv: . [0e] 
avrdude: Recv: . [02] 
avrdude: Recv: . [00] 
avrdude: Recv: . [1e] 
avrdude: Send: . [1b] . [0c] . [00] . [0c] . [0e] . [10] . [c8] d [64] . [19]   [20] . [00] S [53] . [03] . [ac] S [53] . [00] . [00] ? [3f] 
avrdude: Recv: . [1b] 
avrdude: Recv: . [0c] 
avrdude: Recv: . [00] 
avrdude: Recv: . [02] 
avrdude: Recv: . [0e] 
avrdude: Recv: . [10] 
avrdude: Recv: . [c0] 
avrdude: Recv: . [cb] 
avrdude: stk500v2_command(): command failed
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: Send: . [1b] . [0d] . [00] . [03] . [0e] . [11] . [01] . [01] . [0a] 
avrdude: Recv: . [1b] 
avrdude: Recv: . [0d] 
avrdude: Recv: . [00] 
avrdude: Recv: . [02] 
avrdude: Recv: . [0e] 
avrdude: Recv: . [11] 
avrdude: Recv: . [00] 
avrdude: Recv: . [0b] 

avrdude done.  Thank you.

Es wäre toll wenn du noch Lösungsvorschläge hättest.

Viele Grüße
sevi

Die Frage hat sich erledigt und ich habe versucht mit -B1 den isp Takt zu ändern, hat aber nichts gebracht.

Dann versuchte ich es mit der Lösung, die mir die Fehlermeldung zeigt:

Double check connections and try again, or use -F to override this check.

Zuerst lötete ich den Mikrocontroller und die Buchse aus der Schaltung und lötete sie erneut und jetzt nur die sechs Pins der Buchse zu den dazugehörigen Pins des Mikrocontrollers.
Ich versuchte es erneut, aber es kam wieder die selbe Meldung.

Als nächstes versuchte ich es mit -F wie es bei der Fehlermeldung steht, aber das half auch nichts und als Fehlermeldung kam jetzt das:

avrdude: stk500v2_command(): command failed
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATMEGA328P is 1E 95 0F

Bitte helft mir ich weiß einfach nicht mehr weiter !!!

Viele Grüße
sevi

Hi,

schau dir mal deine
C:\Arduino\arduino-1.0.1\hardware/tools/avr/etc/avrdude.conf
mit einem Texteditor an und suche dort nach "328P"
da müßtest du einen Bereich finden der so ähnlich aussieht:

#------------------------------------------------------------
# ATmega328P
#------------------------------------------------------------

part
    id			= "m328p";
    desc		= "ATMEGA328P";
    has_debugwire	= yes;
    flash_instr		= 0xB6, 0x01, 0x11;
    eeprom_instr	= 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
			  0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
			  0x99, 0xF9, 0xBB, 0xAF;
    stk500_devcode	= 0x86;
    # avr910_devcode	= 0x;
    signature		= 0x1e 0x95 0x0F;
    pagel		= 0xd7;
    bs2			= 0xc2;
    chip_erase_delay	= 9000;

Wichtig ist diese Zeile:
signature = 0x1e 0x95 0x0F;
entweder steht da 0x drinnen oder die Zeile ist mit #auskommentiert.

Grüßle Bernd

Das seh ich eigentlich andersrum:

avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
avrdude: Expected signature for ATMEGA328P is 1E 95 0F

Die erwartete Signatur (aus der conf Datei) ist schon richtig, die aktuell gelesene ( oder auch nicht gelesene ) aber nicht.
initialization failed, rc=-1 : Sagt eigentlich auch, dass gar keine Verbindung besteht

Hallo,
ich habe in der avrdude.conf Datei nachgeschaut, aber es ist alles richtig.

Hier ist der Schaltplan wie ich es verdrahtet habe:

Ich glaube trotzdem, dass es an dem Programmer liegt, weil immer die selbe Meldung kommt, egal ob ich die Platine angesteckt habe oder nicht.

Ist es möglich den Mikrocontroller zu schrotten, wenn man kurz mit den Messstripen eine Verbindung von GND und VCC erzeugt?

Ich habe gerade versucht den Bootloader mit Arduino 0022 hinaufzuspielen und es zeigte mir dann diese Meldung an:

C:\arduino-0022\hardware/tools/avr/bin/avrdude -CC:\arduino-0022\hardware/tools/avr/etc/avrdude.conf -v -patmega328p
-cstk500v2 -P\\.\COM3 -e -B 1 -F -Ulock:w:0x3F:m -Uefuse:w:0x05:m -Uhfuse:w:0xde
:m -Ulfuse:w:0xff:m

avrdude: Version 5.4-arduino, compiled on Oct 11 2007 at 19:12:32
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         System wide configuration file is "C:\arduino-0022\hardware/tools/avr/etc/avrdude.conf"

         Using Port            : \\.\COM3
         Using Programmer      : stk500v2
         Setting bit clk period: 1.0
avrdude: stk500v2_set_sck_period(): p = 1.0 us too small, using 1.1 us
         AVR Part              : ATMEGA328P
         Chip Erase delay      : 9000 us
         PAGEL                 : PD7
         BS2                   : PC2
         RESET disposition     : dedicated
         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  Max
W   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ---
-- ---------
           eeprom        65     5     4    0 no       1024    4      0  3600  36
00 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  45
00 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  45
00 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  45
00 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  45
00 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  45
00 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0
 0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0
 0 0x00 0x00

         Programmer Type : STK500V2
         Description     : Atmel STK500 Version 2.x firmware
         Programmer Model: STK500
         Hardware Version: 10
         Firmware Version: 2.10
avrdude: stk500v2_command(): command failed
avrdude: stk500v2_getparm(): failed to get parameter 0x9a
         Topcard         : Unknown
         Vtarget         : 5.0 V
         Varef           : 5.0 V
         Oscillator      : Off
         SCK period      : 1.1 us

avrdude: stk500v2_command(): command failed
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0xffffff
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATMEGA328P is 1E 95 0F
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as FF
avrdude: safemode: efuse reads as 7
avrdude: erasing chip
avrdude: stk500v2_command(): command failed
avrdude: reading input file "0x3F"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.00s

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

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lock verified
avrdude: reading input file "0x05"
avrdude: writing efuse (1 bytes):

Writing |                                                    | 0% 0.00s ***faile
d;
Writing | ################################################## | 100% 0.09s

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

Reading | ################################################## | 100% 0.00s

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

avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as FF
avrdude: safemode: efuse reads as 7
avrdude: safemode: efuse changed! Was 5, and is now 7
Would you like this fuse to be changed back? [y/n] n
avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Viele Grüße
sevi

sevi:
Ist es möglich den Mikrocontroller zu schrotten, wenn man kurz mit den Messstripen eine Verbindung von GND und VCC erzeugt?

Wenn Vcc vom Programmer kam, wurde eher der geschrottet...

Hast du noch einen anderen Controller ( z.B. einen "richtigen Arduino" )?
Einfach mal versuchen, dessen Signatur oder Fuses mittels avrdude und deinem Programmer zu lesen ...

Ausserdem, ist der -c Parameter für deinen Programmer überhaupt richtig ? ( ich sehe -cstk500v2 )
Müsste das nicht usbasp sein ??? Bei meinem usbtinyisp macht das jedenfalls einen Unterschied!

Eher ein Problem in der Programmers.txt ? Oder hast du den falschen Programmer in der IDE ausgewählt ?

Nein einen weiteren Controller habe ich nicht, aber ich werde mir einen kaufen wenn ich es in dieser Woche nicht mehr schaffe den Mikrocontroller zu Programmieren.

Der -c Parameter ist richtig, weil wenn ich usbasp verwende kommt diese Fehlermeldung:

avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc

Als Programmer in der IDE habe ich DIAMEX-AVR ausgewählt und in der Programmers.txt habe ich das stehen, so wie es in diesem Beitrag (http://arduino.cc/forum/index.php/topic,81489.0.html) beschrieben ist:

diamexavr.name=DIAMEX-AVR
diamexavr.communication=serial
diamexavr.protocol=stk500v2

aber es funktioniert mit anderen Programmern auch nicht.

Als board habe ich Arduino Uno eingestellt und auch hier habe ich schon alle versucht.

Sorry, du hast Recht: für diesen Programmer ( AVR-Programmer | USB-ISP ) ist das Protokoll STK500v2
wohl schon richtig. ( Wieder was gelernt, danke )

avrdude: initialization failed, rc=-1
ist ein ganz grundlegendes Problem, und der Hinweis auf -F hilft nach meiner Erfahrung nicht wirklich weiter...

Mit einem Arduino hast du sowohl einen Referenz-Controller mit ISP Stecker, als auch einen alternativen Programmer ( using Arduino as ISP )
Hoffentlich zerschiesst du nicht dessen Bootloader, bevor du deinen Programmer richtig in den Griff gekriegt hast. Viel Glück :wink: