Hallo zusammen, ich habe ein Problem mit folgender Hard.- und Software: -WinAVR 20081205 -USBprog mit "AVR ISP MKII klon" von embedded-projects -Atmel Evaluationboard v2.01 von Pollin -ATmega16 Ich versuche mir das Programmieren in C mit den oben dargestellten Tools selbst beizubringen allerdings hapert es im Moment noch bei der Inbetriebnahme der Hardware. Ich habe ein einfaches Programm, dass ich zu Inbetriebnahmezwecken auf den ATmega programmieren will. Beim Programmieren gibt mir das Output-Fenster folgende (Fehler)Meldung: > "make.exe" program Compiling C: Test01.c avr-gcc -c -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./Test01.lst -std=gnu99 -MMD -MP -MF .dep/Test01.o.d Test01.c -o Test01.o Linking: Test01.elf avr-gcc -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=Test01.o -std=gnu99 -MMD -MP -MF .dep/Test01.elf.d Test01.o --output Test01.elf -Wl,-Map=Test01.map,--cref -lm Creating load file for Flash: Test01.hex avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock Test01.elf Test01.hex Creating load file for EEPROM: Test01.eep avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \ --change-section-lma .eeprom=0 --no-change-warnings -O ihex Test01.elf Test01.eep || exit 0 avrdude -p atmega16 -P usb -c avrisp2 -U flash:w:Test01.hex avrdude: stk500v2_command(): command failed avrdude: stk500v2_recv_mk2: error in USB receive avrdude: stk500v2_program_enable(): bad STK600 connection status: Unknown (0x64) avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude done. Thank you. make.exe: *** [program] Error 1 > Process Exit Code: 2 > Time Taken: 00:13 Das Programm ist natürlich danach nicht auf dem ATmega. Meine Vermutung ist nun folgende: Ich nutze a den o.a. "AVR ISP MKII klon" und in dem Output-Fenster wird der "stk500v2"-Programmer erwähnt. Ich denke also, ich habe den "AVR ISP MKII klon" irgendwo nicht richtig initialisiert. In den Makefiles habe ich den "avrisp2" als Programmer angegeben, da kein MKII zur auswahl dort steht. Das sollte aber eigentlich (nach dem, was ich gelesen habe) nicht die Fehlerquelle sein. Oder doch? Bitte helft mir! Ich hühnere nun schon fast zwei Monate mit dem Kram rum und komme nicht vorwärts... Grüße Teddy
Warum verwendest du nicht das AVR-Studio, da würdest du dir den ganzen makefile Kram ersparen. Ausserdem sollte der Klon direkt unterstützt werden. Es wäre also wesentlich komfortabler.
AVR-Studio hatte ich auch schon in meiner Testkonstellation mit drinne (auch unter Berücksichtigung der beiden unterschiedlichen Treiber). Allerdings fand dort gar keine Kommunikation mit dem Klon statt, bzw. kam ich dort mit den Connect-Einstellungen zu dem usbprog nicht klar und habe dies wieder verworfen. Mit WinAVR tut sich zumindest etwas.
>Mit WinAVR tut sich zumindest etwas.
Das ist ein Trugschluß. Die Kommunikation funktioniert nicht. Weder mit
dem Studio, noch mit AVRDude, nur sind bei lezterem die Fehlermeldungen
kryptischer. Warum das nicht funktioniert, ist unklar. Treiberprobleme,
Hardwareprobleme in Programmer oder Board, Spannungsversorgung, alles
ist möglich. Deine makefile-Einstellungen sind richtig.
Oliver
Bei USB im AVR-Studio ist es so, das das AVR-Studio öfter die Nummer der COM-Schnittstelle nicht zur Verfügung stellt, die Windows vergibt. Abhilfe ist hier die COM-Schnittstelle in der Systemsteuerung auf einen Wert zu verlegen den das AVR-Studio vorgibt. Bei AVR-Dude kann ich dir leider nicht helfen, das hatte ich noch nie in Verwendung.
@Oliver: Probleme in der Hardware des usbprog und des Evaluationboard wage ich auszuschließen, da ich beide selbst gefertigt und getestet habe (Intensive ohmsche Messungen um ungewollte Übergangswiderstände auszuschließen, Signalsimulation an der Testhardware durch anlegen von Spannungen,...). Die Betriebsspannung zapfe ich über den USB-Port und sollte ebenso hin hauen (I=100...120mA maximal). Es sollte also nur noch an der Software liegen. @Hubert G.: Wie kann ich in der Systemsteuerung die Schnittstelle festlegen? Ich dachte, dass der usbprog automatisch mit dem entsprechenden USB-Slot verbunden wird.
Start - Einstellungen - Systemsteuerung - System - Systemeigenschaften - Hardware - Geräte-Manager - Anschlüsse (COM und LPT) Wenn dein USB-Prog angesteckt ist sollte er dort mit der COM-Nummer aufscheinen. Mit rechter Maustaste und Eigenschaften kannst du die COM-Nummer ändern. Wenn die Systemsteuerung für den USB-Prog eine höhere Nummer vergibt als im AVR-Studio vorhanden, dann wird er im AVR-Studio nicht gefunden und auch nicht connected.
> Wenn dein USB-Prog angesteckt ist sollte er dort mit der COM-Nummer
aufscheinen.
Bei mir erscheint als Schnittstelle USB und kein COM. Sollte da jemand
vergessen haben, den Jungo Treiber zu installieren?
@Bensch: Auf die korrekten Treiber habe ich geachtet: Jungo für Anwendung im AVR-Studio und LibUSB-Win32 für Anwendung im WinAVR. Zumindest ist es hier beschrieben: Beitrag "AVRISPmkII + AVRDUDE + Window Vista ein Tipp!" @Hubert G.: Der usbprog taucht als eigenständiges Gerät bei mir im gerätemanager auf und über die Eigenschaften finde ich keine COM-Zuweisung.
Ich habe das gleiche Problem... den ATMega2560 und ATMega128 kann ich ohne probleme flashen, ATMega8/16 und 32 aber nicht... ist doch sehr merkwürdig. Gibt es dafür eine Lösung?
Wahrscheinlich ist es für den Fragesteller schon zu spät, aber ich antworte mal für andere, die diesen Thread hier finden: Ich hatte das gleiche Problem unter Linux mit einem ATmega168. Ich hab dann in einer Mailingliste die Lösung gefunden. Das Problem tritt nur bei noch nicht programmierten ATmega8/16/168 etc auf, weil der USBprog zu schnell programmiert. Wenn man die ISP Geschwindigkeit auf 125kHz runterschaltet, funktioniert es. Bei avrdude geht das mit dem Parameter -i 8 (8 µS Pause zwischen den Bitwechseln, also 125kHZ). Das obige Beispiel würde also so aussehen: avrdude -p m16 -P usb -c avrisp2 -i 8 -U flash:w:Test01.hex
Thanks a lot, Pascal! Your late answer was really helpful to me, so I feel like I should also share my findings. I have an USBprog 4, and indeed it seems too fast with new unprogrammed AVRs. Using -i 8 did not work for me, but your suggestion made me look at avrdude command line options. I tried -B 8 and it worked immediately! Cheers! Pat
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.