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/mikrocontroller/avr/avrdude#ubuntudebian_und_opensuse
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
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
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
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?
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...
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
@ 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
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?
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
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
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?
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.
>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
>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"
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.
>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
> 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.
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.
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&file=viewtopic&p=472800
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.
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
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/