webentwicklung-frage-antwort-db.com.de

avrdude: stk500v2_ReceiveMessage (): Timeout

Dies ist der Hauptfehler, den ich bekomme, wenn ich versuche, mein ARDUINO-Programm auszuführen. Die vollständige Liste der Fehler lautet wie folgt:

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

Mein Code lautet wie folgt:

int led=13;
void setup()
{
    pinMode(13,OUTPUT);
}

void loop()
{
    digitalWrite(13,HIGH);
    delay(1000);
    digitalWrite(13,LOW);
    delay(1000);
}

Ich habe versucht, die Treiber zu aktualisieren (sie sind vollständig aktualisiert) und einige Programme herunterzuladen. Ich habe Windows 7 und mein Arduino ist ein MEGA 2560. Es erscheint im Geräte-Manager und alle meine Verbindungen sind korrekt. Das grüne PWR-Licht leuchtet und das blinkende L-Licht. Die RX- und TX-Anzeigen blinken, wenn ich ein Update durchführe. Ich habe fast alles im Web ausprobiert. Worin besteht das Problem?

20
nattynerdy

Die Fehlermeldung bedeutet im Wesentlichen, dass der Programmierer den Bootloader auf dem Gerät nicht kontaktieren kann. Der Code, den Sie hochladen möchten, hat keine Auswirkung auf das Problem.

Die Ursachen dafür können zahlreich und vielfältig sein, einige mögliche Probleme:

  1. UART-Kommunikation

    • Blinken geschieht, also verwenden Sie hoffentlich nicht den falschen Port. Es lohnt sich vielleicht noch einmal zu überprüfen, manchmal werden USB-COM-Geräte an merkwürdigen Portnummern installiert.

    • Verbinden Sie TX mit RX (und trennen Sie sie vom AVR, wenn möglich). Öffnen Sie dann ein Terminal am COM-Port. Wenn Sie sie eingeben, sollten die Zeichen als Echo angezeigt werden. Wenn nicht, ist etwas Upstream des Chips falsch, es könnte der Kommunikationschip sein (ich denke, der Arduino 2560 verwendet aus irgendeinem Grund einen sekundären AVR anstelle eines FTDI, sodass dieser entweder seine Software oder seine Software beschädigen könnte) Hardware)

  2. ATmega* Bootloader

    • Der AVR führt den Bootloader aus irgendeinem Grund nicht aus. Wenn der Programmierer das Mikro nicht vor dem Verbindungsaufbau zurücksetzt, kann dies der Grund sein. Versuchen Sie, den AVR zurückzusetzen (drücken Sie die Taste und lassen Sie sie wieder los), während der Programmierer versucht, eine Verbindung herzustellen. Manchmal verhindert eine Software, die in einer engen Schleife ausgeführt wird, eine Verbindung des Bootloaders.

    • Andernfalls könnten die Sicherungen durcheinander geraten oder der Code gelöscht werden. Sie müssen den Bootloader und die entsprechenden Sicherungen erneut flashen. Siehe auch die entsprechende Infoseite für Ihr Gerät.

  3. Nur Arduino Mega 2560: Software ATmega8U/16U

    • Funktioniert möglicherweise nicht und müsste neu programmiert werden. Weitere Informationen finden Sie im Abschnitt Programmierung auf der Infoseite . Sie benötigen die Firmware und die Atmel-kompatible DFU-Software (Geräte-Firmware-Aktualisierung) auf Ihrem Computer, um das Ziel aufzufrischen.
  4. Hardwareschaden an der Karte, den AVR (s) oder dem FTDI-Chip

    • Du bist abgespritzt; brauche einen neuen Chip.

Überprüfen Sie diesen Forenbeitrag für weitere Ideen.

11
Nick T

Ein weiterer möglicher Grund für diesen Fehler für den Mega 2560 ist, wenn Ihr Code drei Ausrufezeichen in einer Reihe enthält. Vielleicht in einer kürzlich hinzugefügten Zeichenfolge.

3 Knallmarken in Folge veranlassen den Mega 2560 Bootloader in den Monitor-Modus, von dem aus er die Programmierung nicht beenden kann.

"!!!" <--- bricht den Mega 2560-Bootloader.

Um das Problem zu beheben, trennen Sie den Arduino USB vom Computer, um den COM-Port zurückzusetzen, und kompilieren Sie ihn dann mit nur zwei Ausrufezeichen oder mit Leerzeichen zwischen oder was auch immer. Verbinden Sie dann das Arduino und das Programm wie gewohnt.

Ja, das hat mich gestern gebissen und heute habe ich den Täter ausfindig gemacht. Hier ist ein Link mit weiteren Informationen: http://forum.arduino.cc/index.php?topic=132595.0

