Hi, da ich mich mit AVR-Microcontroller programmierung beschäftigen wollte, habe ich mir einen Atmega168 & DIAMEX USB ISP (https://www.reichelt.de/Programmer-Entwicklungstools/DIAMEX-USB-ISP/3/index.html?ACTION=3&LA=5700&ARTICLE=110344&GROUPID=2969&artnr=DIAMEX+USB+ISP) gekauft. Als Entwicklungsumgebung habe ich Eclipse inkl. AVR Plugin installiert. Nun habe ich das Problem, dass mein programmer nicht erkannt wird. Ich erhalte in Eclipse folgende Fehlermeldung: avrdude: error: usbasp_transmit: Input/output error avrdude: error: usbasp_transmit: Input/output error avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: error: usbasp_transmit: Input/output error avrdude: error: usbasp_transmit: Input/output error avrdude: error: program enable: target doesn't answer. 0 avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude: error: usbasp_transmit: Input/output error avrdude done. Thank you. lsusb ergibt folgende Ausgabe: Bus 003 Device 026: ID 16c0:2a9b Van Ooijen Technische Informatica Hoffe ihr könnt mir helfen. MfG sebastian.
Hallo, das könnte an einer (fehlenden) Berechtigung liegen. Gehörst Du zur Gruppe dialout (groups aufrufen). Evtl. ausnahmsweise einmal als root probieren. Kann aber auch an was anderem liegen, z.B. an den udev rules. Oder die Fehlermeldung "please check for usbasp firmware update." beachten.
:
Bearbeitet durch User
Alexander S. schrieb: > Hallo, > > das könnte an einer (fehlenden) Berechtigung liegen. > Gehörst Du zur Gruppe dialout (groups aufrufen). > Evtl. ausnahmsweise einmal als root probieren. > > Kann aber auch an was anderem liegen, z.B. an den udev rules. > > Oder die Fehlermeldung "please check for usbasp firmware update." > beachten. Funktioniert als root auch nicht, die Gruppe dialout kann ich nicht finden. Ein Firmware update habe ich mit meinem windows laptop versucht, was aber nicht funktioniert hat.
Sebastian X. schrieb: > da ich mich mit AVR-Microcontroller programmierung beschäftigen wollte, > habe ich mir einen Atmega168 & DIAMEX USB ISP > gekauft. Als Entwicklungsumgebung habe ich Eclipse inkl. AVR Plugin > installiert. Nun habe ich das Problem, dass mein programmer nicht > erkannt wird. Ich erhalte in Eclipse folgende Fehlermeldung: > avrdude: error: usbasp_transmit: Input/output error ... > Hoffe ihr könnt mir helfen. Anscheinend versuchst du, den Diamex USB ISP als usbasp anzusprechen. Ein Blick auf die Herstellerseite http://www.diamex.de/dxshop/Programmiergeraete zeigt 4 Geräte, die in Frage kommen. Wobei aber keines davon ein usbasp Klone ist, sondern alle das Protokoll entweder des AVRISP mk2 oder des STK500 sprechen. Andererseits spricht die Ausgabe von lsusb dafür, daß es doch ein usbasp sein könnte. Ein AVRISP mk2 würde sich so melden: 03eb:2104 Atmel Corp. AVR ISP mkII Ein STK500(v2?) könnte sich aber mit der angegebenen (unspezifischen) USB ID melden. Da würde der Kernel dann aber ein serielles Device drauf mappen (/dev/ttyUSBxx oder /dev/ttyACMxx). Finde also erstmal heraus, was das für Hardware ist, die du da angesteckt hast. 'dmesg' könnte helfen. Siehe auch den Beitrag "Programmer zum laufen bringen"
Axel S. schrieb: > Finde also erstmal heraus, > was das für Hardware ist, die du da angesteckt hast. 'dmesg' könnte > helfen. Habe den programmer unter folgender Bezeichnung gefunden: [474168.999540] cdc_acm 3-14:1.0: ttyACM0: USB ACM device
Sebastian X. schrieb: > avrdude: warning: cannot set sck period. please check for usbasp > firmware update. avrdude bekommt also schon auf eine trivialste Anfrage nicht die erwartete Antwort und empfiehlt ein Firmware Update. Diese Empfehlung ist falsch. avrdude rechnet hier schlicht nicht mit der Unfähigkeit seiner Benutzer, es nimmt einfach an, dass dieser wenigstens in der Lage wäre, den korrekten Typ der Hardware anzugeben... Die Sache ist, dass dieser DIAMEX-Stick überhaupt kein usbasp-kompatibles Gerät ist. Deswegen versteht er Fragen in der usbasp-Sprache nicht. Es ist vielmehr ein STK500v2 kompatibles Gerät. Das muss man avrdude bloss mitteilen und schon kann avrdude auch mit dem Stick in seiner Sprache reden...
Sebastian X. schrieb: > Axel S. schrieb: >> Finde also erstmal heraus, >> was das für Hardware ist, die du da angesteckt hast. 'dmesg' könnte >> helfen. > > Habe den programmer unter folgender Bezeichnung gefunden: > [474168.999540] cdc_acm 3-14:1.0: ttyACM0: USB ACM device Dann ist es anscheinend ein STK500v2 kompatibler Programmer. Jetzt wo ich mal auf den Link zu Reichelt geklickt habe, steht das da sogar. Port ist dann entsprechend /dev/ttyACM0.
c-hater schrieb: > avrdude rechnet hier schlicht nicht mit der Unfähigkeit > seiner Benutzer, es nimmt einfach an, dass dieser wenigstens in der Lage > wäre, den korrekten Typ der Hardware anzugeben... Da ich meinen Programmer nicht in der Liste gefunden habe, habe ich den Programmer mit der gleichen USBVID genommen (PID habe ich angepasst). c-hater schrieb: > Es ist vielmehr ein STK500v2 kompatibles Gerät. Das muss man avrdude > bloss mitteilen und schon kann avrdude auch mit dem Stick in seiner > Sprache reden... Bin ein kompletter Neuling im Bereich AVR-Programmierung, könntest du mir verraten wie ich das machen kann?
Irgendwo wird dein Eclipse Plugin eine entsprechende Einstellung haben. Ich würde mal im Dialog Window/Preferences nach dem Plugin suchen.
Vielleicht erst mal "direkt" mit dem Teil ohne IDE sprechen ? http://www.stecklina.net/projekte/notes_linux.html Bei mir läuft so'n Teil schon länger unter Ubuntu Studio... mußte mich glaub ich nur zur Gruppe dailout zufügen
Thomas G. schrieb: > Vielleicht erst mal "direkt" mit dem Teil ohne IDE sprechen ? > http://www.stecklina.net/projekte/notes_linux.html > Bei mir läuft so'n Teil schon länger unter Ubuntu Studio... Ich konnte mit dem Befehl "avrdude -pm16 -c stk500v2 -P /dev/ttyACM0 -t -F " als root eine Verbindung aufbauen. Ohne root Rechte ist keine Verbindung möglich. Wie kann ich das ganze in Eclipse anwenden damit ich Eclipse zum programmieren verwenden kann? Thomas G. schrieb: > mußte mich > glaub ich nur zur Gruppe dailout zufügen Kann diese Gruppe leider nicht finden.
Sebastian X. schrieb: > Ich konnte mit dem Befehl "avrdude -pm16 -c stk500v2 -P /dev/ttyACM0 -t > -F > " als root eine Verbindung aufbauen. Das ist doch schonmal gut, das heisst nämlich: avrdude funktioniert und der DIAMEX-Adapter funktioniert auch. > Ohne root Rechte ist keine > Verbindung möglich. Das musst du als allererstes ändern. In diesem Zusammenhang ist das relevant: > Thomas G. schrieb: >> mußte mich >> glaub ich nur zur Gruppe dailout zufügen > > Kann diese Gruppe leider nicht finden. Ich hoffe für dich, dass dich nicht schon der kleine Tippfehler von Thomas ausgeschäkelt hat. Die Gruppe heisst natürlich üblicherweise "dialout", nicht "dailout". Allerdings gibt es keinerlei Zwang für eine Linux-Distribution, dass sie so heißen muss. Du musst also ggf. herausfinden, welche Gruppe deine Linux-Distribution für die entsprechende Aufgabe verwendet (nämlich: Zugriff auf serielle Schnittstellen (vom Typ UART) zu gewähren). Übrigens: Warum verwendest du eigentlich arch-Linux, wenn du keine Ahnung hast, wie das funktioniert? > Wie kann ich das ganze in Eclipse anwenden damit ich > Eclipse zum programmieren verwenden kann? Und noch ein warum: Warum verwendest du eigentlich Eclipse, wenn du keine Ahnung hast, wie das funktioniert bzw. zu konfigurieren ist?
OK...OK die Gruppe heißt unter arch weder dailout noch dialout sondern... scheinbar "uucp" So... Rest mußt aber nu selber fummeln: https://wiki.archlinux.org/index.php/Users_and_groups
Habe bei mir unter /etc/udev/rules.d eine Datei 12-serial.rules, mit folgendem Inhalt: //// KERNEL=="ttyUSB[0-9]*",SYMLINK+="%k",GROUP="nutzer",MODE="0666" KERNEL=="ttyACM[0-9]*",SYMLINK+="%k",GROUP="nutzer",MODE="0666" //// angelegt (statt "nutzer", die Gruppe eintragen, in der Du bist). Nach abziehen/neustecken des Gerätes, oder Neustart des udev-Daemon sudo /etc/init.d/udev restart sollten die Zugriffsrechte so stehen, das jeder von lesen/drauf schreiben kann. crw-rw-rw- 1 root dialout 188, 0 Feb 8 18:32 /dev/ttyUSB0 PS: sehe gerade, die Zuweisung der Gruppenzugehörigkeit greift bei mir nicht, die Ports gehören der Gruppe dialout, aber die Zugriffsrechte passen. mfG
c-hater schrieb: > Ich hoffe für dich, dass dich nicht schon der kleine Tippfehler von > Thomas ausgeschäkelt hat. Die Gruppe heisst natürlich üblicherweise > "dialout", nicht "dailout". Nein. c-hater schrieb: > Warum verwendest du eigentlich arch-Linux, wenn du keine > Ahnung hast, wie das funktioniert? Weil ich vor kurzer Zeit von Windows auf Linux umgestiegen bin, und eigentlich ziemlich gut damit zurecht komme. c-hater schrieb: > Und noch ein warum: Warum verwendest du eigentlich Eclipse, wenn du > keine Ahnung hast, wie das funktioniert bzw. zu konfigurieren ist? Weil ich bis jetzt in Eclipse nichts groß konfigurieren musste und fast alles ohne zusätzlicher konfiguration funktioniert hat. Edit: R. M. schrieb: > Habe bei mir unter > /etc/udev/rules.d > eine Datei 12-serial.rules, mit folgendem Inhalt: > //// > KERNEL=="ttyUSB[0-9]*",SYMLINK+="%k",GROUP="nutzer",MODE="0666" > KERNEL=="ttyACM[0-9]*",SYMLINK+="%k",GROUP="nutzer",MODE="0666" > //// > angelegt (statt "nutzer", die Gruppe eintragen, in der Du bist). Hat funktioniert, Danke.
:
Bearbeitet durch User
Die Gruppe uucp ist doch extra für RS232-Peripherie. Da wäre es eleganter, deine Gruppenzugehörigkeit zu erweitern, als die Hardware umzudefinieren. Obwohl das natürlich auch geht.
neuer PIC Freund schrieb im Beitrag #4894837: > Die Gruppe uucp ist doch extra für RS232-Peripherie. Da wäre es > eleganter, deine Gruppenzugehörigkeit zu erweitern, als die Hardware > umzudefinieren. Obwohl das natürlich auch geht. Ist natürlich richtig, zu Zeiten als an manchem seriellen Anschluss noch ein Modem, mit Amtsleitung oder Amtsberechtigung hing, sollte man sich schon überlegen, ob das Jeder angemeldete Nutzer in die Hände bekommen darf ;-) Jetzt, wo oft nur noch ein Mensch vor dem Rechner sitzt, der den Programmer auch noch vorher reinstecken muss, kann man solch kleinen Schlendrian ja ausnahmsweise mal durchgehen lassen glaub ich.. mfG
MODE="0666" hat doch auch irgendwie Scheunentorcharakter. Da wäre es knuffiger, das Device wird mit MODE="0660" unter Zuhilfenahme von ATTRS{idVendor} und Co. zu ttyDIAMEX. Aber als root brauchen ihn die normalen User-Gängeleien nicht zu kümmern.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.