Atmega32u4 über ISP programmieren

OP #3765671
Lesenswert?

Hallo,
ich versuche zur Zeit einen Atmega32u4 auf einem Breakout-Board zu 
programmieren. Leider regt sich da garnichts. Anfangs wollte ich einen 
Arduino Uno als ISP Programer verwenden, aber da tat sich nichts. 
Mittlerweile habe ich mir einen AVR-ISP geliehen, komme aber auch damit 
nicht voran.

Ich habe mir folgendes Gerät besorgt:
http://www.diamex.de/dxshop/USB-ISP-Programmer-fuer-Atmel-AVR

Ich habe eine .hex Datei mit Atmel Studio erstellt und versuche jetzt 
das Programm via AVRdude auf den Chip zu spielen. Auf einem Breadboard 
habe ich jetzt die SPI Pins des Atmega32u4 mit dem 10-Pin Header 
verbunden. Ich benutze die Chip Pins 9 (SCLK), 10 (MOSI), 11 (MISO), 13 
(Reset), 14 (VCC) und 15 (GND).

Ich habe die Treiber für den Programmer installiert und rufe auf dem 
.hex Verzeichnis AVRdude mit dem folgenden Befehl auf:

avrdude.exe -c avrisp -p m32u4 -U flash:w:Test.hexi

Leider krieg ich aber nur den Fehler:

avrdude.exe: stk500_getsync(): not in sync: resp=0x00

Was mache ich falsche? Ich habe es auch mit einem 16 Mhz Quarz und zwei 
22pF Kondensatoren versucht, aber das Ergebnis ist das gleiche.

EDIT:
Ich habe den Programmer jetzt mal auf avrispv2 gesetzt und bekomme die 
Nachricht:

avrdude.exe: stk500_2_ReceiveMessage(): timeout





EDIT2: Ok, ich glaube ich mache hier etwas gehörig falsch. Ich habe 
jetzt noch mit -P COM22 den Port des Programmers angegeben.

Meine Commando sieht jetzt wie folgt aus:

avrdude.exe -c avrispv2 -p m32u4 -U flash:w:Test.hexi -P COM22 -F

Der Fehler lautet:
avrdude.exe: stk500v2_command(): command failed
avrdude.exe: stk500v2_command(): unknown status 0xc9
avrdude.exe: stk500v2_program_enable(): cannot get connection status
avrdude.exe: initialization failed, rc=-1
avrdude.exe: AVR device initialized and ready to accept instructions
avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes!  Invalid device signature.
avrdude.exe: Expected signature for ATmega32U4 is 1E 95 87
avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will 
be perfo
rmed
             To disable this feature, specify the -D option.

avrdude.exe done.  Thank you.


Wie genau muss das ganze angeschlossen werden? Ich vermute ich habe hier 
sehr grundlegende Probleme...
Gast #3765706
Lesenswert?

Das Teil behauptet, mit dem STK500 v2 und dem AVRISP v2 kompatibel 
zu sein. Wie wäre es, mal eine dieser beiden Einstellungen zu versuchen?

Oder den Geiz überwinden und einen originalen Programmer verwenden. 
Spart regelmäßig kostbare Lebenszeit ...
OP #3765710
Lesenswert?

Ich habe da nochmal was geeditet, während der Beitrag grade kam, hier 
nochmal für die Chronologie:

Ok, ich glaube ich mache hier etwas gehörig falsch. Ich habe
jetzt noch mit -P COM22 den Port des Programmers angegeben.

Meine Commando sieht jetzt wie folgt aus:

avrdude.exe -c avrispv2 -p m32u4 -U flash:w:Test.hexi -P COM22 -F

Der Fehler lautet:
avrdude.exe: stk500v2_command(): command failed
avrdude.exe: stk500v2_command(): unknown status 0xc9
avrdude.exe: stk500v2_program_enable(): cannot get connection status
avrdude.exe: initialization failed, rc=-1
avrdude.exe: AVR device initialized and ready to accept instructions
avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes!  Invalid device signature.
avrdude.exe: Expected signature for ATmega32U4 is 1E 95 87
avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will
be perfo
rmed
             To disable this feature, specify the -D option.

avrdude.exe done.  Thank you.


Wie genau muss das ganze angeschlossen werden? Ich vermute ich habe hier
sehr grundlegende Probleme...
#3765713
Lesenswert?

