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...
:
Bearbeitet durch User
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 ...
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...
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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?
Leider geht es danach auch nicht. Mal eine dumme Frage: Muss ich den Chip noch separat mit Strom versorgen oder kriegt er das alles über den Programmer?
Der Originalprogrammer meldet in "Orange", daß keine Versorgen am Target anliegt. Reicht diese Info?
Diese sch... Autokorrektur...... Versorgung hatte ich eigentlich getippt!
Laut Beschreibung gibt es einen Jumper damit das Target mit Strom versorgt wird.
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)
Hallo Thomas, siehe Datenblatt, man kann es nicht genügend oft schreiben. Mit Deiner Unerfahrenheit würde ich mir ein fertiges kaufen: http://www.ehajo.de/baus%C3%A4tze/bedrahtete-baus%C3%A4tze/atmega32u4-breakout-board.html?search=atmega32u4
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.
Schau dir das Schaltbild des genannten Breakout-Bords an. Die Beschaltung der GND und VCC-Pins ist sicher nicht von ungefähr.
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...
Ich will hier jetzt keine Grundsatzdiskussion vom Zaun brechen und bedanke mich nochmal für die Hilfe. Ich lese mir jetzt einen ausführlichen Artikel über Fuses durch und hoffe, dass ich nichts kaputt mache :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.