Forum: Mikrocontroller und Digitale Elektronik AVR Atmel8 in Ubuntu flashen


von Flo (Gast)


Angehängte Dateien:

Lesenswert?

Hallo liebes Forum,

Ich habe mir das myAVR Board light ( 
http://shop.myavr.de/index.php?sp=article.sp.php&artID=200017 ) bestellt 
und zusammengelötet. In der FH haben wir an einem Win-Rechner ein 
Programm aufgespielt, welches auf meiner LCD-Anzeige (extra Bauteil) 
auch etwas ausgibt. Das Board klappt also :)

Jetzt zum Problem. Zu Hause habe ich ein Ubuntu aufgespielt und bekomme 
den C-Code nicht auf den Controller geschrieben. Ich hoffe, mir kann von 
euch jemand helfen - es scheint an einem kleinen Detail zu scheitern.

Was ich gemacht habe:
Folgende Pakte sind installiert:
o gcc-avr
o binutils-avr
o avr-libc
o avrdude
Mein Benutzer ist in der Gruppe dialout

Programme in hex-Dateien übersetzen klappt auch ohne Probleme. Nur das 
Verschieben bereitet große Probleme.

1. Versuch: avrdude
Mit avrdude habe ich mit folgendem Befehl versucht zu überspielen.
1
avrdude -p m8 -c avr911 -P /dev/ttyUSB0 -U flash:w:ledanaus.hex:i
Den Output mit Parameter -vv hab ich euch in den Anhang gepackt.
Ich hab schon ein paar Kombinationen und Parameter ausprobiert, 
beschäftige mich auch erst seit kurzem mit Microcontrollern...

2. Versuch: Win7 in VM-Ware Player mit AVR-Studio 4 und AVR MyProgTool. 
Die Fehlermeldung hab ich gerade nicht hier (falls wichtig, probier ich 
das nochmal). Ich meine der Fehler war, dass der Programmer nicht 
antwortet.

3. Versuch: RP6Loader
Dieses Programm hat mir ein Freund empfohlen. Es ist ein graphisches 
Tool, erkennt auch den richtigen USB-Port etc. Doch beim Upload kommt 
folgende Fehlermeldung:
1
RP6 Loader is ready to go.
2
Trying to open port: /dev/ttyUSB0
3
/dev/ttyUSB0 open @38400-8n1
4
Baudrate is set to: 38400
5
Uploading new program to target device; Range: 0 - 5a
6
ERROR (1)  ||| Timeout: The target has not responded!
7
Are you sure the cable is properly connected and target has power?
... Kabel ist definitv dran, der Microcontroller ist an und gibt auf der 
LCD-Anzeige auch den Testtext an.

So. Nach dem vielen Rumprobiere hoffe ich, dass ihr mir hier vielleicht 
den entscheidenden Tipp geben könnt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Flo schrieb:
> Den Output mit Parameter -vv hab ich euch in den Anhang gepackt.

Sieht irgendwie nur wie die Hälfte aus.  Beendet sich AVRDUDE danach,
oder was passiert dann?  Eigentlich müsste da noch mehr kommen.

Die Informationen dazu, was myAVR tut, sind recht spärlich.  Einen
Tipp habe ich noch gefunden, das wäre die Benutzung der Option

-x no_blockmode

bei AVRDUDE.

von Flo (Gast)


Lesenswert?

Hi Jörg,

danke für deine Antwort!

Jörg Wunsch schrieb:
> Sieht irgendwie nur wie die Hälfte aus.  Beendet sich AVRDUDE danach,
> oder was passiert dann?  Eigentlich müsste da noch mehr kommen.

Habe mir das nochmal angeschaut. Natürlich habe ich die Fehlermeldung 
versehentlich rausgeschnitten ;) Hier der Nachtrag:
1
Connecting to programmer: .avrdude: ser_recv(): programmer is not responding
2
avrdude: butterfly_recv(): programmer is not responding
avrdude braucht 1,2 Sekunden und beendet sich dann mit dieser Meldung.

