Forum: Mikrocontroller und Digitale Elektronik mittlere Stromaufnahme einer Schaltung im µA - mA Bereich messen


von N. K. (bennjo)


Lesenswert?

Hallo Allerseits,

habe beruflich ständig die Aufgabenstellung, den Energiebedarf einer 
kleinen µC-Schaltung (mit 2.4GHz RF) in verschiedenen Betriebszuständen 
zu bestimmen. Es geht um die Frage: Wie lange wird unser Produkt mit 
Knopfzelle xy später laufen. Wie wirkt es sich aus, wenn wir an der 
Firmware z ändern...

Hierbei hat sich für mich als besonders schwierig heraus gestellt, dass 
einerseits ein Standbystrom in der Größenordung von X,X µA und 
andererseits ein Burst im Bereich XX mA vermessen werden muss. Dabei 
geht es natürlich immer um das Integral über eine Zeiteinheit. Also 
nimmt man an, dass sich das Verhalten gemittelt über 1 Sekunde, 10 
Sekunden oder 1 Minute auf mehrere Jahre extrapolieren lässt.

Die Frage ist nun: Wie misst man sowas?

Mir steht (teure) Messtechnik zur Verfügung (SMU, 6,5 Digit Multimeter, 
großes Oszi, mA Stromzange), aber nichts bringt den Dynamikumfang mit, 
der für eine solche Messung ohne Rangeumschaltung notwendig wäre.
0,1µA ... 100mA sind immerhin 10^6 (!). Weiterhin gibt es das Problem, 
dass entweder der Burden-Drop so hoch ist, dass die Messung nicht mehr 
realistisch ist, oder das GBW-Product des Verstärkers nicht reicht 
(µCurrent)...

Bisher bleibt auf dem "konventionellen" Weg nur die Messung in zwei 
Teile zu teilen: "Standby" und "Burst". Das ist bei der Entwicklung der 
Firmware begleitend aber sehr mühsam und sorgt dafür, dass man nicht 
wirklich viel Zeit in die Optimierung steckt (Beispiel: Zustand von IOs 
beim Wechsel in Standby)

Bisher habe ich nur eine halbwegs vernünftige Methode gefunden: Ich lade 
mit dem SMU einen größeren Kondensator, an welchem wiederum die 
Schaltung hängt. Jetzt drehe ich so lange am Strom im µA Bereich, bis 
die Spannung nirgends mehr hin driftet und lese damit den mittleren 
Strombedarf ab. Ist aber auch eher mühsam und nicht für dynamische 
Betriebszustände zu gebrauchen.

Offen gestanden überlege ich derzeit ernsthaft, ein Gerät basierend auf 
letzt genannter Methode zu entwickeln. Kann ja nicht sein, dass es da 
nicht schon etwas gibt?

Wie messt ihr sowas?

Gruß,
Nikias

: Bearbeitet durch User
von Christian B. (snooz3r)


Lesenswert?

Moin,

Was spricht dagegen die Schaltung direkt mit einem Elko abzupuffern und 
für die Messung den Messbereich dann entsprechend dem erwarteten 
Mittelwert auswählen, wenn das nicht reicht kannst du ja immer noch mit 
einem Multiplexer den Shunt umschalten, aus meiner Sicht spricht da 
wenig dagegen..?

Willst du die Peaks messen geht das mit deiner Methode ja ebenfalls 
nicht.

Oder habe ich dein Problem nicht verstanden?

Grüße
Christian

von N. K. (bennjo)


Lesenswert?

@Christian:

Ich habe vergessen zu erwähnen, dass die Bursts üblicherweise nur sehr 
kurz sind (ms). Der Standby-Zustand aber durchaus mehrere Sekunden 
anhalten kann.

Die Bursts haben auch in sich nochmal eine Aufteilung in Bereiche mit 
wenig Verbrauch (Quarz schwingt an) und hohem Verbrauch: RF TX.

Mit einer einfachen Anordnung aus Netzteil->Multimeter->Elko->Schaltung 
bekomme ich keinen ablesbaren Mittelwert der Stromaufnahme, mit der ich 
auf Jahre extrapolieren kann. Im Standby sehe ich den Standby-Verbrauch, 
im Burst könnte ich sehr kurz den Burst-Verbrauch ablesen.

Ein Problem dabei ist auch noch, dass große ELKOs relativ interessante 
parasitäre Eigenschaften haben. Stichworte Leckstrom und dielektrische 
Absorbtion. Die Spielen im µA Bereich relativ schnell eine Rolle.

Gruß,
Nikias

von Klaus (Gast)


Lesenswert?

N. K. schrieb:
> Mit einer einfachen Anordnung aus Netzteil->Multimeter->Elko->Schaltung
> ...

Ich würd einen Elko (oder auch Doppelschichtkondensator) auf eine 
bekannte Spannung aufladen und dann das Netzteil abtrennen. Jetzt die 
Schaltung an diesem Kondensator betreiben und die Spannung beobachten. 
Das Ganze in dem selben Spannungsbereich, den auch die Batterie hat. Im 
Gegensatz zu einer Batterie lässt sich aus der Spannung des Kondensators 
direkt der Energieverbrauch ermitteln.

