Wie reagiert avrdude mit AVR-ISP-MKII, wenn kein Zielboard angeschlossen ist?

Wie reagiert avrdude mit AVR-ISP-MK2, wenn kein Zielboard angeschlossen ist?

Ich versuche, mein Setup zu beheben und würde gerne wissen, ob das Problem zwischen Laptop und Programmiergerät oder zwischen Programmiergerät und Zielplatine liegt.

Für mich liefert dieser avrdude-Befehl das gleiche Ergebnis, unabhängig davon, ob die Zielplatine angeschlossen ist oder nicht. Es spielt keine Rolle, ob die Datei existiert oder nicht.

# avrdude -c avrispmkII -p m328 -U flash:w:flashled.hex
avrdude: usbdev_open(): Found AVRISP mkII, serno: 000200012345
avrdude: Sent: . [01]
avrdude: usbdev_recv_frame(): usb_bulk_read(): Input/output error
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: Sent: . [01]
avrdude: usbdev_recv_frame(): usb_bulk_read(): Input/output error
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: Sent: . [01]
avrdude: usbdev_recv_frame(): usb_bulk_read(): Input/output error
avrdude: stk500v2_recv_mk2: error in USB receive
Welches Betriebssystem hast du?
Welche Befehle führen Sie aus?
@coding_corgi Ich bin auf Arch Linux x86_64 und habe es versucht avrdude -c avrispmkII -p m328 -U flash:w:filename.hex. Ich habe die AVR-ISP-mk2-Firmware bereits mit Atmel Flip auf die aktualisiert, die avrdude und libusb verarbeitet.
Ok, nun, ich hatte Probleme mit meinem AVR ISP MKII auf Ubuntu (bis es explodierte) und ich bekam ähnliche Fehler, kompilieren Sie .c/.cpp-Dateien?
@coding_corgi Ja, ich kompiliere .c-Dateien mit avr-gcc. Aber das macht nichts: Ich erhalte das gleiche Verhalten, unabhängig davon, ob die .hex-Datei existiert oder ob das Zielboard mit dem Programmer verbunden ist.
Dies könnte der Punkt sein, an dem Sie es lange genug unter einem anderen Betriebssystem ausführen möchten, um zu überprüfen, ob es tatsächlich funktioniert und ordnungsgemäß mit Ihrem Zielboard verbunden ist. Vielleicht sind sie gegangen und haben das Protokoll auf eine unerwartete Weise angepasst. Sie können auch überprüfen, ob Sie die Berechtigung für den USB-Geräteknoten haben, obwohl ich nicht sicher bin, ob dies nicht zu einem früheren Fehler geführt hätte. Wenn Sie nur etwas programmieren müssen, funktioniert im Allgemeinen eine ISP-Skizze auf einem Arduino-Board (obwohl Sie auch diejenigen finden werden, die damit Probleme hatten).
Wenn ich mir diese Fehlermeldungen anschaue, habe ich den Eindruck, dass der Protokollstack fehlt, um mit dem Programmierer über USB zu sprechen. Ist uisp - Micro In-System Programmer for Atmel's AVR MCUsinstalliert? Ich weiß nicht, wie ich überprüfen soll, ob Ihr Google auf Arch so gut ist wie meines.
@jippie Es scheint mir, als ob uisp und avrdude zwei verschiedene Programme sind, die verwendet werden können, um mit Programmierern über USB zu kommunizieren.
Meine Güte, Sie haben Recht, entschuldigen Sie die Verwirrung. Ist etwas drin, dmesgnachdem Sie den Programmierer angeschlossen haben? Versuchen Sie, die Verbindung zu trennen; sudo dmesg -c; clear; neu verbinden sudo dmesg -c.
@jippie: Es wird erkannt:[43011.039111] usb 5-1: new full-speed USB device number 4 using uhci_hcd [43013.342476] usb 5-1: USB disconnect, device number 4
@ChrisStratton: Danke. Ich habe das getan und habe es jetzt geschafft, den Atmega von einem Windows-Rechner aus zu programmieren.

Antworten (1)

Update: README.xcompile.20180518 befindet sich im selben Repository , wurde jedoch für die neuesten stabilen gcc (8.1.0), binutils (2.30) sowie einige andere Verfeinerungen überarbeitet. Der avrdude-6.3-Patch bleibt alarmierend relevant. Hoffe das hilft...


Update: Ich habe ein Github- Repository mit vollständigen Anweisungen zum Erstellen der hochmodernen AVR GNU-Toolchain (einschließlich avr-gcc 7.2.0 und avr-libc 2.0.0) sowie zum Patchen von avrdude-6.3 zur Eliminierung von USB I/ O Fehler.

Die Anweisungen konzentrieren sich auf OS X (unter Verwendung von MacPorts), sollten jedoch für Unix-/BSD-Hosts einfach anzupassen sein.

Es enthält auch Anweisungen zum dfu-programmerFlashen des Olimex AVR-ISP-MK2 für libusb-basierte Firmware, wobei die werkseitige Standard- AVR StudioFirmware überschrieben wird.

Seitdem habe ich keine Probleme. Ich habe eine minimale Programmierplatine mit einer 40-PDIP-ZIF-Buchse zusammengeschustert, die 5 V Strom aus dem AVR-ISP-MK2 mit 5 V: ON-Jumper-Einstellung zieht.

gut genug für schnelle Programmierung!

Einfache Veroboard-Implementierung für schnelle und schmutzige Programmierung ...


Ältere Anleitungen:

Ich weiß, dass dies eine späte Antwort ist - aber der Olimex AVR-ISP-MKII benötigt ein Firmware-Upgrade für die Verwendung mit avrdude (im Gegensatz zu AVR Studio - siehe Dokumentation).

Da ich OSX verwende, war das Dienstprogramm Atmel Flip keine praktische Option. Stattdessen habe ich mir dfu-programmer geschnappt und den Programmer mit der libUSB-AVRISP-MKII.hexvon Olimex erhältlichen Firmware geflasht:

  1. Schließen Sie den Programmierer an und drücken Sie den Upgrade-Pin – die LEDs sollten ausgehen.
dfu-programmer at90usb162 erase
dfu-programmer at90usb162 flash libUSB-AVRISP-MKII.hex
dfu-programmer at90usb162 start

Zu diesem Zeitpunkt waren die orangefarbenen und roten LEDs eingeschaltet.

Möglicherweise müssen Sie die dfu-programmerQuelle anpassen, wenn libusb-1.0(erforderlich) irgendwo neben lebt /usr/include. Es wird davon ausgegangen, dass ich ein verbessertes configure.acund erstelltes System einreiche. dfu-programmer(MacPorts-Benutzer können die Pakete und installieren dfu-utils.)

Stecken Sie den ICSP10 in mein billiges AVR-P40-8535- Board, mit einem ATmega8535 in der Buchse (die MKII-Jumper auf ON: 5V gesetzt):

Betrieb:avrdude -c avrisp2 -p m8535 -P usb

hat die richtige Gerätesignatur "0x1e9308"für den ATmega8535 zurückgegeben.

Danke für deine Antwort. Ich habe es geschafft, die Firmware mit Atmel Flip zu aktualisieren, aber das hat die Ergebnisse nicht geändert. Ich habe es auf einem Windows-Rechner zum Laufen gebracht, also habe ich keine Zeit mehr damit verbracht, das Linux-Setup zu reparieren.