Forum: Mikrocontroller und Digitale Elektronik Stromverbrauch von μC mit deep sleep messer und Batterie berechnen


von Mario Z. (mariozw)


Lesenswert?

Moin Leute,

ich bin neu hier und hoffe ich mache alles richtig ;)

Ich bin im Begriff meinen ersten μC mit Batterie und Solarzelle zu 
versorgen. Dadurch, dass ich wohlmöglich nur ein mal im Jahr an das 
gerät komme und dieses Stündlich die Temperatur messen und senden soll 
(Lorawan), sollte vorher alles genau gemessen und berechnet werden. Nur 
wie?!

Ich setze auf einen Arduino oder Attiny o.ä. und einen RFM95 sowie den 
DHT22 oder DS18B20, mal sehen.

Da ich nur einen Multimeter habe, werde ich wohl kaum den Verbrauch in 
diesen geringen werten messen können und vor allem keinen Verlauf 
angucken können zur Zeit.

Ist ein Oszilloskop mit Shunt Widerstand das richtig um meine Messung 
basierend auf ein paar Minuten zu messen?
Was für einen Oszilloskopen könnt ihr empfehlen? Bin da sehr unbeholfen 
mit den Werten.. :(

Vielen dank für eure Hilfe!

Schönen Tag noch ;)

von Jim M. (turboj)


Lesenswert?

Ich nehme für Verbrauchsmessungen eines µC immer mein EFM32WG-STK. Das 
kann nur 3.3V bis etwa 50mA, dürfte aber mit Abstand die preiswerteste 
Lösung sein. Obendrauf gibt es einen extern nutzbaren Jlink on-Board.

Oszilloskop hat den Nachteil das die Masse hart auf PE liegt, da könnten 
Querströme fließen. Außerdem hat man Probleme damit Signale im 
Minutenbereich aufzuzeichnen.

Darüber hinaus hat man bei solchen Verbrauchsmessungen ein Problem mit 
der Dynamik: Der µC verbraucht ein paar einzelne µA im Power down, und 
geht schnell in den zweistelligen mA Bereich während Code ausgeführt 
wird. Auf den EFM32 STKs wird das Problem IIRC mittels mehrstufigem Gain 
beim OpAmp umgangen.

von Markus E. (markus_e176)


Lesenswert?

http://www.elektroniknet.de/messen-testen/schwankende-stroeme-mit-schaltreglern-messen-106418.html

Hier wird eine Methode beschrieben, genau solche hochdynamischen 
Stromverläufe über das Schaltverhalten eines Schaltnetzteils zu 
ermitteln.
Das im Artikel beschrieben Board gibt/gab es meines Wissens nach auch 
fertig zu kaufen...

: Bearbeitet durch User
von Anja (Gast)


Lesenswert?

Mario Z. schrieb:
> Ist ein Oszilloskop mit Shunt Widerstand das richtig um meine Messung
> basierend auf ein paar Minuten zu messen?
Kann man machen.

