Forum: Mikrocontroller und Digitale Elektronik ATmega644 benötigt Watchdog trotz unprogrammierter Fuse WDTON


von Doktor Gnadenlos (Gast)


Lesenswert?

Vor mir liegt ein ATmega644-20PU. Im Lieferzustand ist dessen Fuse WDTON 
unprogrammiert, also auf logisch '1'. Ein Watchdog ist nicht 
erforderlich - in der Theorie.
De facto bekommt der Controller aber alle paar Millisekunden einen Reset 
verpasst. Das läßt sich nur vermeiden, indem man den Watchdog triggert, 
obwohl weder die Fuse WDTON noch das Register WDTCSR angefasst wurde.
Zunächst hatte ich das Programmierwerkzeug, AVR ISP mit einem 
Paralleladapter, in Verdacht. Das liess sich aber nicht erhärten, weil 
die Fuse auch beim Auslesen über LPM Instruction korrekt dargestellt 
wird.

Der Workaround ist trivial, schlicht den Watchdog triggern, wohler wäre 
mir aber doch bei einer schlüssigen Begründung.

Momentan habe ich keine Erklärung für das Verhalten.

von Peter D. (peda)


Lesenswert?

Es gibt 2 Möglichkeiten:

1.
Du hattest die Watchdog-Fuse eingeschaltet und danach die VCC nicht 
abgeschaltet. Diese Fuse wird erst beim Ausschalten gelöscht.


2.
Wenn die VCC nicht von 0V an schnell und monoton steigt, kann das 
Poweron-Reset versagen. In dem Fall kann auch das WDRF-Bit zufällig 
gesetzt sein.

Für hohe Zuverlässigkeit muß man deshalb auch das Brownout-Reset 
aktivieren und nach dem Reset WDRF löschen und den Watchdog disablen.
Steht auch in einer App-Note drin.


Peter

von Doktor Gnadenlos (Gast)


Lesenswert?

Vielen Dank für den Hinweis.
Das erste Szenario war zutreffend.
Die Änderung zumindest dieser Fuse wird erst nach einer 
Spannungsunterbrechung wirksam. Ein Reset ist nicht ausreichend.

Beitrag #7169388 wurde vom Autor gelöscht.
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.