Jörg Wunsch schrieb:
> Die Informationen dazu, was myAVR tut, sind recht spärlich.  Einen
> Tipp habe ich noch gefunden, das wäre die Benutzung der Option
>
> -x no_blockmode

Habe ich mal probiert:
1
avrdude: WARNING: Programmer doesn't support extended parameters, -x option(s) ignored

von Frank K. (fchk)


Lesenswert?

Der Usb Anschluss ist nur ein serieller Anschluss, der den 
vorinstallierten Bootloader anspricht. Mit Avrdude etc wirst Du hier 
nichts, so wie ich das sehe. Eventuell hast Du den Bootloader gekillt.

Also: Atmel AVRISP MKII kaufen, ISP-Stecker nachbestücken und Programm 
auf diese Weise flashen.

Und ja, ich empfehle als Programmer nur das Original. Die Tools vom 
Chiphersteller sind nicht die billigsten, aber meist die 
unproblematischten und die mit dem besten Support.

fchk

von Meisel (Gast)


Lesenswert?

Mit den Tools vom Chiphersteller wär unter Ubuntu nicht viel zu reissen 
:)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Flo schrieb:
> avrdude: WARNING: Programmer doesn't support extended parameters, -x option(s) 
ignored

Dann probier' mal -c avr910 statt -c avr911.

> Mit den Tools vom Chiphersteller wär unter Ubuntu nicht viel zu reissen

AVRISPmkII funktioniert mit AVRDUDE problemlos.

von Meisel (Gast)


Lesenswert?

> AVRISPmkII funktioniert mit AVRDUDE problemlos.

Und ist Opensource, nicht vom Chiphersteller. Das wollte ich damit 
ausdrücken.

von Flo (Gast)


Lesenswert?

Hi,

Frank K. schrieb:
> Eventuell hast Du den Bootloader gekillt.

Der Bootloader klappt noch. Haben gerade von einer anderen Maschine ein 
Programm aufgespielt und das alte wurde ersetzt...

Frank K. schrieb:
> Also: Atmel AVRISP MKII kaufen, ISP-Stecker nachbestücken und Programm
> auf diese Weise flashen.
Das möchte ich vermeiden. Ein Freund von mir programmiert auch per 
Ubuntu über den USB-Anschluss. Der ist momentan aber nicht für mich 
erreichbar...

Jörg Wunsch schrieb:
> Dann probier' mal -c avr910 statt -c avr911.

Hier bekomme ich die selbe Meldung..
1
avrdude: ser_recv(): programmer is not responding
2
avrdude: avr910_recv(): programmer is not responding

Das ist ein wahres Dilemma.. Vielleicht habt ihr ja noch eine Idee, ich 
probier währenddessen mal weiter auf der VM mit dem myAVR Programmer das 
Überspielen hinzubekommen... :/

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Meisel schrieb:
>> AVRISPmkII funktioniert mit AVRDUDE problemlos.
>
> Und ist Opensource, nicht vom Chiphersteller. Das wollte ich damit
> ausdrücken.

Die Aussage war aber "Die Tools vom Chiphersteller sind nicht die
billigsten, aber meist die unproblematischten und die mit dem besten
Support."  Damit ist eigentlich klar, dass sich "Tools" hier auf die
Programmierhardware bezieht.

Flo schrieb:
> Hier bekomme ich die selbe Meldung..
> avrdude: ser_recv(): programmer is not responding
> avrdude: avr910_recv(): programmer is not responding

Sorry, dann musst du myAVR selbst fragen.  Wenn das Teil nicht
antwortet, dann kann ich dir auf AVRDUDE-Seite nicht weiterhelfen.

von usuru (Gast)


Lesenswert?

1. Hast du die libusb eingespielt?
2. Gib mal im Terminal lsusb ein, ist der Programmer zu sehen?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

usuru schrieb:
> 1. Hast du die libusb eingespielt?

Braucht er nicht, das Teil arbeitet mit dem CP2102 als fiktive
serielle Schnittstelle.

von Flo (Gast)


Lesenswert?

usuru schrieb:
> 1. Hast du die libusb eingespielt?
> 2. Gib mal im Terminal lsusb ein, ist der Programmer zu sehen?