> Was für einen Oszilloskopen könnt ihr empfehlen? Bin da sehr unbeholfen
> mit den Werten.. :(
Ich verwende ein PicoScope 5444A. Es geht natürlich auch ein anderes aus 
der 5000er Serie. Mit Einschränkungen (nur 12 Bit ADC anstelle 16 Bit) 
auch eines aus der 4000er Serie.
https://www.mikrocontroller.net/articles/Batteriew%C3%A4chter#Nachtrag2:_Strommessung_mit_dem_Oszi

Jim M. schrieb:
> Oszilloskop hat den Nachteil das die Masse hart auf PE liegt, da könnten
> Querströme fließen.
Bei einer Batterie-versorgten Schaltung????

Jim M. schrieb:
> Außerdem hat man Probleme damit Signale im
> Minutenbereich aufzuzeichnen.
Nur wenn das Oszi zu wenig Speicher hat.
Das PS5444A kann 100Ms im 16-Bit Modus im Single-Shot aufzeichnen. Das 
reicht für 100 Sekunden mit 1uS Auflösung. Bei gröberer Auflösung 
entsprechend länger. 50000 Sekunden (5000 s/Div maximale Zeitbasis) 
sollten eigentlich ausreichen.

Jim M. schrieb:
> Auf den EFM32 STKs wird das Problem IIRC mittels mehrstufigem Gain
> beim OpAmp umgangen.
Während dem Umschalten bist Du also "blind" wenn gerade der große Spike 
kommt? Welche ADC-Auflösung hat das EFM32 denn?

Gruß Anja

von A. S. (Gast)


Lesenswert?

goldcap nehmen und 10h laufen lassen.

Vergleichsmessung ohne Last und mit entsprechender ohmscher Last.

von Rainer U. (r-u)


Lesenswert?

Mario Z. schrieb:
> Ich setze auf einen Arduino oder Attiny o.ä. und einen RFM95 sowie den
> DHT22 oder DS18B20, mal sehen.

Also Du hast noch nicht angefangen. Ein einzelner Attiny (ohne das 
Arduino Hühnerfutter drumrum) ist schon mal nicht schlecht, der kommt 
bis runter auf wenige Mikroampere im deep sleep (das kannst Du mit einem 
Multimeter messen).

Mit dem kannst Du z.B. per Watchdog oder per Uhrenmodul den Rest der 
Schaltung einschalten.

Dann stellst Du Dein Programm für Debugging-Zwecke so ein, dass es viele 
Sendevorgänge direkt hintereinander macht, sagen wir mal 10000. Jetzt 
misst Du den Stromverbrauch bei Last, und stoppst auch die Zeit. Daraus 
kannst Du dann wieder hochrechnen.

Oder Du speist den Testbetrieb aus einem voll geladenen Akku, den Du 
nachher an einem Ladegerät mit Anzeigt wieder auflädst - also wie viele 
mAh geladen wurden - auch daraus kannst Du rückschließen.

von Mario Z. (mariozw)


Lesenswert?

Erst mal vielen dank für die flotten antworten!
Ich bin jetzt noch unsicherer als vorher :D
Die Letzte Idee von r-u ist für mich als Laie am schlüssigsten und wohl 
am einfachsten umzusetzen.

Die beschriebene Methode von Markus ist wirklich sehr interessant, nur 
bin ich mir sehr unsicher wie ich diese umsetzen kann.

Das ding ist, dass ich mir ohnehin mal einen Oszilloskop anschaffen 
wollte. Als Student jedoch nicht einen aus der Preisklasse von Anja 
(PicoScope 5444A).

Momentan habe ich einen gebrauchten "HAMEG HM203-4" im blick, oder einen 
von Aliexpress (DSO203).
Oder einen ganz anderen USB betriebenen.. Der Markt ist ja fast 
überschwemmt?!
Preislich so um die 100€..

Ich hatte mal einen Attiny85-PU mit DS18B20 und einem 433mHz sender 
ausgestattet und einer CR2035. Alle 15min gesendet hat das ganze über 
zwei Jahre gehalten. Schon verrückt..

Der Typ von YouTube "the guy with the swiss accent" hat ja auch einige 
Sachen zu den Themen erklärt. Er nutzt einen Messverstärker, den 
μCurrent Gold vom EEVblog (https://www.eevblog.com/projects/ucurrent/). 
Ist das ratsam?

Am liebsten wäre mir ein Gerät wie der DSO203 und ausreichende 
Genauigkeit für meine Spielereien mit μC, Arduinos, ESPs, ...

Was meint ihr? Wie würdet ihr als "armer Student" vorgehen.
Btw. Ich studiere Informatik

Bye

von Rainer U. (r-u)


Lesenswert?

Mario Z. schrieb:
> Was meint ihr? Wie würdet ihr als "armer Student" vorgehen.
> Btw. Ich studiere Informatik

So, wie ich beschrieben habe - dann brauchst Du gar keinen Oszi. 
Jedenfalls nicht dafür.

von Sven B. (scummos)


Lesenswert?

Ich habe das letztes Mal so gemacht, dass ich den Stromverbrauch im Deep 
Sleep mit dem Multimeter gemessen habe, und für das Aufwachen den ganzen 
Vorgang über einen Shunt mit dem Oszi aufgezeichnet. Dann kann man die 
Spannungskurve mit dem Oszi integrieren und erhält die Energiemenge pro 
Aufwachen. Der Rest ergibt sich ja dann. Falls du wirklich kein Oszi 
auftreiben kannst (Uni?) klingt die Methode mit dem Goldcap für mich 
auch gut.

von Mario Z. (mariozw)


Lesenswert?

Im Labor in der Uni sind Oszis ohne ende.. Das ist nicht das Problem.. 
Aber wie das immer so ist, reizt es einen ja auch seine Werkzeuge und 
Geräte zu vermehren..
Ich werde es wohl so machen wie du sagst, bzw die beiden Methoden.

Ein mal das ganze wenn es fertig ist an einer Batterie und laufen lassen 
und Differenz messen beim laden. Einfacher geht es kaum..
Und dazu die zuletzt genannte Methode. Multimeter für deep sleep und 
Stunt + Oszi die Funktion zeigen und Integral bilden. Läuft!

Danke Leute!!

Noch eine Frage. Würde der oben genannte DSO203 von Aliexpress o.ä. für 
solche Sachen reichen?

Grüße, Mario

von Jim M. (turboj)


Lesenswert?

Anja schrieb:
> Jim M. schrieb:
>> Oszilloskop hat den Nachteil das die Masse hart auf PE liegt, da könnten
>> Querströme fließen.
> Bei einer Batterie-versorgten Schaltung????


Der ISP oder Debugger ist bei der Entwicklung meistens mit angesteckt...

Anja schrieb:
> Während dem Umschalten bist Du also "blind" wenn gerade der große Spike
> kommt?

Große Spikes muss ohnehin ein Elko oder Kerko aufnehen, und z.B. für die 
~10mA Spikes bei Bluetooth Low Energy (NRF5x) war sowohl die 
Samplingrate als auch die Genauigkeit ausreichend.

> Welche ADC-Auflösung hat das EFM32 denn?

Keinen Schimmer, für AEM ist der Board Controller zuständig, das ist 
IIRC irgendein STM32. Der ist unter dem LCD versteckt, ich kann also 
auch nicht nachschauen.

von Anja (Gast)


Lesenswert?

Jim M. schrieb:
> Der ISP oder Debugger ist bei der Entwicklung meistens mit angesteckt...
Mißt Du dann den Stromverbrauch des Debuggers oder Deiner Schaltung?

Mario Z. schrieb:
> Noch eine Frage. Würde der oben genannte DSO203 von Aliexpress o.ä. für
> solche Sachen reichen?
bei 4096 Punkten Speichertiefe und 8 Bit Auflösung und 20mV/Div (also 
+/-80mV) kleinstem Messbereich: das wird wahrscheinlich sehr schwierig 
(optimistisch ausgedrückt).

Gruß Anja

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.