Fusebits setzen mit AVRDUDE Linux

#3880927
Lesenswert?

Hi,

Möchte mit avrdude unter Linux die Fusebits für meinen Atmega 328p 
setzen
habe diese Werte :

LOW 0xFF
HIGH 0xD9
Extendet 0xFC

Habe einen externen Quarz 20MHz, möchte den Takt nicht durch 8 Teilen 
und
möche ein BROWN-OUT Detection Level von 4,3V.
Könnte jemand die Werte überprüfen denn ich möchte den Chip nicht 
verfusen. Der Chip ist ein 32TQFP den kann ich nicht retten wenn ich die 
Oszillatoreinstellungen falsch habe
Vielen Dank schon mal.

Florian
Moderator Persönliche Seite #3880961
Lesenswert?

Solange du nicht gerade Bit 7 in der high fuse auf 0 setzt (RSTDISBL),
ist die Gefahr des „Verfusens“ gering.  Alles andere bekommst du zur
Not noch durch Einspeisen eines externen Taktes wieder hin.

Hinweis: ggf. willst du EESAVE noch setzen, damit der EEPROM-Inhalt
beim chip erase erhalten bleibt?  Dann wäre hfuse = 0xd1.

Deine lfuse würde den low power crystal oscillator auswählen.  Bist
du dir sicher, dass du das willst?  Der wird nur bis 16 MHz empfohlen.
Kann sein, dass er auch noch schneller geht, aber kann auch sein,
dass die Treiberamplitude dann nicht mehr für einen sauberen Takt
genügt.  Sofern es dir nicht aufs Energiesparen ankommt, währe der
full swing crystal oscillator unkritischer.  Das würde eine lfuse
von 0xf7 ergeben für konservatives Timing beim Anschwingen.  Da du
Brownout gesetzt hast, kannst du auf den zusätzlichen Delay nach
RESET auch verzichten, sodass SUT[1:0] = 0b01 genügt, was dann einem
lfuse-Wert von 0xd7 entspricht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren