mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fuse-Einstellungen online berechnen [URL]


Autor: Mark Hämmerling (haemi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Salve,

angeregt durch Falks Idee habe ich mal einen Online-Rechner für AVR
Fuses geschrieben.
Als Datenbank verwendet er seit dem Rewrite nunmehr die originalen
XML-Files von Atmel. Das hat den Vorteil, daß das Skript denkbar
einfach zu warten und zu updaten ist. Beim Testen habe ich jedoch
feststellen müssen, daß viele der Angaben in den XML-Files nicht mit
denen in den Datenblättern übereinstimmen. Außerdem fehlen bei manchen
Part-Definitionen alle oder einige Fusebits (z.B. beim Mega32 fehlen
SUT1:0, obwohl beim Mega16 vorhanden), dann sind die Defaults in den
Optionstexten und Datenblättern wieder andere als die Defaults der
einzelnen Fusebits. Alles in allem sind die XML-Files von Atmel ein
totales Chaos und völlig inkonsistent. Ich selbst verwende AVRStudio
nicht, und habe das erste Mal mit diesen Files zu tun. Sicherlich ist
dieses Chaos in Anwenderkreisen schon länger bekannt. Beim Tiny12 z.B.
konnte ich keinerlei Fuse-Definitionen finden (daher auch keine
Defaults für die einzelnen Bits!), nur die fertigen Maskenoptionen.
Falls jemand gefixte Versionen der XML-Files hat oder Korrekturen
beitragen möchte, bitte hier melden.
Das Skript selbst sollte prinzipiell funktionieren, ist nichts desto
trotz aber noch recht wenig getestet. Wer also Fehler findet (bitte -
wenn möglich - unterscheiden zwischen fehlerhaften Angaben im XML und
Programmfehlern), oder noch die eine oder andere Idee hat, bitte auch
hier posten.
Falls jemandem auffällt, daß das Programm trotz korrekter XML-Datei
fehlerhafte Ausgaben produziert, bitte ich um Hinweise und ggf.
Vorschläge, wie man die Dateien besser parsen kann.

Bei anhaltendem Interesse würde ich eine eigene Projektseite auf
SourceForge anlegen. Falls jemandem ein originellerer Name als FuseCalc
oder sowas einfällt... ich bin für Vorschläge offen.

So, und nun die momentane Adresse: http://palmavr.sf.net/fc/

Viel Spaß beim Benutzen! Das Feedback auf die erste Version war ja
schon sehr positiv. :)

Mark

Autor: Stefan Sczekalla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank !

Der Tag ist gerettet.

Grüße,

     Stefan

Autor: xeus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
super idee!!!

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich kann keinen Fehler am Programmer im AVR-Studio finden, da ist
nirgends nicht ein Chaos.

Die Fuses sind idiotensicher erläutert und man braucht nur die
gewünschten Optionen anzuklicken.

Was man daran noch besser machen soll, fällt mir bei bestem Willen
nicht ein.


"Ich selbst verwende AVRStudio nicht"

Na dann ist mir alles klar !
Ehe man das Fahrrad ein 2. mal erfindet, sollte man das AVR-Studio
vielleicht mal ausprobieren.


Peter

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mark - Wunderbar. Das macht vieles einfacher!

@Peter: Ich verwende AVR-Studio auch nicht. Da meine Toolchain und,
besonders weitere Programme zur Hardwaresteuerung, unter Linux laufen,
ist mir das (noch) zu umständlich.
Vielleicht werde ich es mal unter vmware installieren.....

Bis dahin ist Marks Arbeit eine tolle Erleichterung.

Falk
P.S.: Ich will nicht Windows benutzen. Ich habe mich zu sehr an meine 8
unabhängigen Desktops gewöhnt. Einer alleine würde mich zu sehr
einschränken.

