Avrdude-Fehler - stk500_paged_write() Protokollfehler

Ich verwende meinen Arduino Uno als Programmierer, um meinen ATtiny85 zu programmieren. Ich habe die ArduinoISP-Skizze auf mein Uno hochgeladen. Ich habe meine Verkabelung überprüft, etwas gegoogelt, aber ich kann immer noch nicht herausfinden, warum ich diesen Fehler bekomme ...

avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x11
avrdude: stk500_cmd(): programmer is out of sync

... wenn ich diesen Befehl ausführe:

sudo avrdude -p t85 -c arduino -P /dev/ttyACM0 -b 19200 -U flash:w:src.hex\

Dann habe ich überprüft, ob der ATtiny reagiert, ich habe diesen Befehl ausgeführt:

sudo avrdude -P /dev/ttyACM0 -p t85 -b 19200 -c avrisp -v

Die Ergebnisse waren erfolgreich.

BEARBEITEN:

Hier sind die Zeitstempel (nur für den Fall):

15:24:29.502445729 E: 
15:24:29.623628385 E: avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85 
15:24:29.761744829 E: avrdude: AVR device initialized and ready to accept instructions 
15:24:29.766251405 E: 
15:24:29.812810614 E: Reading | ################################################## | 100% 0.05s 
15:24:29.821187588 E: 
15:24:29.825324777 E: avrdude: Device signature = 0x1e930b 
15:24:30.171341329 E: avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed 
15:24:30.180631410 E: To disable this feature, specify the -D option. 
15:24:30.334997131 E: avrdude: erasing chip 
15:24:30.495926604 E: avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85 
15:24:30.632387526 E: avrdude: reading input file "src.hex" 
15:24:30.637210000 E: avrdude: input file src.hex auto detected as Intel Hex 
15:24:30.641710226 E: avrdude: writing flash (98 bytes): 
15:24:30.645806835 E: 
15:24:30.712364458 E: Writing | 
15:24:30.718291473 E: avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x11 
15:24:30.752474103 E: avrdude: stk500_cmd(): programmer is out of sync 
15:24:30.827210626 I: Finished with exitcode 1

Ich kann nicht herausfinden, was falsch ist. Irgendwelche Vorschläge?

Warum ändern Sie ständig die Einstellung -c?
Laut der Datei „programmers.txt“ in der Arduino-IDE sollte die Einstellung „-c“ „stk500v1“ lauten, obwohl „arduino“ sehr ähnlich ist.
@ChrisStratton Es spielt keine Rolle, ob es arduinooder avrispist, sie sind dasselbe.
@microtherion Ich habe es versucht, stk500v1anstatt arduino, das Gleiche ist passiert ...
Ich verwende die ISP-Skizze auf einem Uno ohne Anti-Reset-Komponenten, -cstk500v1, und habe kein Problem damit, attiny85 zu programmieren, obwohl ich auch -pattiny85 als Teilekennung verwende, indem ich eine avrdude-Konfiguration verwende, die mit einer Arduino-Installation geliefert wurde (und den Pfad angibt). zu dieser Konfiguration mit der Option -C).
@ChrisStratton Ich habe es ohne Reset-Komponenten versucht, das hat auch nicht funktioniert ...
Poste doch bitte ein Bild von deinem Setup.
Verwenden Sie die ArduinoISP-Version, die sich in Datei => Beispiele => ArduinoISP befindet
@jippie genau das habe ich gemacht
Sind Sie ganz sicher, dass Ihre Datei für winzige 85 gültig ist? Beispielsweise könnte es versuchen, Code an nicht vorhandenen Adressen abzulegen. Eine Hex-Datei, die 98 Bytes darstellt, wäre nicht zu lang, um sie in Ihre Frage aufzunehmen.
Drei weitere Dinge, die Sie ausprobieren können: (1) Wechseln Sie mit dem Flag in den interaktiven Modus von avrdude -tund versuchen Sie von dort aus einige Flash-Schreibvorgänge. (2) Fügen Sie weitere -vFlags hinzu, damit Sie die tatsächlich ausgegebenen ISP-Befehle sehen können. (3) Probieren Sie meinen ScratchMonkey-Sketch microtherion.github.io/ScratchMonkey aus, der Pin-kompatibel mit ArduinoISP ist, aber stattdessen das stk500v2-Protokoll verwendet.

Antworten (7)

Ich habe genau das gleiche Problem gelöst, indem ich die Arduino-IDE von 1.00 auf 1.05 von http://code.google.com/p/arduino/downloads/list aktualisiert habe

Diese Version von Arduino IDE enthält eine neue Version von ArduinoISP Sketch.

Ich habe diesen Fehler mit meinem Arduino Uno erhalten

avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x11 

Ich hatte einen Protoschild angeschlossen und als ich den Protoschild abtrennte, funktionierte alles einwandfrei.

BEARBEITEN

Nach einigen zusätzlichen Fehlersuchen stellte ich fest, dass es nicht der Protoshield war, sondern dass der Protoshield keine TX / RX-Markierung für die digitalen PWM-Pins 0 und 1 hatte. Sobald ich die Kabel von 0 (tx) und 1 (rx) abgezogen hatte das hat mein Problem gelöst.

Ich hatte auch das Problem: "avrdude: stk500_paged_load(): (a) protocol error, Expect=0x14, resp=0x00. avrdude: stk500_cmd(): Programmer is out of sync".

Später aufgegeben. Dann habe ich ein anderes USB-Kabel (richtig) anstelle eines dünnen USB-Kabels verwendet, das mit einem Pololu ISP für etwas anderes geliefert wurde, und mir wurde klar, dass das Kabel, das ich mit dem Arduino Nano verwendet habe, möglicherweise von minderer Qualität ist. Kabel gewechselt und - alle meine Probleme sind gelöst!

Ich hatte ein langes USB-Kabel (10 '), das an einen USB-Hub mit 9 Anschlüssen angeschlossen war.

Beim direkten Verbinden mit meinem Mac wurde dieses Problem sofort behoben.

Ich habe festgestellt, dass je nach Laune eine direkte Verbindung zum Computer Upload-Probleme beheben kann.

In meinem Fall hat die Installation von "AVR-GCC Toolchain" über Homebrew all diese Probleme behoben.

Alle notwendigen Details hier: http://maxembedded.com/2015/06/setting-up-avr-gcc-toolchain-on-linux-and-mac-os-x/

Trennen Sie alle Verbindungen auf Ihrem Arduino-Board-Gerät und versuchen Sie, den Code auf Ihr Arduino-Board hochzuladen. Ich löse dieses Problem. Möglicherweise ist eine Ihrer problematischen Hardware mit Ihrem Arduino-Board verbunden.

Ich hatte auch das Problem: "avrdude: stk500_paged_load(): (a) protocol error, Expect=0x14, resp=0x00. avrdude: stk500_cmd(): Programmer is out of sync".

Ja .. Dann habe ich alle Verbindungen in Bluetooth getrennt .... nachdem ich das Programm kompiliert habe, habe ich mein Bluetooth mit dem Ardiuno uno verbunden .... Dann habe ich keine Fehlermeldung erhalten.