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
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
@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.
@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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.