PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Diamex ALL-AVR unter Ubuntu



teamohnename
10.04.2013, 18:16
Hallo an alle,
ich habe mir vor kurzem aus dem Shop diesen vermeintlich unter avrdude funktionierenden ISP Programmer (http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=73&products_id=241) gekauft. Leider funktioniert der Programmer nicht. Der Haken an der ganzen Sache scheint bei mir allerdings zu sein, dass ich Ubuntu mit avrdude Version 5.11.1 nutze. So viel zum Thema
[...] kann aber auch mit dem Kommandozeilentool AVRDUDE (getestet ab Version 5.10) benutzt werden. [...] :frown:
Avrdude gibt mir folgende Fehlermeldung aus:


avrdude: usb_open(): cannot read serial number "error sending control message: Connection timed out"
avrdude: usb_open(): cannot read product name "error sending control message: Connection timed out"
avrdude: usbdev_open(): Found [unnamed product], serno: [unknown]
avrdude: usbdev_open(): error setting configuration 1: could not set config 1: Connection timed out
avrdude: usbdev_open(): did not find any USB device "usb"
Viel merkwürdiger ist allerdings, dass der originale Atmel AVR ISP MKII bei mir problemlos nach Erstellen der udev-Regeln (http://stackoverflow.com/questions/5412727/avrisp-mkii-doesnt-work-with-avrdude-in-linux) funktioniert. Aha, deshalb also

[...] Der Programme rist beim Protokoll quasi kompatibel zum Atmel MK2 USB Programmer. [...]
Anders als hier (https://www.roboternetz.de/community/threads/55946-Probleme-mit-dem-ISP-Programmer-Atmel-Corp-AVR-ISP-mkII-unter-ubuntu) erläutert, wird der Diamex Programmer bei mir aber nicht ausgeworfen, lsusb liefert kontinuierlich beim Diamex Programmer

Bus 003 Device 007: ID 03eb:2104 Atmel Corp. AVR ISP mkII
und beim Atmel Originalprogrammer

Bus 003 Device 008: ID 03eb:2104 Atmel Corp. AVR ISP mkII

Was genau kann ich nun tun, damit ich den Programmer auch unter Ubuntu nutzen kann? Oder ist das schlicht nicht möglich?
Grüße
Jan

-schumi-
10.04.2013, 22:16
Versuche mal, deinen avrdude-Befehl als Root auszuführen, also warscheinlich "sudo make program".

Falls es dann geht, ist es nur noch ein Rechte-Problem

teamohnename
10.04.2013, 22:44
Hi,
danke für Deine Antwort.
Hab’s ausprobiert; auch dann kommen diese Fehlermeldungen.
Grüße

-schumi-
11.04.2013, 00:08
Hmm, schade..

Könntest du mal die Parameter zeigen, mit denen du avrdude aufrufst? (bzw. das Makefile, falls du eines benutzt)

teamohnename
11.04.2013, 16:33
Hi,
ich nutze das Makefile der u8glib (http://code.google.com/p/u8glib/).


#
# Generic and Simple Atmel AVR GNU Makefile
#
# Desinged for the gnu-avr tool chain
#
# Copyright (c) 2012 Oliver Kraus (olikraus@gmail.com)
#
# Redistribution and use in source and binary forms, with or without modification, are
# permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice, this list of
# conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice, this list
# of conditions and the following disclaimer in the documentation and/or other materials
# provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Features
# - upload
# - create exe from library
# - create assembler listing (.dis)
#
# Limitations
# - only C-files supported
# - no automatic dependency checking (call 'make clean' if any .h files are changed)
#
# Targets:
# make
# create hex file, no upload
# make upload
# create and upload hex file
# make clean
# delete all generated files
#
# Note:
# Display list make database: make -p -f/dev/null | less

# User defined values
TARGETNAME = robocup
MCU:=atmega2560
F_CPU:=16000000
WORKDIR:=.
U8GM2DIR:=u8g
SYSDIR:=sys

# Type: "avrdude -c ?" to get a full listing.
AVRDUDE_PROGRAMMER := avrispmkii
# com1 = serial port. Use lpt1 to connect to parallel port.
AVRDUDE_PORT := usb

# Replace standard build tools by avr tools
CC = avr-gcc
AR = @avr-ar

# Compile all .c files in all directories
SRC = $(shell ls $(WORKDIR)/*.c 2>/dev/null)
SRC += $(shell ls $(U8GM2DIR)/*.c 2>/dev/null)
SRC += $(shell ls $(SYSDIR)/*.c 2>/dev/null)

# Flags for the linker and the compiler
COMMON_FLAGS = -DF_CPU=$(F_CPU) -mmcu=$(MCU) $(DOGDEFS)
COMMON_FLAGS += -I$(WORKDIR) -I$(U8GM2DIR) -I$(SYSDIR)
COMMON_FLAGS += -g -Os -Wall -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
COMMON_FLAGS += -ffunction-sections -fdata-sections -Wl,--gc-sections
COMMON_FLAGS += -Wl,--relax -mcall-prologues
CFLAGS = $(COMMON_FLAGS) -std=gnu99 -Wstrict-prototypes

OBJ = $(SRC:.c=.o)

.SUFFIXES: .elf .hex .dis

# Targets
.PHONY: all
all: $(TARGETNAME).dis $(TARGETNAME).hex
avr-size $(TARGETNAME).elf

.PHONY: flash
flash: $(TARGETNAME).dis $(TARGETNAME).hex
avrdude -F -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) -B 1 -v -v -U flash:w:$(TARGETNAME).hex
avr-size $(TARGETNAME).elf

.PHONY: clean
clean:
$(RM) $(TARGETNAME).hex $(TARGETNAME).elf $(TARGETNAME).a $(TARGETNAME).dis $(OBJ)

# implicit rules
.elf.hex:
avr-objcopy -O ihex -R .eeprom $< $@

# explicit rules
$(TARGETNAME).elf: $(TARGETNAME).a($(OBJ))
$(LINK.o) $(COMMON_FLAGS) $(TARGETNAME).a $(LOADLIBES) $(LDLIBS) -o $@

$(TARGETNAME).dis: $(TARGETNAME).elf
avr-objdump -S $< > $@

-schumi-
11.04.2013, 19:26
Sollte eigentlich passen, vor allem auch weil du schreibst, dass der originale Atmel AVR ISP MKII bei dir funktioniert.

Folgender Thread könnte sehr interessant sein: http://www.mikrocontroller.net/topic/226307

Anscheinend haben alte Firmwareversionen des Programmers Probleme mit USB 2.0

Ritchie
16.06.2013, 14:36
Hi,

ich habe auch diesen AVR Programmer im Einsatz. Zeitweise hatte ich dann auch das AVR-Studio Original im Einsatz, welcher mir aber defekt ging.

Nach einem Update des ALL-AVR Programmers (schau mal bei Reichelt nach, die habe die aktuelle Firmware hinterlegt), ging mein
ALL-AVR auch unter Ubuntu und sogar in einer VMWare, wo ich AVR Studio verwende.

Gruss R.

teamohnename
26.07.2013, 16:06
Hi,
bin nun endlich dazu gekommen, das mal auszuprobieren.
Die BIOS-Version des Programmers war in der Tat noch Version 1.5.0 (aktuell war 1.8.0, hier herunterzuladen (http://forum.diamex.de/content.php?32-ALL-AVR-ISP-Programmer) (bei Reichelt habe ich die aktuelle Version nicht gefunden)), das habe ich auch unter Windows geupdated, geholfen hat es allerdings nicht. Erst, als ich diesen Thread bei mikrocontroller.net (http://www.mikrocontroller.net/topic/226307) noch einmal durchgelesen habe, auf diesen Beitrag (http://www.mikrocontroller.net/topic/226307#2532414) gestoßen bin und den Anweisungen mehr oder weniger gefolgt bin, hat das ganze funktioniert. Die Datei 39-libmtp.rules heißt lediglich bei mir 69-libmtp.rules und die auszukommentierende Zeile befindet sich nicht wie dort beschrieben in Zeile 735, sondern in Zeile 884 (alternativ einfach in der Datei nach "00|02|" suchen, das gibt es nur in der Zeile). Danach muss der Computer neugestartet werden! Ob das ganze ohne Update des Programmers funktioniert hätte, kann ich nicht sagen.
Danke auf jeden Fall und
Grüße
Jan

andreas059
20.10.2013, 00:03
Hi,
bin nun endlich dazu gekommen, das mal auszuprobieren.
Die BIOS-Version des Programmers war in der Tat noch Version 1.5.0 (aktuell war 1.8.0, hier herunterzuladen (http://forum.diamex.de/content.php?32-ALL-AVR-ISP-Programmer) (bei Reichelt habe ich die aktuelle Version nicht gefunden)), das habe ich auch unter Windows geupdated, geholfen hat es allerdings nicht. Erst, als ich diesen Thread bei mikrocontroller.net (http://www.mikrocontroller.net/topic/226307) noch einmal durchgelesen habe, auf diesen Beitrag (http://www.mikrocontroller.net/topic/226307#2532414) gestoßen bin und den Anweisungen mehr oder weniger gefolgt bin, hat das ganze funktioniert. Die Datei 39-libmtp.rules heißt lediglich bei mir 69-libmtp.rules und die auszukommentierende Zeile befindet sich nicht wie dort beschrieben in Zeile 735, sondern in Zeile 884 (alternativ einfach in der Datei nach "00|02|" suchen, das gibt es nur in der Zeile). Danach muss der Computer neugestartet werden! Ob das ganze ohne Update des Programmers funktioniert hätte, kann ich nicht sagen.
Danke auf jeden Fall und
Grüße
Jan


Uff das hat mich vielleicht Nerven gekostet, aber das mit dem Auskommentieren der Zeile die mit "ENV{ID_MTP_DEVICE}!="1",....." beginnt in "/lib/udev/rules.d/39-libmtp.rules" hat zum Erfolg geführt.

Schade finde ich wenn man schon 30Euro bezahlt das http://www.diamex.de/ nicht mal das Teil für Linux sauber programmieren kann. Klaar das Teil wird explizit nur für Windows angeboten, aber so ein Fehler.....

Na ja jetzt klappt es ja. ;)

Wsk8
20.10.2013, 16:50
Sorry, aber wie erwähnt ist er nur für Windows angeboten und selbst das Atmel Studio erkennt ihn einwandfrei (und das macht OFT Probleme mit Programmern). Und 30 bits für einen Programmer der 10 und 6-pol. Anschluss hat und fast jeden AVR programmieren kann ist wirklich ein Schnäppchen.

mfg