Forum: Mikrocontroller und Digitale Elektronik WWDG STM32 Early Wake Up Interrupt


von Bert S. (kautschuck)


Angehängte Dateien:

Lesenswert?

Hi,

Ich möchte in meinem System den Watchdog verwenden, aber vor dem Reset 
sollen noch ein paar Daten im EEPROM gepeichert werden.

Nun habe ich versucht, den early-wakeup Interrupt zu verwenden, worin 
ich dann den EEPROM beschreiben würde. Jedoch resetet es mir das System 
ohne jemals was in den EEPROM geschrieben zu haben. Der Early Interrupt 
kommt ja ab dem Wert 0x40, das System wird aber bei 0x3F zurückgesetzt, 
daher bleibt nur ein Clock Cycle, was sehr wenig ist.

Was kann ich tun, damit ich gewährleisten kann, dass das System zuerst 
fertig in den EEPROM schreibt und erst dann resetet? Kann ich den 
Watchdog (WWDG) irgendwie verzögern?

von Jim M. (turboj)


Lesenswert?

Ich hätte jetzt einfach den Prescaler weiter hochgesetzt, falls möglich.

von Bert S. (kautschuck)


Lesenswert?

Jim M. schrieb:
> Ich hätte jetzt einfach den Prescaler weiter hochgesetzt, falls
> möglich.

Der geht leider nur maximal 8. Mit den aktuellen Einstellungen bin ich 
am Maximum.

von . . (Gast)


Lesenswert?

Bekomme ich noch eine Scheibe Salami? Och, bitte bitte.
STM32? Welcher denn, genau? was steht denn in der Errata? 0x3F, ist doch 
doof, der sollte bei 0x0 reseten.
Sehr suspekt das Ganze.

von Bert S. (kautschuck)


Lesenswert?

.                                                . schrieb im Beitrag 
#5468692:
> Bekomme ich noch eine Scheibe Salami? Och, bitte bitte.
> STM32? Welcher denn, genau? was steht denn in der Errata? 0x3F, ist doch
> doof, der sollte bei 0x0 reseten.
> Sehr suspekt das Ganze.

Ein STM32F303K8T6, dabei verwende ich den WWDG:

https://www.st.com/resource/en/datasheet/stm32f303r8.pdf

Im Errata ist nichts erwähnt.

von . . (Gast)


Lesenswert?

hmm, nee ist doch nicht falsch, das ist so konstruiert. :D it's not a 
bug...
Also der Reset erfolgt tatsächlich bei 0x3F, da bleibt dir nix anderes 
übrig, als erste Aktion den Watchdog rück zu setzen, und dann deine 
Daten zu sichern.

von Bert S. (kautschuck)


Lesenswert?

.                                                . schrieb im Beitrag 
#5468859:
> Also der Reset erfolgt tatsächlich bei 0x3F, da bleibt dir nix anderes
> übrig, als erste Aktion den Watchdog rück zu setzen, und dann deine
> Daten zu sichern.

Im Interrupt den Watchdog zurücksetzen und dann ein Flag setzten, damit 
er das nächste mal resetet?

Edit: Ok, das scheint zu funktionieren.

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.