eFuse bei mega 328p lässt sich nicht setzen

OP #4301605
Lesenswert?

Hallo,

ich habe einen Atmega 328p in Verwendung und möchte ihn mit dem 
angeschlossenen Baudquartz (18432000 Hz) benutzen. Dazu möchte ich die 
Fuses wie folgt setzen:

lfuse: 0xff
hfuse: 0xd9
efuse: 0xff

Leider zeigt mir avrdude an:
1
avrdude -c avrispmkII -p m328p -B 100 -U efuse:w:0xff:m
2

3
avrdude: AVR device initialized and ready to accept instructions
4

5
Reading | ################################################## | 100% 0.01s
6

7
avrdude: Device signature = 0x1e950f
8
avrdude: reading input file "0xff"
9
avrdude: writing efuse (1 bytes):
10

11
Writing |                                                    | 0% 0.00s ***failed;  
12
Writing | ################################################## | 100% 0.05s
13

14
avrdude: 1 bytes of efuse written
15
avrdude: verifying efuse memory against 0xff:
16
avrdude: load data efuse data from input file 0xff:
17
avrdude: input file 0xff contains 1 bytes
18
avrdude: reading on-chip efuse data:
19

20
Reading | ################################################## | 100% 0.00s
21

22
avrdude: verifying ...
23
avrdude: verification error, first mismatch at byte 0x0000
24
         0x07 != 0xff
25
avrdude: verification error; content mismatch
26

27
avrdude: safemode: efuse changed! Was ff, and is now 7
28
Would you like this fuse to be changed back? [y/n] n
29
avrdude: safemode: Fuses OK (E:FF, H:D9, L:FF)
30

31
avrdude done.  Thank you.

Was kann da schief gegangen sein? Die anderen Fuses ließen sich setzen. 
Standardmäßig ist die eFuse auf 0xff, daher weiß ich nicht, wieso sie 
jetzt auf 0x07 gesetzt ist.

Danke im Voraus
OP #4301641
Lesenswert?

Der Atmega lässt sich übrigens trotzdem flashen und scheint auch mit ~18 
MHz zu laufen. Ich habe einen timer interrupt eingerichtet, der bis 
18432000 zählt und eine LED schaltet. Sie blinkt mit 1 Hz.

Flashen dauert allerdings deutlich länger als ich es kenne (600 byte 
Programm in 10 Sekunden), geflasht mit:
1
avrdude -c avrispmkII -p m328p -U flash:w:main.hex:i
OP #4302063
Lesenswert?

S. Landolt schrieb:
> Da gab es doch mal eine Diskussion, dass nicht definierte
> fuse-bits als
> 0 behandelt werden. Ist schon eine Weile her, und ich finde es nicht
> mehr.

Ja, genau das war das Problem.

S. Landolt schrieb:
> Vermutlich geht es, wenn Sie als efuse 0x07 angeben.

Habe ich gemacht, danke! Das funktioniert.

S. Landolt schrieb:
> Hinweis am Rande: nach Table 9-3 ist 'Low Power Crystal Oscillator
> Operating Mode' nur bis 16.0 MHz definiert.

Wie kommt man eigentlich sonst auf bis zu 20 MHz?
Gast #4302313
Lesenswert?

Der Low-Power-Modus ist eigentlich gedacht, um die Stromaufnahme zu 
reduzieren, nicht um den Quarz zu schonen, Ihr Quarz verträgt sicher den 
Full-Power-Modus. Umgekehrt funktioniert es, wie Sie ja gesehen haben, 
auch bei Low-Power über 16 MHz, es wird nur störempfindlicher.

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