Hi, ich bitte das "halb englische" Subject zu entschuldigen, denke aber das der Betreff die Frage am besten beschreibt: ich bin beim lesen in den FAQ's verschiedentlich darüber gestolpert, das das enablen der JTAG Funktionalität bestimmte Pins in ihrer Funktion überschreibt. ... oder man den falschen Oszilatro wählen kann ... Bisher hab ich wohl Glück gehabt - aber - wo kann ich den "Vorgeben" welche Fuses gesetzt bzw. gelöscht sein sollen ? ich sitz jetzt gerade nicht vor meinem Entwicklungsrechner - kann mich aber auch nicht erinnern, z.B. im MFile Editor irgendwas in Richtung Fuses gesehen zu haben - was dann Parameter für avrdude setzen würde. Ich sehe nur das beim Programmieren wohl die Fuses "gesichert" und hinterher wieder geschrieben werden... Bitte erleuchtet mich :-) Grüße, Stefan
Datenblatt lesen, die hexadezimalen Fuse-Werte zusammenrechnen, dann "avrdude -t" benutzen.
Also die Fuses enablest du total easy wenn du bspw. Ponyprog used und dann auf den einen Knopf pressed um die Fuses zu setten. Aber Attention: Wenn du Blasenschwäche hast pass auf, dass du dich nicht verpissed...
Oh, "ponyprog" und "total easy"? Das erinnert mich an die vielen Berichte über ATmega8 mit versehentlich gesetzten RSTDSBL-Fuses (ganz zu schweigen von den noch mehr Berichten über falsche Oszillator- Fuses, aber das ist wenigstens nicht völlig tödlich).
@ Jörg: Ok. - Wäre es möglich und - wuerde es Sinn machen - das in MFile zu integrieren ? @ Daniel: Thanx für this altenative Ich will have a blick on it ;-) Grüsse, Stefan
Nein, Mfile ist nicht der geeignete Ort dafür. Die Fusebits muss man ja nur einmal setzen, nicht bei jedem `make program'. Das avrdude-gui wäre dafür der geeignete Ort, aber das ist noch ziemlich alpha derzeit.
Mir würde ja schon helfen wenn irgendwo stehen würde (sinngemaess) Wenn die fuse X gebrannt werden soll (Zustand vorher="1", Zustand nachher="0") dann muss das entspechendende Bit im zu programmierenden "Byte" gesetzt/gelöscht sein. avrdude ... -U lfuse:w:"Byte" Zum ausprobieren (und evtl. vernichten) sind mir die AVRs eigentlich zu schade.
Komisch, ich habe es mit Datenblatt lesen bislang immer noch verstanden, was man als Fuse programmieren muss. Klar, man liest sich das dreimal durch -- aber im Gegensatz zum Geklicker von Ponyprog ist man sich danach auch sicher, was man tut.
Es steht wirklich im Datenblatt. Abschnitt memory programming. Im Zweifel einfach im terminal-mode avrdude ... -t die aktuellen fuses eines neuen AVR auslesen (dump lfuse, dump hfuse....) und mit dem Default-Werten laut Datenblatt vergleichen, das bringt etwas "Gefuehl" fuer die Angaben und klärt auch die Verwirrung zwischen 0/1, gesetzt/nicht-gesetzt und programmiert/nicht-programmiert. Bei aktuellem avrdude (cvs-Version aus WinAVR 2/05) zum schreiben von fuses/locks sicherstellen, dass der "safemode" ausgeschaltet ist (Option -u).
Anders ausgedrückt: Wenn ich z.B den Wert 55 als Wert für eine fuse mit avrdude programmiere, lese ich nachher 55 aus oder AA? Ich habe da schlechte erfahrungen gemacht :(
Wenn du 55 schreibst, liest du auch 55. Allerdings bemühst du dann das Datenblatt um herauszufinden, was die 55 genau bedeutet.
Hallo Jörg, ... hm - ich denke schon, das die Info zum Projekt gehört. Du hast insofern recht, das man sie nicht jedesmal setzten muss - man könnte ja erst mal die Fuses lesen - und sie nur setzten wenn sie "falsch" sind. Es hätte aber den Vorteil, dass wenn man ein Projekt "später" mal wieder öffnet, - man jedoch einen neuen Chip gleichen Typs benutzt ( und per isp programmieren möchte ) - man so auch "automatisch" die Fuses für das Projekt korrekt gesetzt bekäme. Sonst muss man das irgendwo händisch Verwalten. Grüße, Stefan
Ich hatte schon einmal die Idee, ob man sie nicht irgendwie im C-Quellcode mit verwalten könnte, so in der Art FUSES(0x42, 0x33, 0x88); wobei sich die Werte natürlich auch symbolisch setzen lassen könnten. Sollte über den C-Präprozessor machbar sein. Günstig wäre natürlich eine von Atmel nominierte Syntax dafür, die dann jeder Compilerhersteller umsetzen kann.
Hallo Jörg,
> (...)
Ja so in etwa oder eben auch per #define Fuse_Jtag active
Grüße,
Stefan
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.