2013-03-09 17 views
6

Lösung: Siehe Antwort unterAVRISPmkII Verbindungsstatus: Unbekannt Status 0x00

Naja .. Ich habe auf dem Netz in vielen Ecken gesucht .. aber ich konnte keine Lösung für mein Problem finden. Das letzte Mal, als ich meinen AVRISP2 benutzt habe, hat es gut funktioniert. Jetzt bekomme ich die folgende Meldung, wenn ich versuche, mein Programm auf dem uC zu schreiben:

avrdude: stk500v2_command(): command failed 
avrdude: stk500v2_program_enable(): bad AVRISPmkII connection status: Unknown status 0x00 
avrdude: initialization failed, rc=-1 
     Double check connections and try again, or use -F to override 
     this check. 

ich viele Beiträge über das Internet, aber es gab keine Lösungen gefunden. Weiß jemand, was das Problem sein könnte?

Ich habe bereits die Pins überprüft, ich habe die Firmware des ISP aktualisiert (Blinkdemo funktioniert).

Vielen Dank für Hinweise ..

+0

Sind Sie sicher, dass die Baudrate korrekt ist? –

+0

Das Problem ist nicht, dass ich den Atmel nicht erreichen kann Ich möchte eigentlich programmieren .. Das Problem ist der Atmel auf dem ISP. Es ist möglich, die Firmware auf den Chip zu schreiben, aber avrdude erhält keine Antwort von ihm, wenn er meinen aktuellen Controller programmieren möchte. – displayname

Antwort

4

Es dauerte ein paar Freunde von mir und mir viel Zeit, aber nach Stunden des Suchens, versuchen und „Debugging“ wir waren in der Lage, das Problem zu beheben. Ich hoffe, das hilft anderen Menschen, die das gleiche Problem haben, es zu lösen.

Das Problem war, dass der ISP, in meinem Fall der USB-Prog 3.3, zu schnell zu meinem Atmega8, der nur mit 1MHz Geschwindigkeit lief, war. So gibt es zwei mögliche Lösungen:

  • verlangsamen die Geschwindigkeit des ISP
  • beschleunigen die Geschwindigkeit des Atmega8

ich irgendwo rot, dass der ISP nicht schneller sein muss als 1/4 der Geschwindigkeit des zugrundeliegenden Mikrocontrollers.

Die folgenden Zeilen gespeichert mein Tag:

Es setzt den Atmega8 zu 8 MHz und gibt es 64ms diese Frequenz erreicht haben.

avrdude -p atmega8 -P usb -c avrispv2 -U lfuse:w:0xe4:m -U hfuse:w:0xd9:m -B 22 

Hier ist ein Auszug aus dem avrdude manpage:

`-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. 

Zusätzlich I AVR Fuse Calculator für Android empfehlen wollen - es scheint ein sehr nützliches Werkzeug für die Mikrocontroller-Programmierer zu sein.

+0

Vielleicht die Antwort als "akzeptiert" markieren, so dass jeder weiß, dass das Problem gelöst ist? – angelatlarge

+0

Ich werde das tun, aber ich muss 2 Tage warten, bis ich meine eigene Antwort als aufgelöst markieren kann. – displayname

+0

Ich ging in das gleiche Problem avrdude -p atmega1284p -P usb -c avrisp2 -U lfuse: w: 0x62 : m -U hfuse: w: 0xd9: m -b 12 dieser advisor löste das Problem nicht irgendwelche Zeiger? –

0

Zuerst würde ich Ihnen empfehlen, den Mikrocontroller selbst zu überprüfen. Ich habe dieselbe Fehlermeldung erhalten und festgestellt, dass mein Atmega beschädigt wurde. Der Austausch gegen den Neuen behob das Problem.

0

Ein anderes (allgemeines?) Problem könnte ein fehlender Kristall sein, wenn man versucht, direkt auf einem Steckbrett zu blinken. Ich habe das schon zweimal vergessen und auch diese Fehlermeldung bekommen. Stellen Sie also neben dem Anschluss der ISP-Pins sicher, dass Sie einen Kristall und Kondensatoren an die XTAL1- und XTAL2-Pins des ATmega anschließen, wenn dieser für die Verwendung eines externen Oszillators konfiguriert ist (siehe ATmega-Datenblatt).