Forum: Mikrocontroller und Digitale Elektronik Watchdog frisst zuviel Strom bei Batterie Anwendung


von M. G. (ixil96)


Lesenswert?

Hallo,

ich habe einen Sensor mit einem LoRa Modul (RN2483A) gebaut und es 
werden im 1/2 Stundentakt Daten an ein Gateway übermittelt.

Als MCU habe ich einen STM32L010 im Einsatz welcher aus dem 16MHZ HSI 
Clock die gesamte Peripherie mit 8MHz taktet.

Die MCU sowie das RN2483A Modul befinden sich also die meiste Zeit im 
sleep mode. Der Watchdog (wird unabhängig vom LSI RC mit 37kHz getaktet) 
ist mit einem Timeout von 32 Sekunden eingestellt. Die MCU wacht per 
RTC-Interrupt alle 20 Sekunden kurz auf um den Watchdog counter zurück 
zu setzen.

Das ganze System mit Watchdog verbraucht 125µA im sleep mode (ohne 
Watchdog 38µA).

Die Frage ist nun, ist ein Watchdog wirklich nötig? Wie ist eure Meinung 
dazu?

von Gerald K. (geku)


Lesenswert?

Welche Batterien sind im Einsatz (Technologie, Spannung, Kapazität, 
Anzahl)?

Wie lange halten die Batterien?

Wie sieht die Spannungsversorgung aus (Kapazität Elkos, LIC, DC/DC 
Wandler)?

Wie wird der Sensor noch aufgeweckt außer über den Watchdog 
(Portinterrupt, Timer)?

Wo wird der Watchdog aufgezogen?

Sind in den 125µA die aktiven Phasen als Mittelwert enthalten?

von MaWin (Gast)


Lesenswert?

M. G. schrieb:
> Die Frage ist nun, ist ein Watchdog wirklich nötig

In industriellen Anforderungen sag ich mal ja.
Bei Hobbyschaltungen verzichtbar.

Was passiert denn, wenn der uC mal hängen bleibt ? Er sendet nicht mehr. 
Stört das wen ? Kommt dann jemand um ihn wieder in Betrieb zu nehmen ?

Wenn es keinen stört: spar dir die ganze Bastelei.

von M. G. (ixil96)


Lesenswert?

MaWin schrieb:
> M. G. schrieb:
>> Die Frage ist nun, ist ein Watchdog wirklich nötig
>
> In industriellen Anforderungen sag ich mal ja.

Die Sensoren werden vergossen und sollten mit der Batterie mind. 5 Jahre 
halten. Das ist mit dem Watchdog bei dem Stromverbrauch nicht möglich 
und eine größere Batterie kann (sollte) nicht verbaut werden.

von M. G. (ixil96)


Lesenswert?

Gerald K. schrieb:
> Welche Batterien sind im Einsatz (Technologie, Spannung, Kapazität,
> Anzahl)?
Eine Li-ION Zelle (3,6V, 3600mAh, Tadiran)
> Wie lange halten die Batterien?
Nun ja, je nach Temperatur, Stromverbrauch...sollten sie rechnerisch 
ohne Watchdog ca. 8 Jahre durchhalten.
> Wie sieht die Spannungsversorgung aus (Kapazität Elkos, LIC, DC/DC
> Wandler)?
Kein DC/DC - direkt von der Batterie
> Wie wird der Sensor noch aufgeweckt außer über den Watchdog
> (Portinterrupt, Timer)?
RTC timer interrupt
> Wo wird der Watchdog aufgezogen?
WDT Reset kurz alle 20 Sekunden
> Sind in den 125µA die aktiven Phasen als Mittelwert enthalten?
Nein, da kommen noch ein paar µA (ca. 15) dazu.

von A. S. (Gast)


Lesenswert?

Dann mach den Watchdog doch extern. Egal ob per mini-µC oder RTCC oder 
einfach per Kondensator an der Reset-Leitung. Möglichkeiten gibt es 
zuhauf, da ja extrem viel Strom (für heutige Verhältnisse) zur Verfügung 
steht.

von MaWin (Gast)


Lesenswert?

M. G. schrieb:
> und eine größere Batterie kann (sollte) nicht verbaut werden

Dan nimm halt einen geeigneteren uC.

Unter 10uA inkl. Watchdog geht.

von Pandur S. (jetztnicht)


Lesenswert?

Es gibt auch externe Timer, welche unter 1uA ziehen.

von Gerald K. (geku)


Lesenswert?

M. G. schrieb:
> Nun ja, je nach Temperatur, Stromverbrauch...sollten sie rechnerisch
> ohne Watchdog ca. 8 Jahre durchhalten.

Auf Grund des  Betreffes  habe darauf geschlossen, dass es schon 
Batterieausfälle gegeben hat. Gibt es noch keine Erfahrungswerte aus der 
Praxis?