N. K. schrieb:
> Ein Problem dabei ist auch noch, dass große ELKOs relativ interessante
> parasitäre Eigenschaften haben. Stichworte Leckstrom und dielektrische
> Absorbtion. Die Spielen im µA Bereich relativ schnell eine Rolle.

Dazu kann man einen gleichen Kondensator parallel ohne den Verbraucher 
laufen lassen. Da kann man die Verluste messen.

MfG Klaus

von Possetitjel (Gast)


Lesenswert?

N. K. schrieb:

> Mit einer einfachen Anordnung aus Netzteil->Multimeter->
> Elko->Schaltung bekomme ich keinen ablesbaren Mittelwert
> der Stromaufnahme, mit der ich auf Jahre extrapolieren
> kann. Im Standby sehe ich den Standby-Verbrauch, im Burst
> könnte ich sehr kurz den Burst-Verbrauch ablesen.

Naja, die Frage ist ja, was Du wissen willst: Den Mittelwert,
die Momentanwerte, oder beides?

> Ein Problem dabei ist auch noch, dass große ELKOs relativ
> interessante parasitäre Eigenschaften haben. Stichworte
> Leckstrom und dielektrische Absorbtion. Die Spielen im µA
> Bereich relativ schnell eine Rolle.

Für den Mittelwert finde ich die Methode mit Stromquelle und
Kondensator recht clever. Ich würde einen hinreichend großen
Wickelkondensator durch Parallelschaltung zusammensetzen.
Wenn der die Größe eines Milchkartons hat und 200 Euro kostet,
macht das ja nicht viel - man benötigt ja nur einen :)

von Mani W. (e-doc)


Lesenswert?

N. K. schrieb:
> Es geht um die Frage: Wie lange wird unser Produkt mit
> Knopfzelle xy später laufen. Wie wirkt es sich aus, wenn wir an der
> Firmware z ändern...

Probleme mit Widerstand als Stromsensor und Auswertung?

N. K. schrieb:
> habe beruflich ständig die Aufgabenstellung, den Energiebedarf einer
> kleinen µC-Schaltung (mit 2.4GHz RF) in verschiedenen Betriebszuständen
> zu bestimmen.

Na, dann könntest ja mal eine Langzeitmessung des Energiebedarfes
mittels uC als Aufgabenstellung hernehmen und nicht so daher fragen...

von Jim M. (turboj)


Lesenswert?

N. K. schrieb:
> Die Frage ist nun: Wie misst man sowas?

Man besorge sich ein EFM32 STK - das STK3800 ist bei mir am genauesten: 
https://www.silabs.com/products/mcu/32-bit/Pages/efm32wg-stk3800.aspx

Dessen AEM kommt mit sehr schnellen Stromänderungen klar - ist nämlich 
von Energy Micro damals genau dafür entwickelt worden. Abtastrate ist 
bei dem STK3800 ungefähr 6250 Hz, und er geht von 0,1 µA bis ca. 50 mA 
Strom.

Den µC auf dem STK kann man mit einem Demo Programm in einen so tiefen 
Stromsparmodus schicken, dass dessen Verbrauch im Rauschen komplett 
verschwindet.

Ich verwende das zum Testen meiner NRF51 und NRF52 Module hier. Und ein 
JLink ist auch noch drauf...

von Bernard B. (bernard_b)


Lesenswert?

Koente folgendes helfen ?

https://www.eevblog.com/projects/ucurrent/

: Bearbeitet durch User
von Tom (Gast)


Lesenswert?

das ding hat er oben schon erwähnt...

von pegel (Gast)


Lesenswert?

Er hier geht da mutiger ran:

https://www.youtube.com/watch?v=F7RI6CTpj64

von Olaf (Gast)


Angehängte Dateien:

Lesenswert?

Ich hab mir dafuer was eigenes entwickelt. :-)

Die Schaltung sieht so aus:

1. Lowdropregler der aus 3.3 bis 30V 3.3V macht.
2. Schaltnetzteil welches aus den 3.3V wieder 18V macht.
3. Einen MAX4080 als Stromsensor.
4. Mehre umschaltbare Butterworthfilter 250kHz/10kHz/1kHz/10Hz
5. Leitung zum Oszi.

Das ganze als kleine Platine die man an den Ausgang seines 
Labornetzteils stecken kann. So kann ich bei einstellbaren Spannungen 
von 3.3 bis 30V den Strom messen. Ziemlich cool oder? :-)

von M. K. (sylaina)


Lesenswert?

Olaf schrieb:
> Das ganze als kleine Platine die man an den Ausgang seines
> Labornetzteils stecken kann. So kann ich bei einstellbaren Spannungen
> von 3.3 bis 30V den Strom messen. Ziemlich cool oder? :-)

Das wäre doch was für den "Zeigt her eure Kunstwerke"- Thread, oder? 
Also ich finde die Idee cool. ;)

von Olaf (Gast)


Lesenswert?

> Das wäre doch was für den "Zeigt her eure Kunstwerke"- Thread, oder?
> Also ich finde die Idee cool. ;)

Hab ich ja jetzt gezeigt. :-)

