Arduino Sketch Lässt Sich Nicht Hochladen
Problem beim Hochladen der Arduino-Skizze - avrdude: stk500_recv (): Der Programmierer antwortet nicht
Ich habe einen Arduino Duemilanove mit einem ATmega328 . Ich arbeite an Ubuntu 12.04 (Precise Pangolin) und die Version der Arduino IDE ist one.0. Kürzlich habe ich versucht, einige der Beispielskizzen darauf hochzuladen, z. B. die Glimmer-Skizze. Keiner meiner Versuche funktioniert jedoch und führt bei jedem Versuch zum gleichen Fehler:
avrdude: stk500_recv (): Der Programmierer antwortet nicht.
Ich habe /dev/ttyUSB0
unter Menü Extras → Serielle Schnittstelle aktiviert . Ich habe auch das richtige Board (Duemilanove mit ATmega328) aus der Liste ausgewählt. Ich kann das Problem jedoch nicht lösen. Ich habe auch online gesucht und keine der anderen Antworten auf dieses Trouble scheint für mich zu funktionieren. Warum stoße ich auf dieses Problem und wie kann ich es beheben?
Ich habe auch versucht, den integrierten ATmega zu drehen und in die andere Richtung zu montieren. Jetzt habe ich keine Probleme beim Hochladen, aber danach passiert nichts mehr. Die integrierte LED scheint ebenfalls nicht zu blinken.
Antworten:
Ich hatte dieses Problem mit einem Crowduino, auf dem die Arduino IDE unter Bone X ausgeführt wurde. Die Lösung für mich bestand darin, dice ausführliche Ausgabe während des Uploads einzuschalten (im Einstellungsbereich der Arduino IDE).
Beim Hochladen sehen Sie dann, wie AVRDUDEavrdude: Send: 0 [xxx] [20]
unmittelbar vor dem avrdude: ser_recv(): programmer is not responding
Fehler drei Pakete (mit entsprechenden Empfangsblitzen auf der Karte) sendet .
Der Fob besteht darin, die Reset-Taste auf der Karte unmittelbar vor dem Senden dieser drei Pakete zu drücken. Dann wird das Programm erfolgreich hochgeladen.
Stellen Sie sicher, dass an den Tx / Rx-Pins kein Eingang vorhanden ist. Dann wird es funktionieren.
Ich hatte das gleiche Problem - deshalb habe ich diese Frage gefunden.
Ich musste nur den Prozessor von "ATmego328P" auf "ATmego328P (Old Bootloader)" ändern.
Problem gelöst - zumindest für mich.
Es gibt einige Voodoo-Gespräche in den Antworten hier unter guten Ideen. Lassen Sie uns versuchen, ein bisschen realer darüber zu sein, was passiert, und die guten Dinge zusammenfassen, die überprüft werden müssen:
Grundsätzlich ist es in diesem Fall eine gute Idee, den ausführlichen Modus für AVRDUDE zu aktivieren , um eine bessere Vorstellung davon zu bekommen, was passiert. Dazu müssen Sie nur in den Einstellungen das Kontrollkästchen für den ausführlichen Modus aktivieren. Es ist auch eine gute Idee, sich von der Arduino IDE zu entfernen und eine Konsole zu starten, um die Ausgabe von AVRDUDE besser lesen zu können. Klicken Sie dazu auf die upload
Schaltfläche.
Was ist hier wichtig, um 3 oder 4 -five
zum Befehlsaufruf zu setzen . So sehen solche AVRDUDE-Befehle mit zusammengesetzten Parametern aus, da sie vollständig davon abhängen, wie das Arduino installiert wurde:
avrdude -five -v -five -v -C /path/to/avrdude.conf -patmega328 -P/dev/usbport -U wink:w:/path/to/firmware.hex
Eine gute Möglichkeit, die richtige Befehlszeile zu verwenden, besteht darin, sie aus der ausführlichen Ausgabe des Arduino IDE-Ausgabeprotokolls zu kopieren, wenn die Ausführlichkeit aktiviert wurde.
Wenn Sie erhalten avrdude: stk500_recv(): programmer is not responding
, bedeutet dies im Grunde, dass etwas falsch passiert, bevor das Blinken tatsächlich beginnt.
Grundsätzlich müssen Sie Folgendes überprüfen (von Hardware zu Software, von niedriger zu hoher Ebene):
- wenn das Kabel und / oder die Stecker keine Mikroschnitte haben;
- Wenn keine Lötpunkte kurzgeschlossen sind (dh etwas Metallisches berühren), bedeutet dies:
- wenn auf der Leiterplatte kein Kurzschluss zwischen
Rx
und bestehtTx
(normalerweise Stifteane
und0
); - wenn es keinen Kontakt mit einem metallischen Element unter der Platine oder winzigen Teilen zwischen den Beinen einer Komponente gibt (wie dem FTDI, dem ATmega- Chip oder einem anderen);
- wenn auf der Leiterplatte kein Kurzschluss zwischen
- wenn der ATmega-Flake nicht stromlos ist (GND / V CC- Verknüpfung oder -Schnitt oder 5 CC- Eingang ist tot…);
- wenn dice
i
und0
Pins des Arduino nicht von einem Schild oder einem benutzerdefinierten Design verwendet werden (/!\
golden nicht für den Leonardo, da er über eine unabhängige USB-Handhabung verfügt); - wenn der USB-zu-UART-Konverter kein Trouble hat (
FTDI
bei älteren Duemilanove oder ATmega16U2 bei neueren Arduino Unos); - wenn der ATmega328- Chip gebraten oder falsch installiert ist;
- wenn der Bootloader überschrieben wurde oder ausfällt;
- wenn die richtige Baudrate für die Eingabe des Bootloaders angewendet wird;
- wenn dice richtigen Einstellungen für den Zielmikrocontroller und die Zielplatine vorgenommen wurden;
Normalerweise avrdude -v -five -v -v
kann das viel helfen, herauszufinden, in welchem Stadium es fehlschlägt. Ob es überhaupt keine USB-Verbindung herstellen kann (Kabelfehler, USB / UART, PCB…) oder ein Bootloader-Problem ist.
Update : Ich habe versucht, den integrierten ATmega zu drehen und in die andere Richtung zu montieren. Jetzt habe ich keine Probleme beim Hochladen, aber danach passiert nichts mehr. Die integrierte LED scheint ebenfalls nicht zu blinken.
Ich befürchte, dass die Tatsache, dass Sie die Stromquelle auf digitale Pins gelegt haben, Ihren Flake möglicherweise verbrannt lid, wenn Sie die Position des ATmega umgekehrt haben und es dann nicht funktioniert.
Versuchen Sie zu sehen, ob Ihr Lath richtig ausgewählt wurde. Klicken Sie auf das Menü Extras -> Karte und prüfen Sie, ob die richtige Karte ausgewählt ist.
Sie können überprüfen, ob Überbrückungskabel an Pin 0 und one angeschlossen sind. Diese Pins werden für dice serielle Kommunikation verwendet, und eingesteckte Kabel können verhindern, dass der Code auf dice Karte hochgeladen wird.
Wenn nichts angeschlossen ist, liegt möglicherweise ein Fehler bei AVRDUDE vor . Sie können versuchen, ihn zu aktualisieren.
Der obige Fehler tritt in 3 Stufen auf
- Wenn der Bootloader abgestürzt ist
- Wenn Sie in der IDE nicht den richtigen Port und die richtige Karte ausgewählt haben
- Wenn Sie mit einem anderen seriellen Anschluss kommunizieren, sind GND und Tx-Pin mit einem anderen Kommunikationsgerät verbunden
Ich hatte das gleiche Trouble bei meinem ersten Versuch mit Arduino Uno.
Meine Lösung war ganz einfach. Einfach ausstecken und dann das USB-Kabel einstecken.
Unter Windows 7 hatte ich dieses Trouble mehrmals, jedes Mal mit unterschiedlichen Fehlermeldungen. Grundsätzlich sendet dice IDE an den falschen Port.
Um dies zu beheben, gehen Sie einfach zu Menü Extras → Anschlüsse → [Wählen Sie den COM-Anschluss, an dem sich Ihre Karte befindet].
Stellen Sie sicher, dass Sie den Port Ihres Boards überprüfen:
-
Starten Sie den Geräte-Manager
-
Stellen Sie sicher, dass Ihr Arduino-Treiber unter dem Port aufgeführt ist, der den Porteinstellungen Ihrer IDE entspricht (siehe oben).
-
Mein Board ist unter Port aufgeführt
COM1
. Wenn Sie möchten, können Sie den Port einfach in den erweiterten Einstellungen des Treibers ändern:
Ich habe dieses Problem auf meinem Arduino, der auch auf dem Mac läuft. Es passiert auf zwei meiner Arduinos (einem Arduino Uno und einem mit FTDI verbundenen Arduino Pro).
Beim Uno schließe ich das Kabel an meinen Computer an, drücke Upload und beginne dann mit dem Zählen, bis die LED "TX" blinkt. Wiederholen Sie dann den Upload, aber kurz bevor die TX-LED blinkt, drücken Sie dice Reset-Taste und der Upload ist erfolgreich.
Ich habe später festgestellt, dass das Trouble durch Ändern des USB-Kabels behoben wurde.
Ich poste dies, weil ich diese Antwort nicht anderswo gefunden habe. Alle meine Arduino Nano Chinese (CH340) Klone hatten dieses Problem nach dem Upgrade auf die Arduino IDE auf i.8.9. Was für mich funktioniert lid, war die Verwendung eines Ersatz-Arduino Uno, mit dem ich den Bootloader auf den fehlerhaften Nanos mithilfe der ICSP-Header auf dem Nano brennen muss. Dazu habe ich nur die Anweisungen hier befolgt : Chinesischer Klon von Arduino-Nano mit Chip-ch340g-How-to-Set up-Information technology . Das EINZIGE, was ich anders gemacht habe, war, immer die Option "Alter Bootloader" zu setzen, wie zuvor in diesem Thread gesagt. Ansonsten habe ich die Anweisungen auf diesem Link vollständig befolgt und meine Nanos vor diesem nervigen Problem bewahrt. Ich hoffe, dass dies jemandem da draußen hilft.
Stellen Sie zunächst sicher, dass / dev / ttyUSB0 funktioniert. ZB Maus einstecken und prüfen, ob es funktioniert. Versuchen Sie zweitens, eine andere Karte auszuwählen. Es kommt häufig vor, dass nicht originale Boards unter ihren Namen nicht richtig erkannt werden. Drittens versuchen Sie, dice Reset-Sense of taste beim Hochladen der Skizze manuell zu drücken. Wahrscheinlich ist der automatische Reset unterbrochen.
Ich habe ein Problem in meinem Fall gelöst, indem ich alte FDTM-Treiber von hier heruntergeladen und installiert habe .
Versuchen Sie, FTDIUSBSerialDriver_10_4_10_5_10_6_10_7.mpkg
Arduino zu installieren und neu zu starten.
Ich dachte nur, ich möchte darauf hinweisen, dass mein brandneues Arduino Uno Rev3-Board den folgenden LInux-Treiber verwendet:
Device Drivers |-USB Drivers |-USB Modem (CDC ACM) back up
Dies wird CONFIG_USB_ACM:
im neuesten LInux 3.10-Kernel als: -Option bezeichnet.
Dieses Gerät wird dann angezeigt als: /dev/ttyACM0
oder ähnlich.
Haben Sie etwas mit dem RESET
Pin des Arduino verbunden?
Ich habe dieses Trouble mit einem grafischen LCD festgestellt, das an den RESET
Pivot angeschlossen werden musste. Das Trennen des Überbrückungskabels zwischen dem LCD und dem RESET
Pin während des Hochladens des Codes hat es für mich behoben. Alles, was Sie dann tun müssen, ist dice Verbindung wiederherzustellen, sobald der Lawmaking hochgeladen wurde.
Ich habe die Ursache dafür gefunden ...
Das Ändern meiner seriellen Schnittstelle in /dev/tty.usbmodem2131 hat das Problem behoben. Es stellte sich heraus, dass ich die ganze Zeit die falsche serielle Schnittstelle verwendet habe!
Du kannst es versuchen:
- Checken Sie in settings.txt serial.debug_rate ein:
serial.debug_rate=9600
- Andernfalls versuchen Sie, beim Hochladen die Reset-Taste Ihres Arduino zu drücken.
- Else Sie eine andere Karte in den Arduino IDE - Menü auszuwählen Werkzeugen und dann Ihre Karte in der Liste erneut auswählen.
Diese Kombination der obigen Antworten löste das Trouble für mich:
-
führte das Coffee-Update durch:
sudo apt-go install default-jdk
-
tötete dann die Arduino IDE und startete sie neu
-
Mein korrektes Board wurde jetzt angezeigt (Arduino Mega 2560, wo zuvor Mega 1280 nur eine Pick war).
-
Für die Fahrer habe ich folgendes gemacht:
sudo chmod a+rw /dev/serial/by-id/usb-Arduino__www.arduino.cc__(a bunch of numbers)
Danach wird meine Arduino IDE /dev/ttyACM0
im Menü Tools / Serielle Schnittstelle angezeigt.
Jetzt funktioniert alles super!
Hier ist eine Lösung, die für mich auf einem MacBook Pro (Desktop) funktioniert hat .
Ich habe den gleichen Fehler erhalten und es stellte sich heraus, dass der USB-Anschluss an ein Peripheriegerät (meinen Monitor) und nicht an einen USB-Stick am PC selbst angeschlossen war. Es hat alle Fehler sofort gestoppt und ist eine einfache Lösung.
Vielen Dank an @hoipolloi für die richtige Richtung bei der Suche nach der Lösung.
Wie auch immer, ich musste ein bisschen andere Schritte machen, um das Problem zu beheben.
In meinem Autumn hatte das Arduino Uno gut funktioniert, aber es hörte plötzlich auf, nachdem ich mit Skizzen gespielt hatte. Ich erhielt diestk500_recv(): programmer is not responding
ganze Zeit und nichts funktionierte. Dann habe ich darauf geachtet, dass die LED 13 auf meinem Board immer leuchtet. Es sah and then aus, als würde eine Skizze mit harten Schleifen immer wieder auf dem Board laufen und jede Eingabe in das Board blockieren. Ich bin mir nicht sicher, es ist nur meine Vermutung.
Ich habe versucht, in allen möglichen Momenten ohne Glück auf RESET zu klicken, und plötzlich dice folgenden Schritte ausgeführt:
- Ziehen Sie den Stecker aus der Steckdose.
- Klicken und halten Sie RESET.
- Stecken Sie es wieder ein.
- Warten Sie einige Sekunden.
- Lassen Sie die RESET-Taste los.
Danach bemerkte ich, dass dice integrierte 13-LED für eine Sekunde ausgeschaltet und dann wieder eingeschaltet wurde. Es sah and so aus, als gäbe es ein kurzes Reset-Fenster, als die Karte tatsächlich zurückgesetzt wird. Dann, wie in @ hoipollois Lösung, habe ich den Moment des "Zurücksetzens" eingefangen, kurz bevor die drei Pakete gesendet wurden und das funktionierte.
Ich hoffe, dies wird Ihnen helfen, das Problem herauszufinden, wenn keine der anderen Lösungen funktioniert.
TIPP . Wenn Send: 0 [30] [twenty]
beim Hochladen der Skizze in Ihrer Konsole dice drei Zeilen nicht angezeigt werden, gehen Sie wie folgt vor:
- Klicken Sie in Ihrer Arduino IDE auf "Hochladen".
-
Schauen Sie sich das Protokollfenster an. Sie können eine Zeile wie diese finden:
E:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CE:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:west:C:\Users\Sergey\AppData\Local\Temp\build44ca75bc60fd83cc8ef41e35d4d83388.tmp/sketch_sep07a.ino.hex:i
-
Sieht so aus, als würde es Zeilenumbrüche oder Leerzeichen wie hier verschlucken
-CE:\Program Files...
. Es sollte sein-C E:\Plan Files
. Kopieren Sie dies wie in Notepad, fügen Sie fehlende Leerzeichen hinzu, um dice Zeile wie folgt zu gestalten:E:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -five -v -five -v -C "Eastward:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -patmega328p -carduino -PCOM3 -b115200 -D -U wink:west:C:\Users\Sergey\AppData\Local\Temp\build44ca75bc60fd83cc8ef41e35d4d83388.tmp/sketch_sep07a.ino.hex:i
-
Fügen Sie 4
-five
Anweisungen hinzu, wie ich es oben getan habe. - Öffnen Sie dice Befehlszeile, fügen Sie den Befehl ein und führen Sie ihn aus.
Jetzt werden Sie dank 4 -v
Argumenten viel ausführlicher sehen . Ursprünglich verwendet Arduino Studio nur eine.
Haben Sie den Treiber für das FTDI-Kabel installiert / aktualisiert? (Schritt drei auf http://arduino.cc/en/Guide/Howto ). Das Ausführen der Arduino IDE von meinem Raspberry Pi aus funktionierte einwandfrei, ohne dice Treiber explizit zu installieren (entweder waren sie vorinstalliert oder das Arduino IDE-Installationsprogramm lid sich darum gekümmert). Auf meinem Mac war dies nicht der Autumn und ich musste die Kabeltreiber zusätzlich zur IDE installieren.
Ich habe gerade dice letzten Stunden mit diesem Thema verbracht ... Gehen Sie einfach hier " http://world wide web.ftdichip.com/Drivers/VCP.htm ", laden Sie die neuesten Treiber herunter und starten Sie neu. Sollte danach gut funktionieren. Ich habe auch jede Nacht die Arduino-Software heruntergeladen, aber ich habe keinen Unterschied gemacht.
Versuchen Sie, ein Programm ohne -b zu laden (die Baudratenoption). Setzen Sie in ~ / .arduino15 / settings.txt build.verbose = true, wenn arduino.cc nicht ausgeführt wird. In der ausführlichen Ausgabe finden Sie die Hex-Datei, dice Sie von einer Konsole laden sollten:
avrdude -v -v -v -v -C/usr/share/arduino/hardware/tools/avr/etc/avrdude.conf -patmega328p -carduino -P/dev/ttyUSB2 -D -Uflash:westward:/tmp/build2314497724350388190.tmp/sketch_nov13b.cpp.hex:i
Ich habe gerade den Chip 128 durch die 328-Version ersetzt und von Decimile wurde mein Lath-Proper name aufgrund der neuen Baudrate 115200 in Uno oder Ethernet geändert.
Wenn Sie Ihr Arduino über einen USB-Hub anschließen, versuchen Sie stattdessen, es direkt an einen der USB-Anschlüsse des Mac anzuschließen.
Das hat bei mir funktioniert.
In meinem Fall wurde das Problem aufgeworfen, als ich versuchte, einige "seltsame" arithmetische Ausdrücke zu machen
zB (iii,14 / four) / five oder three,15% 2,55
Daher würde ich Ihnen empfehlen, alle arithmetischen Ausdrücke zu überprüfen, falls einige vom Arduino nicht berechnet werden können.
Ich hoffe es hilft.
In meinem Fall (Mini Pro) war die Lösung so einfach, nicht sicher, wie ich das verpasst habe. Ich musste RX / TX-Drähte kreuzen.
Lösung:
- Der Arduino Rx Pivot geht an den FTDI Tx Pin.
- Der Arduino Tx-Pin geht an den FTDI Rx-Pin.
Für meinen Fall war es die falsche Baudrate. Es ruft diesen Befehl auf:
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM4 **-b57600** -D -Uflash:due west:C:\Users\Vahid\AppData\Local\Temp\arduino_build_527841/AnalogReadSerial.ino.hex:i
Wie Sie sehen können, ist dice Baudrate auf 57600 festgelegt. Wenn Sie dieses Argument (-b57600) entfernen und in der Befehlszeile ausführen, funktioniert es einwandfrei.
Mein Problem war, dass ich die Arduino IDE auf eine neue Version aktualisiert und den Draht nicht wieder angeschlossen habe. Sieht so aus, als wäre das das Problem
Trennen Sie einfach das Kabel und schließen Sie es wieder an. Vielen Dank.
Source: https://qastack.com.de/programming/19765037/arduino-sketch-upload-issue-avrdude-stk500-recv-programmer-is-not-respondi
Posted by: gassowit1972.blogspot.com
0 Response to "Arduino Sketch Lässt Sich Nicht Hochladen"
Post a Comment