M. G. schrieb:
> Kein DC/DC - direkt von der Batterie

Bei Li-Primärzellen habe ich und auch andere die Erfahrung gemacht, das 
diese Zellen nach langer Pause beim Einschalten des Senders in die 
"Knie" gehen. Die Abhilfe mittels LIC habe ich schon an anderen Stellen 
beschrieben.

Es kann sein, dass der Watchdog oder die Spannungsüberwachung des MC 
einen oder mehrere Restart auslöst.

Werden Restart überwacht bzw. gezählt und gemeldet?

Diese Restart und auch Telegrammwiederholungen (sollten auch gezählt und 
gemeldet werden) für zu einem erhöhten Stromverbrauch. Nebenbei mit der 
Zählungen der Wiederholungen kann auf auf die Übertagungsqualität 
geschlossen werden, die ebenfalls einen Einfluss auf die 
Batterielebensdauer hat.

M. G. schrieb:
> RTC timer interrupt

Der Watchdog löst wie der RTC einen Interrupt aus, nur das der 
Watchdog-Interrupt nicht maskierter ist und eine höhere Prorität hat. 
Wenn der RTC Interrupt nicht maskiert oder disabled ist, vielleicht 
reicht dieser aus und man kann auf den Watchdog verzichten. 
Vorausgesetzt man überwacht in der Interruptroutine das 
Hintergrund-Programm .

M. G. schrieb:
> WDT Reset kurz alle 20 Sekunden

Meistens lässt sich der Watchdog nicht länger aufziehen.

Eigentlich sollte die Funktion des Watchdog anders  aussehen :

Der Watchdog sollte nur im Falle eines Fehlers (Dauerschleife oder 
Programmhänger) auslösen.  Der Watchdog sollte nur vom 
Hintergrund-Programm und niemals in einer Interruptroutine,  aufgezogen 
werden. Aber vielleicht schlägt in deiner Applikation der Watchdog alle 
20 Sekunden zu und startet den Sensor von Neuem. Fällt vielleicht es dir 
nicht auf.

Damit der MC vom Watchdog nicht aus dem Sleep-Modus geweckt wird, gehört 
dieser unmittelbar vorher abgeschaltet und unmittelbar nach dem 
Aufwecken (z.B. durch den RTC) Interrupt wieder aktiviert.

_Warum sollte der Watchdog  niemals  in einer Interruptroutine 
aufgezogen werden_   :

Eine Interruptroutine wird auch durchgeführt wenn das 
Hintergrund-Programm in einer Dauerschleife oder Deadlook-Situation 
hängt!

Fehlerzähler oder Statistik ist eine wertvolle Hilfe die Qualität zu 
beurteilen und Fehler zu verbessern. Dies ist speziell für Sensoren 
wichtig die still und unbeobachtet, zeitlich unbegrenzt vor sich 
hinwerken.

von Sebastian S. (amateur)


Lesenswert?

Eine "echte" RTC ist eventuell noch sparsamer im Verbrauch.
Eventuell kannst Du über den Interruptausgang sogar den ganzen µP (via 
FET) aus- bzw. einschalten.
Die Teile gibt es mit eingebautem Quarz - oft noch genauer als die die 
Du für kleines Geld kaufen kannst, oder Du nimmst den vom µP.

von Sebastian S. (amateur)


Lesenswert?

Ich vergaß:
Eine RTC kannst Du so programmieren, dass sie nach 36,8 Stunden mal 
aufwacht und Du nicht alle paar Sekunden einen Wachhund ins Körbchen 
schicken musst.

von Peter D. (peda)


Lesenswert?

M. G. schrieb:
> Das ganze System mit Watchdog verbraucht 125µA im sleep mode

Das ist sehr viel für einen µC.
Z.B. ein ATmega48PB verbraucht im Power-Down mit Watchdog 2µA an 1,8V.

von Gerald K. (geku)


Lesenswert?

Die Frage ist überhaupt ob ein RTC, der zum 1/2 stündlichen Aufwecken 
benutzt wird überhaupt notwendig ist. Meldungen können auch am Server 
mit einem Zeitstempel versehen werden.

Dann reicht der interne Timer eines sparsamen MC, wie schon MaWin 
erwähnt hat.

von M. G. (ixil96)


Lesenswert?

Peter D. schrieb:
> M. G. schrieb:
>> Das ganze System mit Watchdog verbraucht 125µA im sleep mode
>
> Das ist sehr viel für einen µC.
> Z.B. ein ATmega48PB verbraucht im Power-Down mit Watchdog 2µA an 1,8V.

Ja du hast recht, das ist zuviel. Hier dürfte etwas anderes nicht 
stimmen.
Lt Datasheet (STM32L010) liegt der Stromverbrauch im standby mode (IWDG 
und LSI enabled) bei rund 3µA.

