Forum: Mikrocontroller und Digitale Elektronik eFuse bei mega 328p lässt sich nicht setzen


von A. F. (elagil)


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

von A. F. (elagil)


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

von S. Landolt (Gast)


Lesenswert?

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.

von S. Landolt (Gast)


Lesenswert?

Vermutlich geht es, wenn Sie als efuse 0x07 angeben.

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

von A. F. (elagil)


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?

von Mathias O. (m-obi)


Lesenswert?

Adrian F. schrieb:
> 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?

Siehe Table 9-5. Full Swing Crystal Oscillator operating modes

Ist es ein Low Power oder Full Swing?

von A. F. (elagil)


Lesenswert?

Dazu finde ich im Datenblatt nichts. Wie erkennt man so etwas?

Es handelt sich um einen ATS184BSM-1E.

Datenblatt -> 
http://www.ctscorp.com/components/Datasheets/008-0309-0.pdf

Relevante Informationen (vielleicht):
ESR 40 Ohm (max)
Drive Level: 100 uW bis 1000 uW

Bedeutet das, wenn der Kristall die Leistung im full-swing mode 
verträgt, kann ich ihn einfach benutzen?

von S. Landolt (Gast)


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.

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.