Hallo Thomas,

wie sieht denn die Hardware aus ?

Hast Du das gesamte Datenblatt gelesen und gesehen, dass du immer einen 
16MHz Quarz benötigst und Hardware Boot aktiviert ist ?

Dies muss man erst mal deaktivieren, bevor man einen neuen Bootloader 
installieren kannst.
OP #3765742
Lesenswert?

Ich will eigentlich gar keinen Bootloader installieren, sondern den Chip 
generell per ISP programmieren. Ich habe mal meine jetzige Schaltung 
hochgeladen. Fehlt da noch was? Und muss ich Hardware Boot deaktivieren, 
wenn ich einfach nur ein Programm per ISP auf den Chip spielen will? 
Würde mich über (evtl anstrengende) Hilfe sehr freuen. Ich will das 
unbedingt alles lernen.
Angehängte Dateien:
#3765749
Lesenswert?

Du solltest alle GND und VCC Pins anschließen, dann sollte noch ein 
PullUp Widerstand an den RESET Pin. Und der übliche Abblockkondensator 
(100nF) zwischen VCC und GND wäre auch nicht verkehrt.

Ich hatte beim Atmega8u2 die Erfahrung gemacht dass ich erst mal ein 
Chiperase (avrdude -e) machen muss bevor ich ihn über ISP programmieren 
konnte, beim atmega32u4 kann das aber anders sein.

Aber wofür nimmt man einen atmega32u4 wenn man kein USB benutzt?
OP #3765836
Lesenswert?

Ja, ich habe grad gesehen ich kann das mit den Schaltern einstellen.
Ich konnte das Problem jetzt lösen. Die Lösung war sehr trottelig, aber 
auch heimtückisch. Das Breakoutboard verknüpft die Vcc und Gnd Leitung 
schon auf auf dem PCB unter dem Chip. Dadurch sind Pin 14 (Vcc) und Pin 
15 (Gnd) gar nicht nach außen auf einen Pin geführt. Ich habe den Quarz 
dadurch immer um 2 Pins verschoben an den Chip angesteckt. (an Pins 18 
und 19 statt 16 und 17)

Danke für die Hilfe.

Ich habe noch eine generelle Frage. Muss ich wirklich immer alle Vcc und 
Gnd Leitungen mit der Stromversorgung verbinden? Das macht das 
Board-Design stellenweise immer problematisch, wenn man auf Jumper 
verzichten will. (und doppelseitig hab ich noch nicht gemacht)
OP #3765848
Lesenswert?

Der Hinweis auf das Datenblatt mag für jemanden mit Erfahrung ein 
sinnvoller Schritt sein, aber für mich ist das Datenblatt einfach noch 
ein sehr erschlagendes Dokument. Irgendwann sollte ich das 
Datenblattstudium natürlich routinierter drauf haben, aber ich habe 
diese Frage gestellt um zu lernen. Und für den Lernprozess ist eine 
geleitete Anweisung schon immer sinnvoller gewesen, als die rohe 
Fakten-Predigt. Das kann man ebenfalls nicht oft genug betonen.

Ich will langsam aber sicher meine eigenen Boards designen und dem 
ganzen nicht mehr mit fertigen Boards aus Weg gehen. Auf das Datenblatt 
zu verweisen ist da selbstverständlich angebracht. Aber ich muss mich 
auch irgendwie motivieren und da hilft eine Frage im Forum mehr, als das 
schnöde Studieren des Datenblatts.
Gast #3765869
Lesenswert?

Thomas M. schrieb:

> Aber ich muss mich
> auch irgendwie motivieren und da hilft eine Frage im Forum mehr, als das
> schnöde Studieren des Datenblatts.

Wenn das so ist, hast du bereits jetzt verloren.

Ein guter Entwickler kann man nur sein, wenn man aus eigenem echtem 
Interesse ein Datenblatt liest. Und dann braucht man sich auch nicht 
dazu zu "motivieren", das liest sich dann von ganz allein, genau wie 
eine spannender Krimi.

Im Allgemeinen ist es einfach so, daß nur zwei Menschengruppen Probleme 
bei der Datenblattlektüre haben: Die Dummen und die Faulen. Wirklich 
dumm scheinst du nicht zu sein, also wird die Wahl doch irgendwie ganz 
schön eng...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren