Forum: Mikrocontroller und Digitale Elektronik noch ein mal: avrdude: stk500_getsync(): not in sync:


von Jochen B. (jochen_b)


Lesenswert?

Ich bin gefühlten 1.000 google_Einträgen zum Thema:

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

nachgegangen, auch dem von Krapao vom März 2012 -leider ohne Erfolg. 
Vielleicht ließt Krapao noch mit oder einer von euch kann mir weiter 
helfen.

Hier meine Umgebung:
- Win 8.1
- Arduino 1.0.6
- BASCOM 2.0.7.8 (ja auch diese)
- einen dieser billigen China USBavr module
- div Arduino Boards
Hier meine Beobachtungen:
- der/das USBavr module wird vom device manager unter Win als solcher 
erkannt und als funktionierend gelistet
- aus der BASCOM IDE heraus kann ich die Arduino-boards lesen und 
beschreiben, insbesondere auch die Fuse-Bits
- upload von sketches aus der Arduino IDE heraus bricht mit dem im 
Betreff genannten Fehler ab.
Daraufhin habe ich
1.) mit furchtbarem rumgefrickel (cmd ...) unter windows die firmware 
des USBavr auf den neuesten Stand gebracht. Den kryptischen Ausgaben 
dabei zufolge mit Erfolg, und
2.) den AVRs auf den Arduino boards aus der Arduino IDE heraus 'nen 
neuen Bootloder verpasst - auch mit Erfolg
------------------------------------------------------------------------
Writing | ################################################## | 100% 
0.01s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x0F:
avrdude: load data lock data from input file 0x0F:
avrdude: input file 0x0F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 
0.00s

avrdude: verifying ...
avrdude: 1 bytes of lock verified

avrdude done.  Thank you.
------------------------------------------------------------------------
Danach blinkt auch tatsächlich die LED auf dem eben bearbeiteten board 
im Sekunden Takt!!!

Nun aber scheitere ich beim sketch upload mit:
------------------------------------------------------------------------
Binäre Sketchgröße: 1.082 Bytes (von einem Maximum von 30.720 Bytes)
C:\Program Files (x86)\Arduino\hardware/tools/avr/bin/avrdude 
-CC:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf -v 
-v -v -v -patmega328p -carduino -P\\.\COM1 -b57600 -D 
-Uflash:w:C:\Users\Jochen\AppData\Local\Temp\build8734799225731062689.tm 
p\Blink.cpp.hex:i

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Program Files 
(x86)\Arduino\hardware/tools/avr/etc/avrdude.conf"

         Using Port                    : \\.\COM1
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Send: 0 [30]   [20]
avrdude: Recv:
avrdude: stk500_getsync(): not in sync: resp=0x00

avrdude done.  Thank you.
------------------------------------------------------------------------
Was mir auffällt: im Protokoll steht "Using Programmer: arduino" obwohl 
ich definitiv den USBavr (und das richtige target board) gewählt habe.
Mit den avrdude Konfigurationsparametern kann ich leider nicht viel 
anfangen. Kann das Jemand, weiß jemand Rat?
Gruß und Dank

von Malte M. (mmalte)


Lesenswert?

Ich habe selbst gerade erst angefangen, mich mit der ganzen Materie zu 
befassen. Aber was die avrdude-Argumente angeht, könnte dir die 
entsprechende Dokumentation weiterhelfen … Jedenfalls bedeutet, -c xyz, 
dass der Programmer xyz verwendet werden soll. Und du hast da -c arduino 
stehen. Du könntest mal probieren, avrdude von Hand aufzurufen mit fast 
den gleichen Argumenten und nur dieses anzupassen. Mit
1
avrdude -c ?
lässt sich rauskriegen, welche Programmer-Protokolle avrdude spricht.

Edit: Vielleicht ist das arduino da ja aber richtig? Ich kenne USBavr 
nicht, aber vom Diamex USB-ISP weiß ich z. B., dass er stk500v2 spricht, 
nichts eigenes.

von Ulrich F. (Gast)


Lesenswert?

Erstmal: Ein USBavr ist sowohl mir, als auch Ebay unbekannt.


Der USBasp ist gut um den Bootloader zu beschreiben.
Setzt auch die Fuses usw.
-- das klappt ja auch ---

Spielst du aber Programmen aus der Arduino IDE auf, solltest du den 
Bootloader nutzen, also den richtigen seriellen Port wählen.

Also USBasp in die Wühlkiste werfen
Je nach Arduino entweder USB oder USB-Seriell Wandler dran stecken und 
über den installierten COM Port deine kompilierte Dinger hochladen.

Um welchen Arduino dreht sichs überhaupt ?

von Schleby N. (schleby)


Lesenswert?

Hast du den richtigen programmer unter tools eingestellt ?
Das du mit programmer über Datei >> Upload mit Programmer ,uploaden 
musst weist du ?

ah ich sehe grade

         Using Port                    : \\.\COM1
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600

das is falsch
du muss unter tools >> Programmer den richtigen einstellen sonst wird 
das nix

von Ulrich F. (Gast)


Lesenswert?

>Das du mit programmer über Datei >> Upload mit Programmer ,uploaden
>musst weist du ?

Damit wird meines Wissens nach der Bootloader gelöscht. Aber die Fuses 
bleiben auf Bootloaderbetrieb.
Das ist zumindest unsauber. Und wird zu Problemen führen, wenn das 
Nutzprogramm bis in den Bereich führt.

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.