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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.