11
aaronsti

Ich habe diese Fehlermeldung erhalten, weil ich in der avrdude-Befehlszeile nicht den richtigen Programmierer angegeben habe. Sie müssen "-c arduino" angeben, wenn Sie ein Arduino-Board verwenden.

Dieser Beispielbefehl liest den Status der hfuse:

avrdude -c arduino -P /dev/ttyACM0 -p atmega328p -U hfuse:r:-:h
6
Michael Franzl

Nach meinem bescheidenen Verständnis tritt dieser Fehler bei verschiedenen Szenarien auf

  1. sie haben den falschen Port ausgewählt oder gar nicht. Gehen Sie zu Tools> Ports und wählen Sie den COM-Port aus, an den Ihr Arduino angeschlossen ist
  2. sie haben die falsche Karte ausgewählt. Gehen Sie zu Tools> Board und suchen Sie nach dem richtigen Board
  3. sie haben eine dieser Replikate von arduino oder haben den Boot-Loader nicht auf dem Mikrocontroller installiert. Ich kenne die Lösung dafür nicht! Wenn Sie wissen, bearbeiten Sie bitte meinen Beitrag und fügen Sie die Anweisungen hinzu.
  4. (nur Windows) Sie haben nicht die richtigen Treiber installiert. Sie müssen sie manuell aktualisieren.
  5. manchmal passiert dies, wenn Sie Kabel an die Platine angeschlossen haben. Sie müssen das Board von allen installierten Steckbrettern oder Drähten trennen und erneut hochladen. Es scheint, dass die Pins 0 (RX) und 1 (TX), die für die serielle Kommunikation verwendet werden können, problematisch sind und beim Hochladen des Codes besser frei sind.

  6. Manchmal geschieht es zufällig ohne bestimmte Gründe!

Überall im Internet gibt es alle möglichen Lösungen, die manchmal mit Magie kaum zu unterscheiden sind! Vielleicht sollte sich das Arduino-Team bessere Compiler-Fehler vorstellen, die den Benutzern helfen, zwischen diesen verschiedenen Ursachen zu unterscheiden.

Das gleiche Problem ist mir passiert und keine der oben genannten Lösungen hat funktioniert. Was passierte war, dass ich eine Arduino uno verwendete und alles in Ordnung war, aber als ich einen Arduino Mega 2560 kaufte, bekam ich den Fehler, egal welche Skizze ich hochzuladen versuchte:

avrdude: stk500v2_ReceiveMessage(): timeout

Und es war nur auf einem meiner Windows-Computer und der andere war einfach in Ordnung. 

Lösung:  

Mein Problem wurde gelöst, indem Sie auf Tools> Boards> Boards Manager ... gehen und dann oben links in den geöffneten Fenstern im Abschnitt "Typ" die Option "Aktualisierbar" auswählen. Wählen Sie dann die Elemente in der Liste aus und klicken Sie rechts auf Aktualisieren. 

Ich bin mir nicht sicher, ob dies alle Probleme lösen wird, aber es hat meines gelöst. 

2
Foad

Ich habe direkt an den USB-Port in meinem Laptop angeschlossen und das Problem mit dem Timeout wurde behoben.

Früher von Port-Replikator ausprobiert, aber es wurde nicht einmal Arduino erkannt, daher wählte ich einen falschen Port - was zu einer Timeout-Nachricht führte.

Vergewissere dich also, dass es für dein Betriebssystem sichtbar ist.

0
PeterM

Wenn Sie die Ino-Befehlszeile verwenden:

ino upload

es kann sein, dass Sie die Arduino-Software gleichzeitig verwenden.

0
hanoo

Ich habe diesen Code aus dem Arduino-Setup ausgeführt und nach dem Ändern dieselbe Fehlerbehebung erhalten
serielle Schnittstelle zu COM13
GO TO Option
tool >> serielle schnittstelle >> COM132

0
Lokesh Tiwari

Stellen Sie sicher, dass der serielle Monitor nicht läuft, was zu Störungen beim Hochladen führen kann. 

0
qwr

Dies ist keine wirklich fixierende Lösung, kann aber anderen helfen. Anders als Nick für mich gesagt hatte, lag es an Code in meinem Programm. Ich habe das Mega-ADK-Modell. Das Problem war mit einer switch-Anweisung für die Verarbeitung und Analyse des zurückgegebenen Bytes [] von der USB-Verbindung zum Android verbunden. Es ist sehr seltsam, weil es jedes Mal perfekt kompiliert werden würde, aber wie das OP erklärt hatte, fehlschlagen würde. Ich kommentierte es und es hat gut funktioniert.

0
anders