Autor: Mark Hämmerling (haemi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter:

Na Du bist ja gut drauf heute. Es zwingt Dich doch niemand, dieses
Frontend zu verwenden. Mal auf die Idee gekommen, daß viele Leute
AVRStudio nicht nutzen, weil ihnen andere IDEs besser gefallen, oder
weil sie gar kein Windows verwenden, und daß diese eine Funktionalität
mehr oder weniger das einzige ist, was ihnen wirklich fehlt?

Wenn AVRStudio alle Default-Werte korrekt einstellt, dann freut mich
das für die Anwender. Aber in den XML-Files stehen nun mal
gegensätzliche Daten. Ich hab mir das nicht ausgedacht. Du kannst ja
mal aus Spaß ein paar AVR-Typen im Fuse Calculator auswählen und dann
mal kucken, ob z.B. in dem Feld mit den Clock options auch der Anhang
"; default value" steht. Falls nicht, kannst Du davon ausgehen, daß
das XML-File inkonsistent ist. Nur mal zwei Beispiele von vielen:

Beispiel ATtiny2313.xml:

  <FUSE5>
    <NAME>SUT1</NAME>
    <TEXT>Select start-up time</TEXT>
    <DEFAULT>1</DEFAULT>
  </FUSE5>
  <FUSE4>
    <NAME>SUT0</NAME>
    <TEXT>Select start-up time</TEXT>
    <DEFAULT>0</DEFAULT>
  </FUSE4>
  <FUSE3>
    <NAME>CKSEL3</NAME>
    <TEXT>Select Clock Source</TEXT>
    <DEFAULT>0</DEFAULT>
  </FUSE3>
  <FUSE2>
    <NAME>CKSEL2</NAME>
    <TEXT>Select Clock Source</TEXT>
    <DEFAULT>0</DEFAULT>
  </FUSE2>
  <FUSE1>
    <NAME>CKSEL1</NAME>
    <TEXT>Select Clock Source</TEXT>
    <DEFAULT>1</DEFAULT>
  </FUSE1>
  <FUSE0>
    <NAME>CKSEL0</NAME>
    <TEXT>Select Clock Source</TEXT>
    <DEFAULT>0</DEFAULT>
  </FUSE0>

Dazu im Widerspruch:

  <TEXT11>
    <MASK>0x3F</MASK>
    <VALUE>0x24</VALUE>
    <TEXT>Int. RC Osc. 8 MHz; Start-up time: 14 CK + 65  ms; [CKSEL=0100
SUT=10]; default value</TEXT>
  </TEXT11>


Beispiel ATmega16.xml:

  <FUSE5>
    <NAME>SUT1</NAME>
    <TEXT>Select start-up time</TEXT>
    <DEFAULT>0</DEFAULT>
  </FUSE5>
  <FUSE4>
    <NAME>SUT0</NAME>
    <TEXT>Select start-up time</TEXT>
    <DEFAULT>0</DEFAULT>
  </FUSE4>
  <FUSE3>
    <NAME>CKSEL3</NAME>
    <TEXT>Select Clock Source</TEXT>
    <DEFAULT>0</DEFAULT>
  </FUSE3>
  <FUSE2>
    <NAME>CKSEL2</NAME>
    <TEXT>Select Clock Source</TEXT>
    <DEFAULT>0</DEFAULT>
  </FUSE2>
  <FUSE1>
    <NAME>CKSEL1</NAME>
    <TEXT>Select Clock Source</TEXT>
    <DEFAULT>0</DEFAULT>
  </FUSE1>
  <FUSE0>
    <NAME>CKSEL0</NAME>
    <TEXT>Select Clock Source</TEXT>
    <DEFAULT>1</DEFAULT>
  </FUSE0>

Dazu im Widerspruch:

  <TEXT9>
    <MASK>0x3F</MASK>
    <VALUE>0x21</VALUE>
    <TEXT>Int. RC Osc. 1 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0001
SUT=10]; default value</TEXT>
  </TEXT9>


Beispiel ATmega32.xml:

Hier fehlen die Bitdefinitionen für SUT1 und SUT0 einfach. Trotz der
nahen Verwandschaft mit dem ATmega16 (in dessen XML sie drin stehen).


Daher ja meine Frage, ob es eine Möglichkeit gibt, die XML-Files besser
zu parsen, um an die gewünschten Infos ranzukommen. Ich konnte beim
Lesen nichts finden.

Auf Deine Frage, was man bei der Auswahl noch besser machen könnte:
Solch wenig hilfreiche Angaben wie "CKOPT fuse (operation dependent of
CKSEL fuses); [CKOPT=0]" lieber in die Kombination mit CKSEL/SUT
einbinden und wie im Datenblatt erläutern. Daß das einen anderen Aufbau
der XML-Files bedeuten würde, ist mir klar (weil sich die Masken dann
über mehrere Fuse-Bytes erstrecken müßten), und daß es aus diesem
Grunde nicht gemacht wurde, kann ich mir auch denken. Aber daß man -
wie Du meinst - gar nichts daran verbessern könne, so ist es ja nun
auch nicht.

Wie gesagt, meine Aussagen beziehen sich alle auf die XML-Files selbst.
Was AVRStudio draus macht, ist dessen Angelegenheit. Aber wenn ich nur
diesen Input habe, muß ich daraus das beste machen.

Ich werde nachher nochmal in AVRStudio nachsehen und konkrete Beispiele
vergleichen. Leider wird das an den m.E. fehlenden/irreführenden Angaben
in den XML-Files nichts ändern.

Mark

Autor: Mark Hämmerling (haemi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Salve,

habe gerade erfahren, daß die c't mein Projekt verlinkt hat,
allerdings unter der alten URL (Server haemi.dyndns.org). Dieser Server
steht hier im Flur und ist nicht hochverfügbar. Ich möchte aus diesem
Anlaß nochmal kurz darauf hinweisen (hallo, liebe c't-Leser), daß die
aktuelle URL auf sourceforge.net liegt:

http://palmavr.sf.net/fc/

Die alte Adresse war temporär für die Leser dieses Forums bestimmt (da
hat die c't den Link wohl her). Hoffe, daß die Linkliste
(http://www.heise.de/ct/ftp/projekte/ct-bot/linkliste.shtml) meiner
Bitte entsprechend bald aktualisiert wird. Vielleicht liest der
entsprechende Redakteur ja mit. :)

Mark

Autor: luxx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich habe mal eine frage zu der berechnung.
ist ein 4MHz Quarz mit 22pF beschaltung "High frequent" oder
"middle" und welche
startupzeit ist typisch?

luxx

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.