von Sebastian S. (amateur)


Lesenswert?

Hast Du das Schaltbild mal unter diesem Gesichtspunkt untersucht?

Meine Lieblinge sind:
Unnötige Pull-Up oder -down Widerstände
nicht unbedingt notwendige LEDs
Bausteine, die sich mit einem einfachen FET abschalten lassen würden
usw.

von Gerald K. (geku)


Lesenswert?

oder ein Watchdog der alle 20s zuschlägt und das System neu startet

von M. G. (ixil96)


Angehängte Dateien:

Lesenswert?

Sebastian S. schrieb:
> Hast Du das Schaltbild mal unter diesem Gesichtspunkt untersucht?

Ja, das war ein guter Hinweis - Danke!
Über R13 - R8 und R9 (siehe Schaltung) ist einiges geflossen. Ich habe 
R8 nun auf 1M erhöht und bin nun bei 25µA im stop-mode (inkl. watchdog) 
gelandet.

Nur trotzdem sollte ich wenn ich mir die Datenblätter ansehe noch weiter 
herunter kommen.

Die Referenzspannungsquelle ist im stop-mode nicht aktiv. Lt Datenblatt 
sollte der UC bei VDD=3,6V (Stop-Mode + RTC) rund 1,2µA und der RN2483A 
im sleep-mode rund 1,6µA verbrauchen.

In Summe also 1,2 + 1,6 + 4(R13-R8-R9) - rund 8µA. Da verbrauche ich 
aber noch immer das Dreifache.

von Wolfgang (Gast)


Lesenswert?

M. G. schrieb:
> Die Frage ist nun, ist ein Watchdog wirklich nötig?

Das musst du doch wissen. Wie oft hat dein Watchdog denn schon 
zugeschlagen, obwohl er eigentlich hätte regelmäßig resetet werden 
sollen?
Wie prüfst du, ob deine RTC vernünftig läuft und wie es ihrer Batterie 
geht?

von Michael J. (jogibaer)


Lesenswert?

Hallo,

warum hast Du eigentlich einen Ferrit in Reihe zur Batterie?

Jogibär

von M. G. (ixil96)


Lesenswert?

Wolfgang schrieb:
> M. G. schrieb:
>> Die Frage ist nun, ist ein Watchdog wirklich nötig?

Eigentlich sollte man ihn schon einbauen. Es läuft zwar alles stabil und 
der WD hat noch nie zugeschlagen...aber vielleicht in einem Jahr einmal?

> Wie prüfst du, ob deine RTC vernünftig läuft und wie es ihrer Batterie
> geht?

In bestimmten zeitlichen Abständen sendet das Modul die Daten. Sollte 
die RTC nicht richtig laufen sehe ich das. Batteriespannung wird mit 
gesendet.

von M. G. (ixil96)


Lesenswert?

Michael J. schrieb:
> Hallo,
>
> warum hast Du eigentlich einen Ferrit in Reihe zur Batterie?

Hatte ich zuerst nicht, aber dadurch blocke ich HF-Rauschen und die 
Spannung ist viel sauberer.

von Amateur (Gast)


Lesenswert?

Wer auch immer da rauscht, Deine Batterie ist es nicht.
Auch ist der Platz zwischen Batterie und Masse suboptimal.

von M. G. (ixil96)


Lesenswert?

Amateur schrieb:
> Wer auch immer da rauscht, Deine Batterie ist es nicht.
Ja, das ist mir klar.
> Auch ist der Platz zwischen Batterie und Masse suboptimal.

Bitte um genauere Erklärung...

von Michael J. (jogibaer)


Lesenswert?

Hallo,

ich glaube nicht, daß Dein Rauschen von der Batterie kommmt.
Im Gegenteil, bei hochgenauen Meßgeräten werden oft Batterien verwendet,
da diese kaum Rauschen und keine HF Störungen verursachen.
Im Gegensatz zu Netzteilen.

Daß ein Ferrit Rauschen verringert, wäre mir neu.
Bei EMV sieht es natürlich anders aus; muß man aber genau auslegen und 
messen.

Jedes Bauteil verursacht Rauschen und ich kenne kein Bauteil, welches
effektiv reines Rauschen (Thermo, Schrot usw.) herausfiltert.
Ich laß mich aber sehr gern belehren, man kann nicht alles wissen.

Die richtige Position für den Ferrit wäre eher in der Auftrennung 
zwischen
analoger und digitaler Versorgung zu sehen, um die Störungen des 
digitalen Bereichs zu verringern.
Dazu sollte (wenn es was bringt) die Masse auch aufgespalten werden.
(Signal/Rauschverhältnis)

Das ist aber ein so komplexes Thema, da kommt man nur mit vernüftiger
Meßtechnik weiter; was bringt was und was bringt nichts bzw. ist es 
notwendig.


Jogibär

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.