Allerdings hat meine Schaltung noch ein Problem. Mir ist beim Design des 
Schaltreglers noch ein Fehler passiert. Der zieht beim einschalten fuer 
ein paar Millisekunden einen Strom von 200mA um seine Kondensatoren zu 
laden. Wenn der nicht zur verfuegung steht weil das Netzteil z.B gerade 
auf 100mA Strombegrenzung steht, dann kann das boese enden.
Ich muesste mich irgendwann mal aufraffen und das verbessern, 
(Softstart) aber wenn man es weiss dann laeuft es ja und dann laesst man 
es halt erstmal....

Olaf

von Dampf T. (ouuneii)


Lesenswert?

Durch eine negative Speisung kann man einen Transimpedanz Verstaerker 
verwenden, der immer GND am Messterminal haelt. Dh man misst ohne Burden 
Verlust.

von Olaf (Gast)


Lesenswert?

> Dh man misst ohne Burden Verlust.

Du kannst auf Bild2 eine breite Masseverbindung sehen. Da wuerde ich 
keinen Nennenswerten Verlust erwarten. Der MAX4080 misst im Highzweig. 
Den Widerstand im Highzweig kann man sich natuerlich je nach 
gewuenschten Strom dimensionieren. Bei mir sind das derzeut 1.6R. Da man 
in der Regel ja nur Stroeme von wenigen Milliampere hat ist das kein 
Problem.

Olaf

von A. S. (Gast)


Lesenswert?

Der Standby (falls er reproduzierbar ist) spielt doch keine Rolle. Den 
kannst Du einfach mit (10.000h*I) jährlich ansetzen und sporadisch 
einmal messen. Entweder sind die Bursts selten (dann sind die 10.000h 
richtig) oder häufig (dann ist der Anteil egal).

Und für die beiden anderen Modi dann parallel (schaltungstechnisch in 
Reihe) in 2 Bereichen messen. Dort wo der eine clippt, den anderen 
hinzuziehen.

von Andrew T. (marsufant)


Lesenswert?

Olaf schrieb:
> Bei mir sind das derzeut 1.6R. Da man
> in der Regel ja nur Stroeme von wenigen Milliampere hat ist das kein
> Problem.

Feine Sache, gut gemacht Olaf.
Und Du bekommst damit tatsächlich eine Dynamik über mehrere Dekaden 
Stromänderung (wie vom TE skizziert) hin, bzw. hast Du mal geschaut wo 
die Begrenzung in diesem Design liegt.

Das wäre interessant zu erfahren.

von daVinciClaude (Gast)


Lesenswert?

Eventuell auch noch interessant:
https://www.youtube.com/watch?v=HqeDthLrcsg

von Olaf (Gast)


Angehängte Dateien:

Lesenswert?

> Und Du bekommst damit tatsächlich eine Dynamik über mehrere Dekaden
> Stromänderung (wie vom TE skizziert) hin, bzw. hast Du mal geschaut wo
> die Begrenzung in diesem Design liegt.

Ich hab jetzt keine Bilder die ich zeigen koennte. Aber die Grenzen sind 
in etwa so:

1. Maximale Bandbreite 250khz. Mehr kann der MAX4080 nicht.
2. Maximalstrom (1.6R) waren so 150 oder 180mA (weiss ich jetzt nicht 
genau)
3. Messung im Bereich von 10-20uA sind noch sinnvoll machbar. (Filter im 
Oszi ist dann nett)

Ah..ich hab gerade noch ein Bild gefunden. Zeigt die Stromaufnahme eines 
nRF51822 bei aktiver BLuetoothverbindung. Wie du siehst musste ich da 
auch das Problem etwa entschaerfen indem ich einen dicken Elko an Vcc 
gehaengt habe. Das ist aber nicht so schlimm wie es scheint weil man in 
seinen fertigen Schaltungen auch ein Kondensator einbaut.
Ausserdem gibt es noch ein anderes Problem. Wenn man 100uA pro Kaestchen 
sauber aufloesen kann, dann kann man einfach nicht erwarten 100mA noch 
auf dem Oszi zu sehen weil der Bildschirm einfach nicht hoch genug ist. 
:)

In der Praxis hat sich meine Platine aber als sehr brauchbar 
herausgestellt. Man kann gut sehen was der Microcontroller gerade so 
macht.

Olaf

von Olaf (Gast)


Angehängte Dateien:

Lesenswert?

Hier nochmal zwei weitere Bilder in anderen Messbereichen ohne 
Kondensator. Zeigt auch wieder Uebertragung mit nRF51822.

von Olaf (Gast)


Angehängte Dateien:

Lesenswert?

Hm..wollte gerade nur ein Bild annehmen...

von Info (Gast)


Lesenswert?


von N. K. (bennjo)


Lesenswert?

Hallo Allerseits,

vielen Dank für die Antworten soweit.

@Olaf: Ich habe mir den MAX4080 angeschaut - aber im (sub) µA Bereich 
ist der aus meiner Sicht nicht zu gebrauchen... Allein schon der bias 
Strom und min Offset sind heftig.

Insgesamt scheint es mir keine vernünftige kommerziell verfügbare Lösung 
für das Problem zu geben.

Sämtliches Range-Umschalten oder Messwiderstände mit R > 5 Ohm (500mV 
drop @100mA) sind aus meiner Sicht nicht praktikabel. Es geht mir nicht 
um den Peak des Stromes, sondern wirklich nur um die mittlere 
Stromaufnahme über die Zeit...

