AVRDude, Burn-O-Mat und AVRBurner. Was mache ich falsch?

Gast #3650921
Lesenswert?

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
#3650944
Lesenswert?

Fuses lassen sich nicht intrinsisch setzen, dafür brauchst du einen 
Programmer. Gibt in der Bucht sehr billig einen USBasp: 
http://www.ebay.de/itm/161258232092

JTAG dient zwar zum Flashen und Debuggen, aber damit kann man meiner 
Meinung nach keine Fuses setzen. Kann aber nicht schaden, so etwas im 
Hause zu haben. Ich nutze dafür einen UM232H; gibt es einigermaßen 
bezahlbar auch aus Transatlantikien:
http://www.ebay.de/itm/USB-to-Serial-UART-I2C-SPI-JTAG-Adapter-FT232H-Debrick-Linksys-Cisco-Routers-/271428432871 
oder günstiger und schneller hier: 
http://www.ebay.de/itm/UM232H-Hi-Speed-FT232H-Entwicklungstool-/151298797118 
(das habe ich dafür)
#3650949
Lesenswert?

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
Gast #3651261
Lesenswert?

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
#3651266
Lesenswert?

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.
Gast #3651315
Lesenswert?

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...
#3651595
Lesenswert?

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
Gast #3651709
Lesenswert?

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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren