Hallo alle zusammen,
da mein AT90USB1287 (Link:
http://shop.in-circuit.de/products/Home/-C-Module/34/DIL-AT90USB1287)
einen externen angeschlossenen Oszi hat, wollte ich die Fuses
entsprechend setzen. Allerdings sind dabei Probleme aufgetreten, weshalb
ich euch um Rat bitte.
(Randbemerkung: Den Code habe ich auf den AT90USB mit Hilfe eines
doppelseitigen USB-Kabels und AtmelFlip geflasht. Das hat zumindest
scheinbar geklappt. Der AT90USB1287 ist also mit dem Computer über ein
USB_Mini-USB-Kabel verbunden)
Da der AT90USB1287 einen Bootloader hat, denke ich, dass ich zum Setzen
der Fuses keinen Programmiergerät brauche. Ich habe hier im Forum
gelesen, dass für die Fusesetzung stattdessen der AVRDude zum Einsatz
kommen kann. Also habe ich den Heruntergeladen und installiert.
Danach wollte ich mir das Setzen der Fuses mit der GUI AVRBurner
leichter machen. Allerdings fordert mich der AVRBurner auf, nicht nur
ein Device und ein Port auszuwählen, sondern auch ein Programmer. Dabei
dachte ich doch, dass ich gerade den nicht brauche. Einen Programmer wie
ein JTAG habe ich nämlich nicht.
Deswegen habe ich nach einer Alternative geschaut. Ich bin da auf
Burn-O-MAT gestoßen. Hier auf der Seit steht irgendwo geschrieben, dass
man mit der Online-Version leider keine Fuse setzten kann. Also habe ich
auch diesen Ansatz verworfen.
Danach wollte ich das mit dem AtmelStudio 6, was ich ohnehin verwende,
versuchen. ich habe also auf den Button "Device Programming" geklickt.
Allerdings fehlt dort der AT90USB1287 in der "Device Liste". Neben
diesem Feld steht ja auch noch "Device Signature". Da würde ich ja gerne
die Signatur meiner uC-Boards eingeben. Das geht allerdings nicht.
Heißt es, dass ich nur den AVRDude und die Commandozeile für das Setzen
der Fuses verwenden kann?
Ich glaube, dass ich in Bezug auf die oben beschriebene Problematik
etwas nicht ganz geblickt habe. Könnt ihr mir bitte einen Hinweis geben,
wie ich da herangehen soll?
Mit freundlichen Grüßen
Julian
Julian K. schrieb:> Da der AT90USB1287 einen Bootloader hat, denke ich, dass ich zum Setzen> der Fuses keinen Programmiergerät brauche.
Falsch gedacht. Die Fuses kann man nicht aus einem laufenden Programm
heraus ändern. Insbesondere also auch nicht aus dem Bootloader heraus.
Zum Ändern der Fuses brauchst du einen ISP- oder JTAG-Adapter. ISP ist
dabei sicher am kostengünstigsten.
Siehe AVR In System Programmer
XL
Okay, ich brauche für die Fusesetzung also einen Programmer wie z.B.
USBasp oder JTAG- oder ISP-Adapter.
Gibt es hinsichtlich der Eignung für unterschiedliche uCer Unterschiede.
Kann jedes Programmiergerät alle uCer hinsichtlich der Fuses ändern?
Danke Dirk und Axel
Mit freundlichen Grüßen
Julian
JTAG ist universeller und kann, bei bekanntem Pinout, an
unterschiedliche µC-Familien angepasst werden.
USBasp ist eine AVR/Atmel-Eigenheit zur Programmierung via ISP / SPI.
Sollte mit allen von avrdude unterstützen Prozessoren klappen.
JTAG hingegen wüsste ich spontan nicht, wie ich das an den AVR anstöpsel
(außer deren Xmegas, das sind Cortex-Kerne). Jedoch gehen damit diverse
FPGAs und so ziemlich alle ARM-, MIPS und sonstige µC.
Dirk K. schrieb:> JTAG hingegen wüsste ich spontan nicht, wie ich das an den AVR anstöpsel
Nun, an die dafür vorgesehenen Pins natürlich. Ob es die gibt und welche
es dann genau sind: siehe Datenblatt des konkreten Device.
Grundsätzlich hat keiner der Tinys ein JTAG-Interface, da kann man sich
also das Datenblattwälzen sparen.
Ein ziemlich sicherer Hinweis auf ein vorhandenes JTAG-Interface ist
übrigens auch das Vorhandensein eines JTAGEN-Fusebits...
Die verschiedenen AVR-Familien haben verschiedene Interfaces für die
In-System-Programmierung (inclusive Fuses). Es gibt TPI (die ganz
kleinen Tiny), ISP (von Tiny bis Mega) und PDI (XMega).
Wenn du einen Adapter willst, der alle drei kann, dann bleibt eigentlich
nur ein AVR ISP MK2 (Original oder Nachbau). Wenn ISP reicht, dann ist
die Auswahl echt riesig. USBasp ist dann die kanonische Antwort, wenn es
billig sein soll.
JTAG kann man zwar auch zum Programmieren verwenden, gebräuchlicher ist
es aber zum Debuggen. Bei JTAG-Adaptern ist die Auswahl eher klein.
Es gibt die diversen (nur-)JTAG ICE von Atmel. Oder wahlweise den
AVR-Dragon, der kann sowohl JTAG als auch ISP/TPI/PDI.
Im Prinzip wäre der Dragon damit das silver bullet, allerdings kommt
er ohne Gehäuse (nackte Platine) und ihm wird eine gewisse
Empfindlichkeit auf elektrostatische Aufladung nachgesagt. Viele Leute
betreiben den Dragon deshalb gerne mit nachgeschalteten Treibern /
Schutzschaltungen (z.B. Dragons Lair)
XL
Dirk K. schrieb:> JTAG dient zwar zum Flashen und Debuggen, aber damit kann man meiner> Meinung nach keine Fuses setzen.
Tja, schade das ich dir sagen muss, das deine Meinung leider falsch ist.
Ich habe meine AVRs nur über JTAG angeschlossen, und daimt kann man auch
Fuses setzen, genau wie über ISP. Warum sollte das auch nicht gehen?
Tjo, so issas nun mal. Daher auch als Meinung und nicht als Besserwissen
oder überhebliches piep gekennzeichnet. Danke für's
in-die-Bresche-springen!
Sozialkompetenz wird vollkommen überbewertet, muss ich leider so sagen.