Zum Thema "auf die paar µA kommt es nicht an". Bei ganz grober Rechnung 
unter Vernachlässigung von Temperatur und Selbstentladung kommt man bei 
225mAh einer CR2032 auf:
3µA => 9,7 Jahre
4µA => 7,2 Jahre
5µA => 5,8 Jahre
6µA => 4,8 Jahre
7µA => 4,1 Jahre
9µA => 3,6 Jahre

Hier mal ein Beispiel zur Verdeutlichung des Problems:
Der µC soll sich mittels low power RC-Oszillator regelmäßig aufwecken, 
um irgendwas zu messen, das dann zu übertragen und sich wieder schlafen 
legen.

Dafür wird der RC beim flashen natürlich erstmal kalibriert. Interessant 
wird es aber dann, wenn man es über einen normalen 
Außen-Temperaturbereich betreibt:
a) ist der Standby-Verbrauch temperaturabhängig,
b) ist die RC-Frequenz deutlich temperaturabhängig. Er wacht also nicht 
alle 10 Sekunden, sondern alle 9,7 Sekunden auf.

Das kann bei tropischen Temperaturen mehrere Jahre Batterielebensdauer 
ausmachen! Jetzt kann man hergehen und bei jeder Messung alle 10 
Sekunden eine Temperaturmessung mittels Diode auf dem DIE durchführen 
und den RC entsprechend ständig umkonfigurieren. Die Frage ist dann 
aber, ob die ständige Temperaturmessung ggf. mehr Energie benötigt als 
man im Worst-Case einsparen kann. Genau so etwas Entwicklungsbegleitend 
ohne großen Aufwand zu messen, ist mein Ziel...

Gruß,
Nikias

: Bearbeitet durch User
von Andrew T. (marsufant)


Lesenswert?

N. K. schrieb:
> Insgesamt scheint es mir keine vernünftige kommerziell verfügbare Lösung
> für das Problem zu geben.

Dann schau doch bitte mal hier ob dies näherungsweise Deinen Wünschen 
näherkommt:


http://www.linear.com/solutions/1175

Kurz: Wen Du 6..8 Dekaden Strombereich überstreichen willst (OHNE die 
Stromshuntwiderstände umzuschalten), slltestt du an etwas 
logarithmierend messendes denken (gibt es als analag und als digital 
Version)

von A. S. (Gast)


Lesenswert?

N. K. schrieb:
> Es geht mir nicht um den Peak des Stromes, sondern wirklich nur um die mittlere 
Stromaufnahme über die Zeit...
>
> Zum Thema "auf die paar µA kommt es nicht an".

Dann habe ich Dein Problem noch nicht verstanden: Von welcher Software 
hängt denn Dein Strom im Standby ab? Wenn also die Messung im Betrieb 
kein Problem ist, ist es die im Standby auch nicht. Die kannst Du dann 
mit dem teuersten Fluke für die möglichen Einsatzbedingungen genau 
bestimmen und einrechnen.

von N. K. (bennjo)


Angehängte Dateien:

Lesenswert?

@Achim: Im Prinzip hast du Recht! Das Problem ist nur, dass damit die 
Messung zweigeteilt wird und gerechnet werden muss.

Für diese Rechnung benötigt man
1. den Standbystrom
(welcher sehr wohl von der Firmware abhängt - lass durch unglückliches 
Interrupt-Timing einfach mal aus versehen die Referenz des ADC 
eingeschaltet... oder noch besser, nen Pullup auf einer Datenleitung zu 
einem anderen Chip)

2. das Integral über einen Burst
(siehe z.B. angehängtes Bild)

3. den ziemlich exakt gemessenen Abstand zwischen zwei Bursts.
Wobei das beliebig komplex wird, wenn nicht alle Bursts gleich oder die 
Timings dazwischen unterschiedlich sind.

Ja, ich kann eine Messung so durchführen. Entwicklungsbegleitend ist es 
aber mit viel Aufwand Verbunden. Wenn man diese Messung jetzt aber 
ständig braucht, um die Auswirkung einer Änderung oder 
Umgebungsbedingung zu evaluieren, wird es mühsam.

Gruß,
Nikias

: Bearbeitet durch User
von Christian L. (cyan)


Lesenswert?

Was ist mit der Kondensatorlösung? Hier wurde sie scheinbar erfolgreich 
eingesetzt:
Beitrag "Re: Mittleren Stromverbrauch messen"

von A. S. (Gast)


Lesenswert?

N. K. schrieb:
> 2. das Integral über einen Burst
> (siehe z.B. angehängtes Bild)

Dafür gibt es ja beliebig viele Schaltungen und Messgeräte, da hier ja 
praktisch nichtmal eine Dekade gemessen werden muss. Und anschließend 
müssten diese Integrale halt addiert werden.


> 3. den ziemlich exakt gemessenen Abstand zwischen zwei Bursts.

Nein. wofür? Es reicht doch, wenn Du ab und zu den Ruhestrom misst und 
mit 24h/Tag multiplizierst. Es macht technisch nichts aus, wenn die 
Burst-Zeiten mit eingerechnet werden.

von N. K. (bennjo)


Lesenswert?

