www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT90USB, Flip und Linux


Autor: Jones (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, ich habe mir einen AT90USB162 auf eine Platine gelötet und versuche 
jetzt, mit dem internen Bootloader zu kommunizieren.

Ich habe die Platine schonmal an einen Windows Rechner angeschlossen, da 
wurde sofort der AT90USB162 erkannt und Windows hat versucht, einen 
Treiber zu installieren. Mangels Java kann ich Flip aber unter Windows 
nicht testen.

ich kann auch via ISP auf den Controller zugreifen. Soweit scheint also 
alles zu funktionieren.

Jetzt versuche ich das unter Linux. Der Controller wird wohl auch 
erkannt. lsusb liefert mir

> Bus 002 Device 009: ID 03eb:2ffa Atmel Corp.

Die Schaltung sollte also völlig korrekt sein und funktionieren, sonst 
würde die ID nicht erkannt werden.

Wenn ich jetzt Flip starte und versuche, eine USB Verbindung zu öffnen, 
sagt er mir in der Konsole

> AtLibUsbDfu: 3EB 2FFA no device present.

Ich habe jetzt nach der Anleitung im Elektronik-Projekt.de Wiki 
versucht, für udev eine Datei anzulegen, weil ich weiß, dass ohne diese 
Datei ein AVRISP mkII nur als Root funktioniert

http://www.wiki.elektronik-projekt.de/mikrocontrol...

Ich hab diese Zeile eingetragen

> ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", GROUP="plugdev", MODE="0660"

So langsam weiß ich nicht mehr weiter. Ach ja, ich habe natürlich einen 
Taster nach GND an HWB und an den Fusebits habe ich nichts verstellt 
sondern hab die Werkseinstellungen unverändert gelassen. Einen Chip 
Erase habe ich auch nicht ausgeführt. Ich habe lediglich mit avrdude zum 
Testen den Inhalt des Flash via ISP gelesen. Der Bootloader sollte 
also noch drin sein und funktionieren.

Könnt ihr mir weiterhelfen? Bin mit meinem Latein am Ende

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah ja, Flip gibt es jetzt wohl auch für Linux...

Ich hatte unter Linux stets dfu-programmer verwendet:

http://dfu-programmer.sourceforge.net/

Autor: hp-freund (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jones
ist der angemeldete Benutzer auch Mitglied der Gruppe plugdev ?

Test auf der Konsole mit:

groups

Autor: Robert Weber (rweber)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,

unabhaengig von deinem Problem: Bist Du dir sicher, dass der AT90 
unterstuetzt wird? Soweit ich weis, lassen sich mit FLIP ausschl. die 
8051er programieren.

Gruss,
rweber

Autor: Robert Weber (rweber)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, ich sehe gerade, die 3er Flip version kann das. Also passt schon.

Autor: Jones (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, der User ist Mitglied von plugdev.

Ich habe auch mal versucht, Flip als Root zu starten. Aber man muss zwei 
Variablen mit export anlegen, nur gibt es unter Root anscheinend den 
Export Befehl nicht.

Ich verwende im übrigen Ubuntu 9.04

Autor: Robert Weber (rweber)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jones schrieb:
> Ja, der User ist Mitglied von plugdev.
>
> Ich habe auch mal versucht, Flip als Root zu starten. Aber man muss zwei
> Variablen mit export anlegen, nur gibt es unter Root anscheinend den
> Export Befehl nicht.
>
> Ich verwende im übrigen Ubuntu 9.04

Kommt auf die verwendete Shell an.

csh/tcsh: setenv VARIABLE=wert
bash/ksh: export VARIABLE=wert
sh: VARIABLE=wert; export VARIABLE

Findet lsusb den Adapter?

Autor: hp-freund (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
export - klein geschrieben - gibt es auch für root. (Systembefehl)

Das flip-Programm ist so klein das Du es ja schnell noch mal zum Test im 
root Homeverzeichnis installieren kannst. Mit eigenen Variablen.

Beobachte mal die Konsolen Ausgabe von ./flip.sh im Hintergrund.

Für mehr Infos gibt es noch die Möglichkeit:

strace ./flip.sh

Dann sollte das Problem zu sehen sein...

Autor: Jones (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verwende die Standard Shell, glaube bash. Als User gibt es den export 
Befehl ja auch, sonst könnte ich Flip gar nicht starten. Nur als Root 
geht es nicht.

lsusb findet ihn, siehe erster Post

Ich kann mir jetzt nur noch vorstellen, dass der Bootloader nie 
vorhanden war oder avrdude ihn irgendwie gelöscht hat, als ich das Flash 
gelesen habe. Einen Chip Erase hab ich wie gesagt nie absichtlich 
durchgeführt

Autor: Jones (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ hp-freund: wenn ich sudo export eingebe kommt

> sudo: export: command not found

Habe gerade mal mit sudo su eine root Shell erstellt. Dann geht export. 
Werd das nachher mal so probieren, ob das was ändert

Autor: hp-freund (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann vergleich den Bootloader doch mal über ISP oder flash einen neuen:

http://www.atmel.com/dyn/products/product_card.asp...

-> AT90USB162 USB Bootloader v1.0.5

Autor: Jones (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, will ich heute Abend probieren. Sitze gerade im Büro.

Aber sollte der Bootloader nicht ab Werk vorhanden sein? Gibts da irgend 
welche Revisionen, wo es da Fehler gab?

Autor: hp-freund (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sollte er:

"The 8bits mega AVR with USB interface devices are factory configured 
with a
USB bootloader located in the on-chip flash boot section of the 
controller."

Auf Fehler ab Werk würde ich erst ganz zuletzt tippen ;)

Na dann...
...einen schönen Bürotag


...
hp-freund

Autor: Robert Weber (rweber)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jones schrieb:
> @ hp-freund: wenn ich sudo export eingebe kommt
>
>> sudo: export: command not found
>
> Habe gerade mal mit sudo su eine root Shell erstellt. Dann geht export.
> Werd das nachher mal so probieren, ob das was ändert

Das kann so nicht funktionieren. export ist ein shell built in Kommando. 
Wenn du "sudo export" tippst dann will der sudo ein Binary namens export 
in deinem Suchpfad ausfuehren, das gibt es aber nicht.

Der richtige Weg zu einer Root shell ist "su - root" oder alternativ ein 
sudo /bin/bash

Autor: Jones (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist im Moment nicht mein primäres Problem. Viel mehr habe ich 
inzwischen Probleme, überhaupt Verbindung mit dem Controller 
aufzunehmen. Ich habe wohl den Bootloader gelöscht und ich bekomme den 
nicht mehr zum laufen.

Ich habe von der Atmel Homepage den Bootloader runtergeladen (v1.0.5) 
und versuche den jetzt, mittels AVR Studio wieder zum Laufen zu bringen. 
Bisher leider ohne Erfolg. Muss man da etwas bestimmtes beachten?

Autor: hp-freund (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hört sich nach fuse bits an.
Geh das am Besten der Reihe nach durch. Besonders Bootloader und ext. 
Quarz beachten...

Autor: Jones (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fuse Bits hab ich durch. Habs mit den Standard Einstellungen im 
Datenblatt verglichen. Vier mal. Hab zwischendurch mal, probiert, die 
CDC Demo zum Laufen zu kriegen. Die hat auch wieder funktioniert. Aber 
der Bootloader rührt sich nicht.

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>einen AT90USB162 auf eine Platine gelötet

Es gab ja mal jemanden, der USB mit dem internen Oszillator, also ohne 
Quarz, nutzen wollte. Das geht so gut wie nie. Sonst evtl. mal eines 
dieser billigen Olimex Boards mit AT90USB162 besorgen und damit testen? 
Vielleicht hast Du die USB-Leitungen nicht  gut aufgebaut? Hast du die 
22 Ohm Widerstände drin? Ist schon seltsam wie viele Leute doch mit 
selbst gelöteten AT90USBs Probleme haben.

Hast Du dich halbwegs an die Soll-Impedanzen gehalten? Wobei das wohl 
eher für High-Speed kritisch wird...

http://www.usb.org/developers/docs/hs_usb_pdg_r1_0.pdf

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ist schon seltsam

Das wird dir wohl auch nicht helfen, da ging es eher um den AT90USB1287.
Aber kannst Du dir ja mal ansehen.

Beitrag "AT90USB Bootloader schützen"

Autor: Jones (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, löten kann ich denke ich. Hab die Platine hier verwendet

http://shop.embedit.de/product__794.php

22 Ohm sind drin. USB ansich ging ja wie gesagt. Ich konnte ja unter 
Linux die ID lesen und unter Windows wollte er nen Treiber installieren.

Richtig in Schwierigkeiten kam ich erst, als ich einen Chip Erase 
gemacht habe.

Autor: Jones (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also einen Chip Erase über ISP

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Naja, löten kann ich denke ich.

Na so ganz eindeutig ist das nicht immer. Bei meiner ersten Platine für 
den AT90USB1287, Bus-Powered, hatte ich massive Probleme mit längeren 
USB-Kabeln. Übertragungsfehler, auch mit USB-Bootloader usw. Mit Kabeln 
kürzer als 2m ging es aber. War ein dümmlicher Fehler von mir, ich hatte 
legiglich einen 100 nF Stützkondensator für die Versorgungsspannung 
verwendet. Später mit einem 1uF Kondensator lief alles perfekt.

Aber zu deinem Problem: Ich kann dir leider nicht wirklich helfen. Aber 
probiere doch mal dfu-programmer aus. Oder den Lufa-Bootloader. Ich 
weiß, das kostet alles viel Zeit, aber so ist das Leben eben. Sonst von 
Olimex kaufen, da kann man sich dann beschweren.

Dow

Autor: hp-freund (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Habs mit den Standard Einstellungen im Datenblatt verglichen.

Welche sind das?

BOOTRST z.B. steht default auf StartAddr 0x0000

Am besten Du machst mal Screenshots von alles fuses.

Autor: Jones (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hat mich auch gewundert. Ich habe aber auch schon verschiedene 
andere Einstellungen probiert.

Kann es sein, dass ab Werk nicht nur der Bootloader sondern auch eine 
"Demo Application" im Controller liegt? Und sei es nur ein Jump in den 
Bootloader an Adresse 0x0000?

Wie schon gesagt, vor dem Chip Erase hat der Controller zumindest 
Lebenszeichen von sich gegeben.

Autor: hp-freund (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Bootloader liegt an Word Addr 0x1800. Byte Addr: 0x3000.
Das ist default BOOTSZ0=0,BOOTSZ1=0 passt also.
CKSEL3..1 muß auch angepasst werden.
BOOTRST muß "0" sein.

Also Du mußt wirklich alle fuses durchgehen und möglichst auch 
verstehen.
Die Standard Einstellungen aus dem Datenblatt passen also nicht.

Das Problem hatten auch andere schon:

http://www.avrfreaks.net/index.php?name=PNphpBB2&f...

Autor: Jones (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich werde heute ein zweites IC opfern und mir den Originalzustand genau 
anschauen. Ich bin mir aber sicher, dass die Default Werte im Datenblatt 
stimmen.

Hm, ich sollte vielleicht mal den Quarz tauschen. Könnte ne Ursache sein 
fällt mir gerade ein. Ist nämlich ein älterer aus einer Wühlkiste. Wobei 
mich das trotzdem wundern würde, weil es bis zum Chip Erase eigentlich 
immer funktioniert hat.

Autor: Jones (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, fragt mich nicht warum, aber ich hab es jetzt wieder hinbekommen. 
Jetzt habe ich drei Platinen am Laufen.

Ich weiß nicht, was ich bisher falsch gemacht habe. Elektrisch habe ich 
nichts geändert.

Ich habe allerdings das AVR Studio upgedated auf 4.17 weil ich irgendwo 
gelesen habe, dass irgendwelche Files nicht stimmen sollen. Möglich, 
dass es der Grund war.

Jetzt kann ich mich endlich um die anderen Probleme kümmern

Autor: Jones (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, da kann ich lange probieren

> The need for this tool came about when I needed to flash an at89c51snd1c chip 
that had the USB bootloader on it, but the Atmel provided tool (FLIP) didn't 
support USB flashing in linux.

http://dfu-programmer.sourceforge.net/

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.