Mahlzeit allerseits Mein Tiny25 ruht zu 99% der Zeit und ist somit im POWER DOWN Modus. Nun habe ich einen Watchdog hinzugefügt. einfach nur mit wdt_enable(WDTO_1S); und wdt_reset(); Meines erachtens sollte er doch hiermit nie einen Interrupt auslösen, sondern nur einen Reset machen richtig? Ist es nun normal dass dieser Reset auch während des POWER DOWN ausgeführt wird und der Tiny somit wieder startet? Ich dachte da wäre nur wenn ich einen Interrupt eingestellt habe für den WDT? Denn so würde das heißen, dass man den WDT immer disablen muss bevor man in den POWER DOWN Modus geht, richtig? Schöne Grüße Patrick
Ja, ein Watchdog ist auch während Power-Down aktiv. Was wäre ein Wachhund, der in der Nacht schläft ;-)
Der Watchdog kann je nach Einstellung einen Interrupt, und danach einen Reset auslösen, oder einen Reset alleine, aktiv ist der Watchdog auch im Power Down. Wenn es ums Stromsparen geht kann man beim Tiny45 (25 leider nicht) zusätzlich den Brownout-Dedektor abschalten, (bei 25 geht das nur über Fuse) was ganz schön was bringt (einige µA). Ein Watchdog, der im Powerdown nicht geht, ist suboptimal. Ein Blick ins Datenblatt verrät die richtige Bit-Einstellung.
Bau doch eine "leere" ISR für den watchdog. Er wacht dann sehr kurz auf, rechnet für ein paar Takte und legt sich wieder schlafen. Auf 1s gesehen ist der on-Anteil ungefähr 10^-6 - also vernachlässigbar.
1 | // watchdog timer isr
|
2 | // watchdog interrupts will be disabled when entering this ISR by hardware
|
3 | ISR(WDT_vect){ |
4 | //reenable interrupts, else cpu will reset next WDT timeout
|
5 | WDTCR |= (1 << WDIE); |
6 | }
|
Danke für die Antworten! Ok, der schläft also nicht ;) danke! Ich schalte den Watchdog einfach ab vor dem POWER DOWN. Sehe keinen Grund wieso der an bleiben sollte. Was ich nicht verstehe, was es mit dem Brownout zu tun hat? Wenn der WDT aktiv ist, heißt das doch nicht automatisch dass auch der Brown Out aktiv ist oder? Schöne Grüße Patrick
Bei Brownout ging es in diesem Zusammenhang wohl nur um das Thema Stromsparen, ansonsten hat das nichts mit Watchdog zu tun. Brownout braucht so ich glaub 10-15 uA. Ich betreibe aber fast nichts ohne Brownout, die Gefahr undefinierter Hänger ist einfach zu groß.
Hallo Winfried! naja bei mir wird die Stromversorgung sicher nicht unter 3V fallen. Und falls doch, sollte das nicht sowieso mit dem Watchdog abgefangen werden können? Schöne Grüße Patrick
Hallo, Hab es mir nochmal genauer angesehen, ich betreibe ihn mit den internen 9.6MHz RC-Oszillator, die Spannung geht definitiv nie unter 2.5V ( bis 2.7V ist garantiert das er bis 10MHz läuft, könnte also schon ein Problem sein ? ) Wäre es sinnvoll hier den BOD auf 1.8V ( laut DBL dann zw. 1.6-2V ) einzustellen? Schönen Gruß
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.