@Achim S.: Es geht bei den Abständen nicht um die Zeit im Standby, 
sondern die Frequenz der Bursts. Die ist sehr entscheidend für die 
spätere Batterielaufzeit.

@Christian L. : Der Thread ist in der Tat sehr interessant! Im Prinzip 
habe ich es bisher genauso, nur von Hand mit meinem SMU gemacht. Ich 
denke, das zu automatisieren, ist der einzig Zielführende Weg.

Ich denke wie eingangs erwähnt in der Tat darüber nach, ein kleines 
Projekt für eine Schaltung nach diesem Prinzip zu starten. Könnte das 
hier außer mir noch jemand gebrauchen?

Gruß,
Nikias

: Bearbeitet durch User
von Christopher J. (christopher_j23)


Lesenswert?

Da ich das Thema sehr interessant finde gebe ich hier auch mal meinen 
Senf dazu. Die Kondensatorlösung klingt in der Tat sehr einfach, weil ja 
hier auch keine Bandbreite benötigt wird. Was mich daran stören würde 
wäre, dass Informationen verloren gehen, d.h. du weißt dann nur ob der 
Stromverbrauch in einem gewissen Rahmen liegt bzw. insgesamt gestiegen 
oder gefallen ist aber den Grund dafür kennst du dann nicht. Dafür musst 
du dann doch wieder den alten Messaufbau hernehmen. Für den Fall, dass 
zum Beispiel der Standbystrom erhöht aber dafür die Burstfrequenz 
reduziert wurde bekommst du eventuell den gleichen Stromverbrauch wie 
zuvor.

Ich denke der größte Zeit- und Produktivitätsgewinn liegt vor allem in 
der Automatisierung der ganzen Messung. Meine Idee wäre, zwei der Geräte 
zugleich zu vermessen, und zwar in den beiden Messbereichen. D.h. bei 
dem einen Gerät wird mittels uCurrent der Standbyverbrauch gemessen und 
bei dem anderen per Stromzange die Bursts (natürlich geht es auch 
sequentiell hintereinander aber ich würde mir nicht die Arbeit machen 
irgendetwas umzustecken). Man muss halt irgendwo einen Schwellwert 
festlegen, oberhalb dessen in der Auswertung nur der Wert der Stromzange 
zählt und unterhalb zählt eben das uCurrent. Später wertet man die 
beiden Datenströme separat aus und berechnet so den Gesamtverbrauch. 
Wichtig ist hierbei natürlich, dass man die Messung über einen längeren 
Zeitraum macht. Da deine Bandbreite selbst für die Bursts eher im 
sub-Mhz-Bereich liegt, würden sich Geräte wie das Analog-Discovery 2 von 
Digilent oder auch ein Salae Logic Pro 8 bzw. Logic Pro 16 anbieten. Ein 
Gerät was einen kontinuierlichen Stream liefern kann ist wohl eine 
Vorraussetzung. Falls Geld keine Rolle spielt gibt es natürlich auch 
passende Hardware von NI oder dSpace aber das ist meiner Meinung nach 
mit Kanonen auf Spatzen geschossen. Saleae und Digilent bieten 
jedenfalls auch beide ein SDK mit dem man Messungen automatisieren kann. 
Hast du die Daten (automatisiert) aufgezeichnet kannst du sie 
entsprechend automatisch auswerten und/oder visualisieren. Für die 
Auswertung an sich würde ich persönlich auf Python oder (wenn vorhanden) 
Matlab zurückgreifen. Du musst dir halt einmal die Arbeit machen den 
Kram zu scripten aber dann musst du nur noch die jeweils aktuelle 
Firmware flashen, die Messung starten und kannst daraus direkt einen 
Report generieren um ihn der Softwareabteilung mit einem kurzen 
Kommentar zukommen zu lassen.

von N. K. (bennjo)


Lesenswert?

@Christopher: Die Strommessung im mA Bereich per kleinem sub 1 Ohm R 
oder Messzange ist eigentlich problemlos parallel mit der 
Kondensatormethode gleichzeitig an einem Prüfling möglich...

Gruß,
Nikias

von Christopher J. (christopher_j23)


Lesenswert?

Ok, stimmt, daran hatte ich gar nicht gedacht. Damit ginge die 
Transparenz dann nicht verloren. Der Punkt mit der Automatisierung der 
eigentlichen Messung bleibt aber weiterhin bestehen. Ich denke, dass du 
damit am meisten Zeit einsparen kannst, um dich 
anderen/wichtigeren/spannenderen Aufgaben zu widmen.

von MiWi (Gast)


Lesenswert?

N. K. schrieb:
> @Achim: Im Prinzip hast du Recht! Das Problem ist nur, dass damit die
> Messung zweigeteilt wird und gerechnet werden muss.
>
> Für diese Rechnung benötigt man
> 1. den Standbystrom
> (welcher sehr wohl von der Firmware abhängt - lass durch unglückliches
> Interrupt-Timing einfach mal aus versehen die Referenz des ADC
> eingeschaltet... oder noch besser, nen Pullup auf einer Datenleitung zu
> einem anderen Chip)
>
> 2. das Integral über einen Burst
> (siehe z.B. angehängtes Bild)
>
> 3. den ziemlich exakt gemessenen Abstand zwischen zwei Bursts.
> Wobei das beliebig komplex wird, wenn nicht alle Bursts gleich oder die
> Timings dazwischen unterschiedlich sind.
>
> Ja, ich kann eine Messung so durchführen. Entwicklungsbegleitend ist es
> aber mit viel Aufwand Verbunden. Wenn man diese Messung jetzt aber
> ständig braucht, um die Auswirkung einer Änderung oder
> Umgebungsbedingung zu evaluieren, wird es mühsam.
>
> Gruß,
> Nikias

