Hallo allerseits,
ich versuche derzeit mein mit einem AT90USB1287 bestücktes STK525
Entwicklungskit ans Laufen zu kriegen. Habe mir auch die (super!)
Vorlage von Stefan Salewski angeschaut und nach einigem hin und her auch
kompiliert.
Mein Problem ist aber jetzt die Programmierung des Prozessors. Meine
Rahmendaten sind:
OS Kubuntu Feisty
avt-toolchain auf dem neusten Stand (vorgestern nochmal neu kompiliert
etc.
Beim Ausführen des dfu-Programmers meldet dieser, mein Board sei nicht
angeschlossen. Wenn ich den Reset ausführe (entweder nur Reset Taste
drücken oder aber HW und RESET drücken, dann erst RESET loslassen, im
Anschluß HW loslassen) erscheint das Board kurz, wenn ich lsusb aufrufe.
Nach ein paar Sekunden ist es dann wieder weg.
Ich habe auch schon versucht, die Programmierung im Zeitraum in dem das
Board angezeigt wird zu starten, leider erfolglos.
Hier zur Vervollständigung noch die genaue Fehlermeldung:
Meine Frage ist: Was mache ich falsch?
Muss das Board gemountet werden (wenn ja wie?), oder irgendwelche
Konfigurationsdaten einstellen?
Für Hilfe wäre ich echt tierisch dankbar,
viele Grüße und Danke schon mal im vorraus
Funktionieren denn andere USB-Geräte bei Dir?
Du hast doch nicht (wie jemand, der mir kürzlich schrieb) mal kurz ein
kleines Testprogramm per ISP auf den Chip aufgespielt? Wird der Chip
konventionell per ISP (In-System-Programmer) programmiert, überschreibt
man den USB-Bootlader.
Gruß
Stefan Salewski
Noch eine kurze Ergänzung:
Wenn Atmels Bootloader aktiv ist (evtl. während Reset HWB drücken, wie
im STK525 Manual beschrieben) sollte der Befehl "dmesg" nach dem
Anstecken des Boards etwas wie
AMD64X2 bus # dmesg
usb 2-7: new full speed USB device using ohci_hcd and address 2
usb 2-7: configuration #1 chosen from 1 choice
ausspucken.
Und
AMD64X2 ~ # cat /proc/bus/usb/devices
sollte einen Eintrag wie
T: Bus=02 Lev=01 Prnt=01 Port=06 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver=20.00 Cls=fe(app. ) Sub=01 Prot=00 MxPS=32 #Cfgs= 1
P: Vendor=03eb ProdID=2ffb Rev= 0.00
S: Manufacturer=ATMEL
S: Product=AT90USB128 DFU
S: SerialNumber=1.0.0
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 0 Cls=00(>ifc ) Sub=00 Prot=00 Driver=(none)
haben. Soweit hat das mit dfu-programmer noch gar nichts zu tun, das
bedeutet lediglich, das Atmels Bootloader vom Linux-System erkannt
wurde.
Teste erstmal das, dann sehen wir weiter.
vielen lieben Dank für die schnelle Antwort, ich habe die Antwort leider
gestern nicht mehr gesehen.
Zum Glück habe ich das Problem auch schon gelöst bekommen. Ich hatte den
HW Knopf zum Programmieren losgelassen, so wie ich es auch aus der
Anleitung des STK525 interpretiert habe.
Die Programmierung hat erst funktioniert, als ich beide Knöpfe (RST und
HW) gedrückt habe und danach nur den RST losgelassen hatte. Mit
gedrücktem HW Button habe ich dann den dfu-programmer gestartet, und
siehe da, es hat auf einmal funktioniert.
(Das kann doch so eigentlich nicht vorgesehen sein, man muss doch dann
einen Spagat zwischen Tastatur und Board machen!)
bzw. ich musste noch etwa eine Sekunde nach dem Loslassen des RST
warten, bevor ich programmieren konnte.
noch kurz zu den obigen Ausgaben:
Das Gerät war immer nur für ein paar Sekunden zu sehen. (Das
Vorhandensein des Boards hatte ich ja mit lsusb überprüft.)
... und programmiert hatte ich bis dato auch nichts.
vielen Dank soweit nochmal!
>Die Programmierung hat erst funktioniert, als ich beide Knöpfe (RST und>HW) gedrückt habe und danach nur den RST losgelassen hatte.
Na schön das sich das geklärt hat.
In der Tat, man muss zuerst RESET loslassen, erst danach HWB. Ich hatte
Dein erstes Posting so verstanden, dass Du es auch so probiert hattest,
so steht es auch in der Atmel-Dokumentation.
>Mit gedrücktem HW Button habe ich dann den dfu-programmer gestartet
Hm, ist es wirklich nötig HWB gedrückt zu halten, bis man das
Programming Tool gestartet hat? Bei mir war das nicht nötig -- aber
evtl. hat Atmel den Bootloader etwas geändert, die letzte Version ist
wohl von Juni 2007 und man kann sie jetzt scheinbar auch frei
runterladen.
Übrigens: Streng genommen sollte man zuerst RESET, und erst dann HWB
betätigen. Es könnte ja ein laufendes Programm den HWB-Pin als Ausgang
verwenden -- wenn man dann als erstes (oder gleichzeitig) HWB drückt,
mach man evtl. kurzzeitig einen Kurzschluss. Und wenn beide Knöpfe
gedrückt sind, dann zunächst Reset und erst danach (evtl. erst einige
Sekunden später) HWB loslassen.
Ich hoffe mal Du bekommst die Firmware und das Testprogramm zum laufen.
Ich hatte alles mit avr-gcc 3.4.6 kompiliert, wahrscheinlich musst Du
ein paar Anpassungen machen. Dies könnte insbesondere eine Warteschleife
im Hauptprogramm betreffen, die einen Pin periodisch Toggled um
Betriebsbereitschaft (LED blinkt) anzuzeigen. In die Schleife muss man
für avr-gcc 4.x wohl ein NOP oder ähnliches einfügen, sonst wird sie
wegoptimiert. Falls Du es mit avr-gcc 4.x nicht zum laufen bringst, gib
Bescheid, dann werde ich bei mir auch mal avr-gcc 4.1 installieren und
die Quelltexte anpassen.
Gruß
Stefan Salewski
Hallo nochmal,
habe jetzt die Ursache für meine Probleme endlich gefunden. Peinlich
aber war, ich habe make dfu nicht als Superuser ausgeführt. Nochmals
danke für die Hilfe!
>Hallo nochmal,>habe jetzt die Ursache für meine Probleme endlich gefunden. Peinlich>aber war, ich habe make dfu nicht als Superuser ausgeführt. Nochmals>danke für die Hilfe!
Dein letztes Posting ergibt leider nicht viel Sinn.
Du hattest ja zuvor berichtet, dass es Dein Problem war, dass der
AT90USB bzw. sein Bootloader nicht als USB-Device erkannt wurde bzw.
dauerhaft verfügbar war.
Deine Lösung diese Problems hatte ich so verstanden, dass Du während und
auch längere Zeit nach dem Reset durch Drücken von HWB einen Pin (E2 war
es wohl) auf Masse legen musstest. Soweit hatte das mit dfu-programmer
noch gar nichts zu tun!
Ich muss übrigens "make dfu", also den Firmware upload durch
dfu-programmer, nicht als superuser/root ausführen, sondern kann das als
ganz normaler Benutzer erledigen. Wenn bei Dir root-Rechte erforderlich
sind mag das an den Einstellungen Deiner Linux-Distribution liegen --
man kann damit leben.
Gruß
Stefan Salewski