Forum: Mikrocontroller und Digitale Elektronik Fuse Bits lesen/ setzen beim atmega32u4 ohne Programmer?


von NewBie20140506 (Gast)


Lesenswert?

Hallo Mikroprozessorentwickler,

ich stehe vor einem NewBie-Verständnisproblem:

Der atmega32u4 hat eine integrierten USB Schnittstelle für die In System 
Programmierung (ISP). Nach meinem Verständnis hat Atmel das gemacht, um 
uns einen extra Chip wie den FT232** oder eine ähnliche Methode für den 
Übergang USB-to-Serial zu sparen.

Nachdem ich nun mit dem atmega32u4 und FLIP ein wenig gearbeitet und ihn 
auch programmiert habe (d.h. ich habe einen kompilierten Code in den 
Flash geladen und ihn ausführen lassen), möcht ich nun einige 
Einstellungen an den Fuses ändern, u.a. CHKDIV8.

Über Flip kommt man offensichtlich nicht an die FUSES. Mit avrdude ist 
es möglich, wie auch mit einigen anderen Programmen. Aber alle setzen 
einen ISP-Programmer voraus, d.h. ich muss -c PROGAMMER angeben:

> avrdude [diverse Parameter] -c PROGRAMMER [diverse Parameter]

Mit dem atmega32u4 mit integriertem USB Baustein sollte aber genau 
dieser externe In-System-PROGRAMMER umgangen werden, oder?

Frage1: Ist mein Verständnis bis hierher richtig?
Frage2: Wie komme ich an die FUSES mit nichts als einem Chip in 
Grundbeschaltung, einem USB Kabel und einer Software? Und wenn ich 
tatsächlich einen externen Programmer benötige, wozu dann diese USB 
Schnittstelle im atmega32u4?


Besten Dank für Aufklärung

NewBie20140506

von Rainer R. (Firma: Reusch Elektronik) (reusch)


Lesenswert?

Die Fuses können nur über die ISP-Programmierung geändert werden. Bei 
der Programmierung mit FLIP läuft im zu programmierenden Controller der 
Bootloader - also ein ganz normales Programm. Und das kann keine Fuses 
ändern!
Die Programmierung des Chips per USB über den Bootloader und FLIP ist in 
erster Linie dazu gedacht, ein Firmware-Update durchzuführen, ohne das 
Gerät öffnen zu müssen.
Wozu die USB-Schnittstelle beim ATMEGA32U4? Einerseits natürlich für den 
besagten Firmware-Update. Auf der anderen Seite lassen sich damit 
Gerätchen realisieren, die per USB mit einem PC kommunizieren können!

von Bitflüsterer (Gast)


Lesenswert?

Welche Fuses willst Du denn konkret ändern?

Die Wirkung CKDIV8, nämlich die Einstellung des Vorteilers für den 
CPU-Takt lässt sich auch während des Programmlaufes sozusagen 
"aufheben", in dem man einfach per Programm einen anderen Vorteiler 
einstellt. Wobei nicht nur der Teiler 8 oder der Teiler 1 möglich ist, 
wie er mit CKDIV8 gewählt wird sondern alle anderen Vorteilerwerte auch, 
die der Chip bietet.

von NewBie20140506 (Gast)


Lesenswert?

Hallo,

vielen Dank für Eure Antworten. Es hat ja ein bißchen gedauert bis zu 
einer Antwort, so dass ich selbst auch Zeit hatte, nachzudenken, und 
tatsächlich kam ich zu einem ähnlichen Schluß wie Rainer Reusch:

Der Umstand, dass der atmega32u4 eine physikalische USB Schnittstellen 
bereitstellen kann, heißt natürlich nicht, dass diese Schnittstelle für 
jegliche Kommunikation zum Chip gedacht ist. Viel mehr könnte sie ja 
auch nur für die Kommunikation mit anderen Geräten innerhalb eines zu 
entwickelnden Programmes bestimmt sein und natürlich für einfache 
Firmwareupgrades...


Besten Dank
NewBie20140506

@Bitflüsterer: CKDIV8 wäre nur der erste Parameter gewesen, den ich 
ändern müßte, es führt wohl nichts an einen Programmierer vorbei.


... immer wieder ein gutes Forum hier!

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.