Ich hab vor einiger Zeit ein System gebraucht, daß ähnlich Deinem zw. 
dem Ruhestrom von 700nA und dem max. Betrieb mit ca. 25mA den benötigten 
Summenstrom aus der Batterie messen mußte. Die Pulsdauer mit max. 
Stromaufnahme hat zw. 4-40mS gedauert, Zeit dazwischen ist nicht 
bestimmbar, von 10s bis 16000s, gelegentliches Aufwachen mit wenigen bis 
einigen 10uA war auch zu erfassen.

Mein Ansatz war mit einem halben ACF2101 die Stromaufnahme 
aufzuintegrieren und jeweils auf den anderen halben ACF2101 
umzuschalten, wenn der erste "voll" war und resetiert werden mußte. 
Umschaltkriterium war die eh ständig vorhandene Ausgangsspannung des 
Integrators, es wurde ausschließlich die Zeit gemessen, die es zwischen 
dem Umschalten gedauert hat.

Am Ende des Messvorgangs war nur abzulesen wie oft zwischen den beiden 
umgeschalten wurde um eine belastbare Ausage über den mittlere 
Stromaufnahme des Systems zu bekommen. ein kleiner uC hat das über ein 
LCD angezeigt und über eine V24 an einen PC geschickt, damit auch nach 
etlichen Wochen der Überblick nicht verloren ging.

Die Impulsstromaufnahme hab ich getrennt von den ULP-Messungen 
durchgeführt, denn die Aktivitätsmuster sind sehr ähnlich und daher hat 
es gereicht, den Strom über einen "aktiven" Shunt bei verschiedenen 
Aktionen zu vermessen. Mit "aktiv" meine ich, daß mein Messobjekt trotz 
Shunt immer die gleiche Versorgungsspannung gesehen hat, quasi Opamp 
davor, der das ausgeregelt hat.

Da es ein Kundenprojekt war kann ich nicht sehr viel mehr dazu sagen.

Grüße

MiWi


MiWi

von daVinciClaude (Gast)



Lesenswert?

Ich nochmals :-)

Habe gerade eine selbstgemachte Platine im Test mit TI Energy Trace.
Darauf ein MSP430, 10 LED, sowie eine Touchpad-Kupferfläche.
In 250 ms Abständen wird kurz aus dem Low Power Mode 3 aufgewacht, ca. 
200 Zyklen à 8 MHz, dann wieder Sleep.

In Bild 1 habe zuerst falsch gemessen, der Debugger-/Emulationsteil war 
noch an. Deshalb kam ich nicht unter 16.5 uA. Bei ca. 90 Sekunden den 
Finger auf den MSP, noch eindrucklich was 10-15° Temperaturzunahme 
ausmachen.

Bild 2 zeigt die richtige Messung, wiederum mit Fingerauflegen bei ca. 
20 s.
Strom vorher ca. 0.8 uA, nachher 1.3 uA. Dann in Bild 3 das Multiplexen 
der LEDs. Bin erstaunt wie gut das funktioniert, ist allerdings auch 
fraglich, wie genau ein 15$ Evalboard wohl mis(s)t.

Gruss

Claude.

von N. K. (bennjo)


Lesenswert?

@daVinciClaude: Diese Boards sind auf jeden Fall spannend! Allerdings 
sind da soweit ich das sehe keine Genauigkeiten spezifiziert. Für 
Relativ-Messungen während der Entwicklung auf jeden Fall sehr spannend. 
Um absolut und mit gewisser Sicherheit sagen zu können, wie Lange ein 
Gerät laufen wird dann doch etwas unsicher...

Insgesamt bestärken mich diese Boards in der Annahme, dass es
a) bisher kein "richtiges" Equipment für dieses Problem gibt und
b) einige Leute so etwas brauchen könnten.

Ich hätte gerne ein "Benchtop" Gerät, dass mir relativ simpel einen 
gemittelten Stromverbrauch auf einem Display anzeigt.

Mal sehen was eine kleine Umfrage ergibt:

1) Wer hier im Forum hat mit batteriebetriebenen µC Schaltungen zu tun?

2) Verbringt die Schaltung Teile der Zeit in einem µA-Sleep?

3) Optimiert ihr die spätere Batterielaufzeit überhaupt?

Gruß,
Nikias

: Bearbeitet durch User
von Anja (Gast)


Lesenswert?

Hallo,

N. K. schrieb:
> aber nichts bringt den Dynamikumfang mit,
> der für eine solche Messung ohne Rangeumschaltung notwendig wäre.
> 0,1µA ... 100mA sind immerhin 10^6 (!).

N. K. schrieb:
> Zum Thema "auf die paar µA kommt es nicht an". Bei ganz grober Rechnung
> unter Vernachlässigung von Temperatur und Selbstentladung kommt man bei
> 225mAh einer CR2032 auf:

