Forum: Mikrocontroller und Digitale Elektronik AVRDude, Burn-O-Mat und AVRBurner. Was mache ich falsch?


von Julian K. (Gast)


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

von Dirk K. (dekoepi)


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)

von Axel S. (a-za-z0-9)


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

von Julian K. (Gast)


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

von Dirk K. (dekoepi)


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.

von Julian K. (Gast)


Lesenswert?

Ich gehe mal davon aus, dass der AVRDude auch den AT90USB1287 
unterstützt. Also brauche ich einen USBasp. Soweit so gut.

Danke!
Julian

von c-hater (Gast)


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...

von Julian K. (Gast)


Lesenswert?

Ah...ok

Der AT90USB1287 hat wie im DB steht auch ein JTAG-Interface. Also sollte 
auch ein JTAG gehen. Danke

von Axel S. (a-za-z0-9)


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

von Julian K. (Gast)


Lesenswert?

Hallo Axel,

danke über deine zusammenfassenden Überblick über die Arten der 
Programmer. Das erspart mir Recherche!

Julian

von Kaj (Gast)


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?

von Dirk K. (dekoepi)


Lesenswert?

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.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.