Forum: Mikrocontroller und Digitale Elektronik Fuses setzen beim AtTiny44


von Christian (Gast)


Lesenswert?

Hallo Leute,

ich versuche, beim Attiny44A die Fuses auf einen externen 16MHz Quarz zu 
setzen, aber ich hantiere überhaupt zum ersten mal mit einem  AVR ISP 
MKII (Programm hochladen klappt schon über avrdude) und ich möchte nix 
falsch machen (bricken). Zuvor hab ich immer nur mit der Arduino IDE 
gearbeitet.

Könnte mir da jemand auf die Sprünge helfen? Ich hab auch solche Online 
Rechner von AVR fürs Fuse setzen gefunden, allerdings komm ich nicht 
ganz dahinter, wie ich die Fuse setzen muss, weil ich die Bedeutung/den 
Unterschied von diesen Startup Times nicht kenne bzw. nicht weiss, ob 
das für mich überhaupt relevant ist.

Das Programm selber ist äußerst überschaubar, vielleicht 50 Zeilen Code.

Bin sehr dankbar für alle Tipps!!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

avrdude -p attiny44 -c avrisp2 -P usb -U lfuse:w:0xef:m

von Christian (Gast)


Lesenswert?

Lieber Jörg,

vielen Dank für die Hilfe. Ich habs mal ausprobiert und scheint auch zu 
klappen aber danach lässt er mich den Code mit der Fehlermeldung
1
avrdude: stk500v2_command(): command failed
2
avrdude: stk500v2_command(): unknown status 0xc9
3
avrdude: stk500v2_program_enable(): cannot get connection status
4
avrdude: initialization failed, rc=-1
5
         Double check connections and try again, or use -F to override
6
         this check.

nicht mehr draufspielen.
Immerhin hab ich rausgefunden, wofür "lfuse:w:0xef:m" steht :)

Grüsse,
Christian

von Christian (Gast)


Lesenswert?

Ach, Verzeihung... nach Strom an- und abziehen klappts doch wieder. Is 
das immer so?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Christian schrieb:
> Ach, Verzeihung... nach Strom an- und abziehen klappts doch wieder. Is
> das immer so?

Könnte sein, dass man das zum Anwerfen des Oszillators braucht?

von Christian (Gast)


Lesenswert?

Ich habe hierzu noch eine andere Frage: Über die Arduino IDE hab ich mir 
die Timer für drei Ausgänge schneller gesetzt, um höhere PWM Frequenzen 
zu erreichen. Wenn ich den Code via Arduino IDE aufspiele, muss ich 
jedoch erst den Bootloader installieren, ansonsten scheinen die Timer 
unverändert.

Der fragliche Code lautet:
1
TCCR0B = TCCR0B & 0b11111000 | 0x01; //Clockdivider Clock0 = 1 -> Clockspeed = 62,5KHz
2
TCCR1B = TCCR1B & 0b11111000 | 0x01; //Clockdivider Clock1 = 1 -> Clockspeed = 31,25KHz

Diesen Vorgang ca. 250 mal für 250 zu programmierende Attinys zu 
wiederholen ist mir zu viel.

Ich denke aber, wenn man das aus dem Programmcode rausnehmen würde und 
die entsprechenden Fuses gleich in der Kommandozeile (i.e. avrdude) 
mitsetzen würde, sollte es doch auch klappen oder nicht?

Vielen Dank für die Hilfe!

von Christian (Gast)


Lesenswert?

Ha! Jetzt hab ichs doch noch hingekriegt! Fuses setzen + die .hex Datei 
inkl. funktionierender 'Fast PWM' flashen in einer Codezeile, hurra! :D

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.