N. K. schrieb:
> Sämtliches Range-Umschalten oder Messwiderstände mit R > 5 Ohm (500mV
> drop @100mA) sind aus meiner Sicht nicht praktikabel.

Ich verstehe Dein Problem nicht:

Eine CR2032 hat etwa 100 Ohm innenwiderstand.
D.h. Du brauchst sowieso einen großen Puffer für die Energie xx mA für 
mehrere ms.

D.h. Dein Shunt kann 100 Ohm haben wenn Du die CR2032 mit einer 
niederohmigen Quelle simulieren willst.

Ansonsten: was willst Du mit großer Meßgenauigkeit wenn Du die größten 
Störgrößen (Selbstentladung über Temperatur) einfach ignorierst.
Eigentlich mußt Du ja bei nicht passender Temperatur die Abstände 
zwischen den Bursts überproportional verlängern um die gleiche 
Lebensdauer zu erreichen.

Es gibt auch hochauflösende Oszis. (24 Bit 0.02%)
https://www.dewetron.com/products/chassis/

Gruß Anja

von N. K. (bennjo)


Lesenswert?

@Anja: Der Innenwiderstand einer CR2032 ist leider eine ziemlich 
komplexe Angelegenheit. Noch dazu von Hersteller zu Hersteller sehr 
unterschiedlich! Wir haben da von unserem (hochpreisigen) Hersteller 
andere Werte garantiert bekommen...

Zum Innenwiderstand siehe hier:
(1) http://www.ti.com/lit/wp/swra349/swra349.pdf
(2) 
http://www.embedded.com/electronics-blogs/break-points/4429960/How-much-energy-can-you-really-get-from-a-coin-cell-

Wobei bei diesen beiden noch nicht einmal die Temperatur mit einbezogen 
wurde.

Gruß,
Nikias

: Bearbeitet durch User
von MiWi (Gast)


Lesenswert?

N. K. schrieb:
> @Anja: Der Innenwiderstand einer CR2032 ist leider eine ziemlich
> komplexe Angelegenheit. Noch dazu von Hersteller zu Hersteller sehr
> unterschiedlich! Wir haben da von unserem (hochpreisigen) Hersteller
> andere Werte garantiert bekommen...
>

BTDT, doch leider hilft da nur Nachmessen mit dem eigenen Lastprofil. 
Auch die Chemie in Batterien bekannter Hersteller kocht nur mit 
Wasser... und unsere SW mißt nun Batteriespannung um die Stromentnahme 
dem Alter der Batterie anzupassen... nun dauer halt manches länger, 
führt aber zu keinem vorzeitigem Ausfall...

Ach ja, den Leckstrom von Kodensatoren nicht vergessen, der kann bei 
300nA Betriebsstrom @ 3V schon einen messbaren Anteil ausmachen...

MiWi

von Julian B. (julinho)


Lesenswert?


von N. K. (bennjo)


Lesenswert?

@Julian: Der wird ja z.B. auch auf den oben genannten Gecko-Boards 
verwendet. Erscheint auf den ersten Blick eigentlich sehr spannend!

Auf den zweiten Blick dann aber nicht mehr so sehr. 10µV Input Offset 
bedeuten, ich brauche mindestens einen 100 Ohm Shunt, um auf 0,1µA genau 
zu messen. Oder habe ich einen Denkfehler?

Was anderes habe ich bei diesem Chip auch noch nicht so ganz verstanden: 
Irgendwo ist von einem GBW von 2MHz zu lesen. Dann gibt es noch dieses 
Gain/Frequency Schaubild. So ganz ist mir noch nicht klar, was ich da an 
Bandbreite rausholen kann, wenn ich wirklich 6 Dekaden überstreichen 
möchte.

Gruß,
Nikias

von Lukas K. (carrotindustries)


Lesenswert?

daVinciClaude schrieb:
> Eventuell auch noch interessant:
> https://www.youtube.com/watch?v=HqeDthLrcsg

Das EnergyTrace von TI ist wirklich ziemlich brauchbar. Durch das 
Messprinzip (µC-gesteuerter Schaltregler) geht prinzipiell keine 
"Energie" verloren, wenn die Bandbreite der Stromspitze außerhalb der 
des Messsystems liegt. Wem das CCS zu aufgeblasen ist: 
https://github.com/carrotIndustries/energytrace-util Mit $14 ist man 
dabei. Das schöne an der Lösung ist, dass man nicht mit Shunts, 
Verstärkern, Digitizern oder so frickeln muss.

von Interessent (Gast)


Lesenswert?

Interessantes Thema,

Der LTC6102 scheint im Gecko Board brauchbare Ergebnisse zu liefern.
Ein anderer Verstärker ist der AD8428:
https://www.dorkbotpdx.org/blog/paul/measuring_microamps_milliamps_at_3_mhz_bandwidth
http://www.analog.com/en/products/amplifiers/instrumentation-amplifiers/ad8428.html#product-overview

Auch unter dem Aspekt der Sicherheit kann eine Strommessung interessant 
sein. Zum ChipWhisperer Lite Board gibt es ausführliche Tutorials und 
dort verwendet man (zugegebenermaßen AC-gekoppelt) einen BGA2801
https://newae.com/sidechannel/cwdocs/naecw502_hwlna.html#schematic

