Forum: Mikrocontroller und Digitale Elektronik Atmel Neuling, flash *.hex aber was ist mit den fuses


von Stefan S. (mexakin)


Lesenswert?

Hallo,

kurze Frage, da ich die Atmel toolchain nicht gewohnt bin:

Ich konnte ein hex file über AtmelStudio7 erfolgreich ( laut Atmel 
Studio) auf einen Atmel 644 laden, kann es sein, dass ich zusätzlich 
irgendwie noch die fuse bits setzen muss, da das Programm zwar irgendwie 
funktinoiert, sprich ich sehe eine PWM ein paar Signal leds direkt an 
GPIO pins leuchten auch, aber zB das angeschlossene LCD funktinoiertt 
nicht.

Das ganze ist quasi ein "Kit", daher steck ich im Code nicht drin, der 
ist aber schon getestet von vorgängern, also vermute ich ein Fehler in 
meine toolchain.

Gibt es hexfiles die auch fuses im Atmel setzen? Muss ich was im 
AtmelStudio einstellen, kann mir einer einfach helfen oder muss ich 
einfach mehr Zeit in die Details ver(sch)wenden :)

ich bin MSP430 Nutzer, da ist die Grundstruktur IMHO wesentlich 
einleuchtender, da wird der Prozessor einfach komplett bespielt und die 
Register selber gesetzt im Code, aber das kann ja vielleicht na der 
Architektur liegen.

Vielen Dank euch schonmal.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Stefan S. schrieb:
> aber schon getestet von vorgängern, also vermute ich ein Fehler in
> meine toolchain.

Die 'Vorgänger' sollten aber Hinweise geben können, wie der Mega644 
gefused werden soll. Wenn da z.B. ein externer Quarz in der Schaltung 
ist, sollte man also auf diesen fusen, damit der MC mit dem richtigen 
Takt läuft. Ein frischer AVR vom Händler läuft normalerweise mit dem 
internen RC-Oszillator auf etwa 1MHz, die sich durch einen Takt von 8MHz 
und gesetzter CKDIV8 Fuse ergeben, diese Fuse aktiviert einen Taktteiler 
von 8.

Mit der Toolchain hat das erstmal nichts zu tun, den du hast ja ein 
fertiges HEX in den MC geflasht, es also nicht selber kompiliert.

von Stefan S. (mexakin)


Lesenswert?

ja weiss er:

You decided to not use a makefile, so you have to write the fuses 
yourself :)

The values are:

    LFUSE = ff
    HFUSE = d6
    EFUSE = fd


Aber da ich bisher in meinem Leben ca. 8 stunden in Atmel gesteckt habe, 
hab ich eben tausende Anfängerfragen, wie die ob im hex file die fuses 
mitdrinstehen, oder wie du ja gesagt hast, die fuses nur drinstehen, 
wenn ich das programm selber kompiliert hätte? Irgendwie ist mir die 
Logik dahinter noch verschlossen, wieso man einen µC programmieren und 
zusätzlich nochwas an "fuses" setzen sollte, aber manche Sachen muss man 
ja einfach als gegeben hinnehmen.

Weiterhin dankeschön fürs mitlesen und helfen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Stefan S. schrieb:
> wie die ob im hex file die fuses
> mitdrinstehen, oder wie du ja gesagt hast, die fuses nur drinstehen,
> wenn ich das programm selber kompiliert hätte?

Oh, da haben wir ein Missverständnis - habe mich vermutlich falsch 
ausgedrückt. Die Fuses bei AVR sind ein vom Programm völlig unabhängiges 
Kapitel und müssen unabhängig vom HEX File gesetzt werden, im Gegensatz 
zu z.B. PIC werden die Fuses auch nicht im Programm gesetzt, sondern 
sind ganz extra zu behandeln.
Nachdem du also das HEX in dem MC geflasht hast, setzt du in einem 
gesonderten Programmierzyklus die Fuses.

von mh (Gast)


Lesenswert?

Im HEX-File sind die Fuses bei Atmel nie dabei.
Man kann lediglich ELF-Files erstellen, bei denen die Fuses (und noch 
mehr) mit drin sind (Production ELF File).

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.