Forum: Mikrocontroller und Digitale Elektronik ISP Programmierung - AVRDUDE Fehlermeldung


von Michael L. (eagle87)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
ich habe eine Schaltung gebaut, auf der ich einen ATMEGA8515 über ISP 
programmieren will. Wenn ich versuche das Programm auf den Controller zu 
Spielen bekomme ich folgende Fehlermeldung:
1
avrdude -p atmega8515 -P /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0 -c stk500    -U flash:w:dart.hex 
2
3
avrdude: stk500v2_command(): command failed
4
avrdude: initialization failed, rc=-1
5
         Double check connections and try again, or use -F to override
6
         this check.
7
8
9
avrdude done.  Thank you.
10
11
make: *** [program] Fehler 1

Als Programmer benutze ich ein STK500 und die Software zum übertragen 
ist AVRDUDE. Bei der Fehlersuche habe ich mehrere Spannungen direkt an 
den Pins am Zielcontroller angeschaut. An VCC liegen 5V an. RST wird 
während des Programmiervorgangs auf GND gezogen. An SCK und MOSI sind 
irgendwelche Signale zu sehen. Der Zielcontroller wird also mit allem 
versorgt, reagiert aber nicht darauf. Am Portpin MISO passiert 
garnichts.

Um zu testen ob der Controller hinüber ist hab ich ihn nochmal aufs 
STK500 gesetzt. Dort lässt er sich einwandfrei programmieren. Hab grad 
keine Idee mehr wo der Fehler noch liegen könnte und im Netz hab ich 
auch nichts gefunden.

Gruß
Michael

von Oliver J. (skriptkiddy)


Lesenswert?

Ist der Controller auf internen Oszillator gefused? Ich sehe mämlich 
nichts auf deinem Board, was der Takterzeugung dienen könnte.

Gruß Oliver

von HildeK (Gast)


Lesenswert?

... und demnach die ISP-Frequenz entsprechend niedrig?

von Michael L. (eagle87)


Angehängte Dateien:

Lesenswert?

An den Fuses habe ich noch nichts verändert (zumindest nicht bewusst). 
In die Thematik habe ich mich noch nicht eingearbeitet. Aber als Default 
müsste der 8515 mit dem Internen RC-Oszillator laufen.

Die ISP-Frequenz versuch ich gleich mal zu verändern. Daran hab ich 
bisher auch noch nichts gemacht. Das müsste ja mit der Option -i <N> im 
Makefile gehen.

von Michael L. (eagle87)


Lesenswert?

So, die Versuche die ISP-Frequenz zu verändern waren wenig erfolgreich. 
Ich hab leider keine genauere Beschreibung finden können wie die 
Frequenz richtig einzustellen ist. Nur dass man mit 10 anfangen kann und 
dann ausprobieren...

Getestet wurden:
1, 2, 3, 5, 8, 10, 20, 100, 1000

Die Option wurde wie folgt ins Makefile eingetragen:
1
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -i 10
2
AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
3
AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
4
AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)

von holger (Gast)


Lesenswert?

>Das müsste ja mit der Option -i <N> im
>Makefile gehen.

Ich würde -B nehmen.

von Michael L. (eagle87)


Lesenswert?

Welchen Wert soll ich hinter -B eintragen? Die Default Taktfrequenz 
liegt bei 1MHz. Die Periodendauer beträgt also 1µs. Mit -B 1 gibts 
folgende Fehlermeldung:
1
avrdude -p atmega8515 -P /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0 -c stk500    -B 1 -U flash:w:dart.hex 
2
avrdude: stk500v2_set_sck_period(): p = 1.0 us too small, using 1.1 us
3
4
avrdude: stk500v2_command(): command failed
5
avrdude: initialization failed, rc=-1
6
         Double check connections and try again, or use -F to override
7
         this check.
8
9
10
avrdude done.  Thank you.
11
12
make: *** [program] Fehler 1

von holger (Gast)


Lesenswert?

>Welchen Wert soll ich hinter -B eintragen?

-B 10 oder größer.

von tt2t (Gast)


Lesenswert?

SV1 ist falsch beschaltet (gespiegelt), richtig wäre (6-polig)

1=MISO
2=NC
3=SCK
4=MOSI
5=RES
6=GND

von Michael L. (eagle87)


Lesenswert?

Mit -b 10, 15, 20, 30, 40, 60, 80, 100 & 1000 funktionierts schonmal 
nicht. Da kommt immer die gleiche Fehlermeldung.

Aber kann es eigentlich überhaupt an der ISP-Frequenz liegen? auf dem 
STK500 funktioniert der Programmiervorgang ja. Ich ändere nur die 
Peripherie um den Zielcontroller. Der ISP-Programmer auf dem STK bleibt 
unverändert. Und wenn der Controller auf dem STK sitzt arbeitet er ja 
genauso mit seinem internen RC-Oszillator.

@tt2t:
Der Stecker ist nicht gespiegelt, sondern um 180° gedreht verschaltet. 
Darauf dass es richtig herum gedreht ist hatte ich beim zeichnen nicht 
geachtet, da es ja eh nichts ausmacht.

von Michael L. (eagle87)


Lesenswert?

So,
habe mich nun in das Auslesen und Setzen der Fuses eingearbeitet. Die 
Fuses hatten doch nicht mehr den Default Zustand. Als Taktgeber war 
External Clock eingestellt. Dann ists klar dass es nicht funktioniert. 
Nachdem die Fuses wieder auf den internen RC-Oszillator eingestellt 
waren lies sich der Controller auch auf dem selbstgebauten Board 
programmieren. Die ISP-Frequenz musste ich nicht verändern.

Danke für die Tipps
Michael

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.