Neben der Methode der gesteuerten Energiequelle wie im TI Energytrace 
fällt mir da (nur der Vollständigkeit halber) noch eine Methode die bei 
der Leistungsmessung im HF Bereich bzw. selten zur TrueRMS Messung in 
Tischmultimetern eingesetzt wird ein. Dort wird ein Widerstand vom 
Messstrom erwärmt und versucht diesen Temperaturzustand durch Anlegen 
einer konstanten Spannung/Strom an ein Vergleichselement zu erreichen. 
Damit hätte man natürlich keine nennenswerte Zeitauflösung.

von Christopher J. (christopher_j23)


Lesenswert?

Das Energy-Trace von TI sieht sehr interessant aus. Kannte ich noch gar 
nicht aber werde ich auf jeden Fall mal im Hinterkopf behalten.

Das TI-Wiki sagt allerdings

> Accuracy: ± 2% ± 500nA, Condition: I < 25mA, VBUS = 5V constant during and
> after calibration
> Accuracy: ± 5% ± 500nA Condition: I > 25mA & I < 75mA, VBUS = 5V constant
> during and after calibration

(siehe http://processors.wiki.ti.com/index.php/Energy_Trace_for_MSP432)

und ist demnach im sub-µA-Bereich eher nicht zu gebrauchen.


N. K. schrieb:
> Auf den zweiten Blick dann aber nicht mehr so sehr. 10µV Input Offset
> bedeuten, ich brauche mindestens einen 100 Ohm Shunt, um auf 0,1µA genau
> zu messen. Oder habe ich einen Denkfehler?

Jein, einen 100 Ohm Shunt brauchst du lediglich, wenn der kleinste von 
dir zu messende Strom 0,1 µA bzw. 100 nA ist und der Opamp keine 
negativen Spannungen ausgeben kann bzw. du keine negativen Spannungen 
messen kannst. Du kannst oberhalb dieser 0,1 µA aber deutlich genauer 
als auf 0,1 µA genau messen. Das hängt aber von deinem AD-Wandler und 
der angestrebten Bandbreite ab. Außerdem besteht natürlich die 
Möglichkeit, diese Offset-Spannung zu kompensieren, was z.B. in PGAs 
häufig mit einem DAC gemacht wird.

10 µV Input Offset Voltage bedeuten jedoch, dass wenn du beide Eingänge 
auf das gleiche Potential legst, der Opamp zwischen den beiden Eingängen 
eine Spannung von 10 µV "sieht" (und diese dann entsprechend verstärkt). 
Bei einem Gain von 2000 würde dir ein solcher Verstärker am Ausgang 
entsprechend 20 mV anliegen haben. Der Offset lässt sich aber für einen 
Opamp relativ einfach (für einen jeweiligen Gain) messen und kann dann 
für zukünftige Messungen herausgerechnet (oder anderweitig kompensiert) 
werden. Gleiches gilt für die Biasströme. Nicht ohne weiteres 
herausrechnen kann man jedoch die Temperaturdrift des Offsets und die 
ist beim AD8428 z.B. immerhin 0,3 µV/°C und beim LTC6102 immer noch 50 
nV/°C.


N. K. schrieb:
> Was anderes habe ich bei diesem Chip auch noch nicht so ganz verstanden:
> Irgendwo ist von einem GBW von 2MHz zu lesen.

Der Begriff "Gain-Bandwidth-Product" ist erstmal nur für als Buffer 
beschaltete Verstärker aussagekräftig. Es bedeutet, das ein Verstärker 
mit 2 MHz GBW, bei einem 2 MHz Signal, das Signal noch gerade so nicht 
abgeschwächt wird, sondern der Verstärkungsfaktor noch gerade eben so 
eins ist (d.h. 0dB).


> Dann gibt es noch dieses Gain/Frequency Schaubild. So ganz ist mir noch
> nicht klar, was ich da an Bandbreite rausholen kann, wenn ich wirklich 6
> Dekaden überstreichen möchte.

Naja, allgemein verliert ein Verstärker an Bandbreite je höher man die 
Verstärkung aufdreht. Beim LTC6102 ist die Verstärkung in dem Gain vs 
Frequency Schaubild bei 4990 (lt. nachfolgender Tabelle) und 
offensichtlich fällt der Gain ab einer Frequenz von ca. 100 kHz rapide 
ab, d.h. diese Anteile werden dann nicht mehr so verstärkt wie die 
niederfrequenteren Anteile.

Mit einem fixen Gain wirst du meiner Meinung nach keine sechs Dekaden 
erfassen können, d.h. du brauchst eine Messbereichsumstellung. Da diese 
Umstellung nur in endlicher Zeit erfolgt wäre meine Idee mehrere Opamps 
an den gleichen Shunt zu hängen und wenn einer im Anschlag ist, dann 
wird der halt ignoriert und der mit dem nächstniedrigeren Gain 
hergenommen. Viel mehr als 1 Ohm würde ich aber als Shunt eher nicht 
nehmen, denn da bist du ja schon bei 100 mA jenseits der 100 mV 
Burden-Voltage und bei 100 Ohm bräuchtest du ja schon 10 V damit 
überhaupt 100 mA fließen können.

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.