Watchdog erweckt Tiny25

Gast #1990037
Lesenswert?

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
Gast #1990072
Lesenswert?

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.
Gast #1990082
Lesenswert?

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
}
Gast #1990269
Lesenswert?

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
Gast #1990390
Lesenswert?

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ß.
Gast #1990405
Lesenswert?

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ß

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