zu 1: Nein! Hab ich jetzt nachinstalliert mit
1
apt-get install libusb-1.0-0

zu 2: output:
1
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
2
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
3
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
4
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
5
Bus 001 Device 003: ID 04f2:b1e5 Chicony Electronics Co., Ltd 
6
Bus 002 Device 008: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x Composite Device
Ich sehe keinen Programmer dort.

von Flo (Gast)


Lesenswert?

Hallo kurzer Zwischenstand,

unter der VM funktioniert es inzwischen. Ich habe vergessen den 
USB-Treiber zu installieren...

Unter Linux stehe ich weiterhin auf dem Schlauch. Das Wochenende treffe 
ich mich mit einem Freund, wenn wir das hinbekommen, werde ich euch das 
wissen lassen mit Lösungsweg.

von Jahat I. (jaib)


Lesenswert?

Hallo,

bei myAVR gibts einen 109er Bootloader für das light, es müsste also der 
vorinstallierte propäritäre myAVR-Bootloader durch den 109er-kompatiblen 
ersetzt werden:

http://shop.myavr.de/index.php?sp=download.sp.php&suchwort=DL233

Gruß Jahib

von Krapao (Gast)


Lesenswert?

Der Tipp von Jahib ist wichtig.

> Ich sehe keinen Programmer dort.

Da isser, bzw die USB to UART Bridge

> Bus 002 Device 008: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x 
Composite Device

Da gibt es einen Bugreport in Oneiric Ozelot zu, wo ein anderes Programm 
sich das Gerät schnappt: 
https://bugs.launchpad.net/ubuntu/+source/brltty/+bug/874181

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Flo schrieb:

> Ich sehe keinen Programmer dort.
1
Bus 002 Device 008: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x Composite Device

Jahat Iblis schrieb:
> es müsste also der
> vorinstallierte propäritäre myAVR-Bootloader durch den 109er-kompatiblen
> ersetzt werden

Ach, das ist der Dreh!  Warum auch immer sie nicht einfach einen
Bootloader vorinstallieren können, der zu einem der bekannten
Protokolle kompitabel ist (wenn ihnen das AVR109 zu dünn ist, geht
ja auch STK500).  Das verstehe, wer will.

von Flo (Gast)


Lesenswert?

Also, wenn ich recht verstehe...

muss ich mir erst einen ISP-Adapter anlöten und darüber einen neuen 
Bootloader installieren. Anschließend kann ich mit avrdude oder 
rp6loader über die USB Buchse den AVR flashen.
Ich danke für die Lösung! :) In Anbetracht dessen, dass ich jetzt 
erstmal üben muss damit ich das nächste Praktikum bestehe, bleibe ich 
bei der Lösung erstmal über die VM zu flashen. ;)

Super Forum :) Danke!

von Flo (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

inzwischen habe ich eine Lösung gefunden, ganz ohne ISP Adapter oder so 
einen Quatsch ;)

Man kann die Programme mit einem beliebigen C-Editor schreiben und mit 
dem AVR-GCC kompilieren lassen. Devkid hat ein Skript geschrieben, um 
einen AVR mit einer binary zu flashen. Falls ihr also eine HEX generiert 
habt, müsst ihr diese erst in eine .bin umwandeln. Das geht mit 
folgendem Befehl:
1
avr-objcopy -I ihex -O binary <name der hex> code.bin
Habt ihr nun die Binary könnt ihr ein Python-Skript ausführen um den AVR 
zu flashen.
1
python myavr_smartcontrol_bootloader.py code.bin
Den Originalblogeintrag und das entsprechende Skript findet ihr im Blog 
von Devkid: 
http://www.devkid.net/programmierung/mikrocontroller-a-bastelzeug/10-programmierung-auf-dem-mysmartcontrol-ueber-den-bootloader-unter-linux

Ich habe dazu mal ein Tutorial geschrieben für Ubuntu und Eclipse. Das 
könnt packe ich mal in den Anhang rein.

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
Noch kein Account? Hier anmelden.