Forum: Analoge Elektronik und Schaltungstechnik Stromverbrauch eines Mikrocontrollers zeitaufgelöst messen


von Simon H. (simon12)


Lesenswert?

Wie der Titel sagt suche ich nach einer Möglichkeit den Stromverbrauch 
eines Mikrocontrollers (MSP430) zeitaufgelöst mit einem Oszilloskop zu 
messen. Je nach Low Power Mode erwarte ich einen Stromverbrauch zwischen 
1 µA und 1 mA. Die gängigste Methode scheint die Messung über einen 
Shunt zu sein. Mich würde interessieren mit welcher Schaltung man diese 
geringen Spannungsabfälle über dem Widerstand am besten misst. Nimmt man 
da eher einen Instrumentenverstärker wie den INA128 oder eher einen 
Current Sense Amplifier wie z.B. den MAX4376? Wobei die Current Sense 
Amplifier anscheinend nicht gerade eine große Verstärkung haben. Wie 
groß dürfe der Shunt denn sein? Wäre die Größenordnung 100 - 1000 Ohm in 
Ordnung? Gibt es vlt. noch andere Ansätze zur Strommessung? 
Wünschenswert wäre einen Auflösung von 1µA und eine zeitliche Auflösung 
von etwa 10 ms.

Viele Grüße,
Simon

von (prx) A. K. (prx)


Lesenswert?

Weshalb so kompliziert? Oszis können Millivolt über einem Widerstand 
direkt messen, zumal hier der 1:1 Tastkopf einsetzbar ist. Wenn du in 
Phasen messen kannst, dann nimm verschiedene Widerstände, einen für die 
µA im Sleep, einen fürs mA wenn aktiv. Im Niedrigstromfall mit 
Schottky-Diode parallel, damit der µC bei Aktivierung nicht verhungert.

: Bearbeitet durch User
von Simon H. (simon12)


Lesenswert?

Die Schottky-Diode ist ne gute Idee! Im LPM3 z.B. braucht der MSP430 ca. 
1.6 µA das wären bei 1 kOhm 1.6 mV. Ich  bezweifel, dass man das auf dem 
Oszi vom Rauschen unterscheiden kann :-/

von Tilo R. (joey5337) Benutzerseite


Lesenswert?

Messverstärker für kleine Ströme:
https://eevblog.myshopify.com/products/ucurrent

Wie gut der funktioniert kann ich nicht sagen, ich habe keinen. Wenn man 
ein bischen auf der Seite rumstochert sollte man auch was zur Schaltung 
finden, zumindest zur Vorgängerversion des Geräts.

von Simon H. (simon12)


Lesenswert?

Ui! Danke für den Link! Das sieht ja mal richtig schick aus das Teil! 
Und für 80$ ja eig. echt noch erschwinglich! Ne Current Probe fürs Oszi 
kostet ja ein vielfaches!

von Falk B. (falk)


Lesenswert?

@Simon Heller (simon12)

>Die Schottky-Diode ist ne gute Idee! Im LPM3 z.B. braucht der MSP430 ca.
>1.6 µA das wären bei 1 kOhm 1.6 mV. Ich  bezweifel, dass man das auf dem
>Oszi vom Rauschen unterscheiden kann :-/

Sowas ist eher schwierig messbar. Mach es einfacher. Schalte während der 
aktiven Phasen ein IO-Pin auf HIGH und kurz vorm Schlafen gehen wieder 
LOW. Damit kann man deutlich einfacher und praktisch ausreichend genau 
messen, wann die CPU aktiv ist dementsprechend Strom braucht. Der Strom 
während der aktiven Phase bzw. im Sleep Mode ist annähernd konstant 
und kann direkt mit einem DMM gemessen werden.

von ...-. (Gast)


Lesenswert?


von Marius S. (lupin) Benutzerseite


Lesenswert?

...-. schrieb:
> Tilo Renz schrieb:
>> Messverstärker für kleine Ströme:
>> https://eevblog.myshopify.com/products/ucurrent
>
> Kann man auch selber bauen:
> http://alternatezone.com/electronics/ucurrent/


Die Schaltung ist auch auf Daves Seite original verfügbar.

Ich habe mir das teil leicht abgewandelt nachgebaut. Dabei begrenzt ein 
OP+FET die Shunt-Spannung auf ca. 20mV, so dass bei Umschaltung im 
Aktiv-Modus nichts passiert. Funktioniert ohne zu schwingen etc. :-)

Funktioniert dadurch natürlich nur noch für unipolare Ströme.

von Marius S. (lupin) Benutzerseite


Lesenswert?


von Peter R. (pnu)


Lesenswert?

Nimm eine Spannungsregelung mit MOS-Opamp und MOSFET als Stellglied. An 
der Source des MOSFET entsteht die gewollte Betriebsspannung. Der 
Drainstrom kann dann mit relativ großen Sensor-Widerständen oder mit 
Multimeter gemessen werden.

: Bearbeitet durch User
von Marius S. (lupin) Benutzerseite


Lesenswert?

Peter R. schrieb:
> Nimm eine Spannungsregelung mit MOS-Opamp und MOSFET als Stellglied. An
> der Source des MOSFET entsteht die gewollte Betriebsspannung. Der
> Drainstrom kann dann mit relativ großen Sensor-Widerständen oder mit
> Multimeter gemessen werden.

Was du beschreibst ist ein "Labor-Netzgerät". Das Problem die 
"Sensor-Widerstände" bei Lastwechsel schnell umzuschalten bleibt 
bestehen.

Der Regel- und Mess-Strombereich ist idR eins.

von Spur (Gast)


Lesenswert?

> ... bei 1 kOhm 1.6 mV ...

Nimm 10 K.

Ansonsten: Mikroampere messe ich mit einem Multimeter. Geht ohne 
Probleme.

von Simon H. (simon12)


Lesenswert?

Danke für eure Tipps!

Spur schrieb:
> Ansonsten: Mikroampere messe ich mit einem Multimeter. Geht ohne
> Probleme.

Das geht leider nicht zeitaufgelöst und wie schon oben beschrieben beim 
wake-up resetet der Mikrocontroller weil der Spannugnsabfall am Shunt zu 
groß ist.

Ich denke das µCurrent Projekt ist der richtige Ansatz allerdings würde 
ich das ganze für meine Anwendung auch etwas modifizieren. Ich würde 
vlt. einen OPV mit 12V Versorgungsspannung Single Supply nehmen und 
einen Shunt von 1 Ohm verwenden. Dann käme ich mit einer Verstärkung von 
100 auf 10mV/µA. Das sollte mim Oszi problemlos messbar sein. Jemand 
einen Tipp für einen Präzisionsverstärker mit 12V Versorgungsspannung. 
Sind negative Ströme problematisch beim Single Supply?

Marius S. schrieb:
> Ich habe mir das teil leicht abgewandelt nachgebaut. Dabei begrenzt ein
> OP+FET die Shunt-Spannung auf ca. 20mV, so dass bei Umschaltung im
> Aktiv-Modus nichts passiert. Funktioniert ohne zu schwingen etc. :-)

Hättest du mir dazu vlt. einen Schaltplan? Das scheint mir effektiver 
als eine Schottky-Diode mit 0,3V Abfall.

von Peter R. (pnu)


Angehängte Dateien:

Lesenswert?

Marius S. schrieb:
> Was du beschreibst ist ein "Labor-Netzgerät". Das Problem die
> "Sensor-Widerstände" bei Lastwechsel schnell umzuschalten bleibt
> bestehen.

Nix Labor-Netzgerät. Im Drain lässt sich der Messwiderstand oder der 
Messbereich des DVM umschalten ohne Auswirkungen auf die Source-Seite.

Der opamp in der Skizze dürfte für die Schaltung ungeeignet sein, war 
halt irgendwas für die Skizze geeignetes aus der Bibliothek. Man sollte 
da schon  einen mit MOS-Eingang haben und bei v=1 darf der auch nicht 
schwingen.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Es sind hier zwei Probleme zu lösen:

1. man braucht eine Art umschaltbaren Shunt, um sowohl kleine Ströme 
(Sleep) als auch größere Ströme mit guter Auflösung messen zu können.

2. man muß schnell genug messen, damit man auch kurze Aktivphasen des µC 
noch sicher erwischt.

Für 1. paßt die Schaltung von Peter 
(https://www.mikrocontroller.net/attachment/224836/Kontakt2.png) schon 
gut. Statt des DMM im Drainzweig würde ich zwei Shuntwiderstände in 
Reihe unterbringen: einen niederohmigen für den Strom in Aktivphasen und 
einen hochohmigen für den Strom im Schlafzustand. Der hochohmige Shunt 
muß mit einer Diode (je nach Dimensionierung: Z-, Si-, Schottky-) 
überbrückt werden. Die Spannung an den Shunts greift man geeignet mit 
OPV ab (Instrumentenverstärker, Subtrahierer, etc.) und füttert sie in 
zwei Kanäle eines ADC.

Man könnte die Shunts z.B. auf 200mV Endwert dimensioneren. Sei der 
maximale Wachstrom 100mA, dann nimmt man 2R für den niederohmigen Shunt 
und 2K für den hochohmigen. Die 2K überbrückt man mit einer normalen 
Si-Schaltdiode (1N4148 reicht). Ein 10-bit ADC schafft dann 100µA/LSB 
für den Hochstromkanal und 100nA/LSB für den Niedrigstromkanal. Bei 
100µA überlappen sich die Meßbereiche der beiden Kanäle.

Für 2. würde man einen µC mit schnellem internen oder externen ADC 
bemühen. Die Daten kann man dann wahlweise intern integrieren und 
anzeigen. Oder auf ein Speichermedium schreiben. Oder über eine 
geeignete Schnittstelle zu einem PC senden.

Die Zusammenführung der beiden Meßwerte macht man dann per Software. 
Sobald der Niedrigstromkanal in Sättigung geht, ignoriert man dessen 
Wert einfach. Anders herum zieht man den Niedrigstromkanal zu Rate, wenn 
der Hochstromkanal 0 mißt. Wenn man die beidem Meßbereiche mehr 
überlappt, kann man bei der Auswertung natürlich noch mehr tricksen.


XL

von Amateur (Gast)


Lesenswert?

Gibt es den µCurrent irgendwo in €uropa zu kaufen?

von Simon H. (simon12)


Angehängte Dateien:

Lesenswert?

Guten Abend zusammen,
als Diskussionsgrundlage habe ich mal einen Schaltplan gebastelt wie ich 
das µCurrent-Gerät abwandeln würde. Wie oben schon beschrieben hätte ich 
gerne einen höheren Ausgangsspannungsbereich weshalb ich das ganze mit 
einem 12V Labornetzteil betreiben würde (alternativ mit einem 9V-Block). 
Zudem ist bei meinen Anwendungen die Stromrichtung bekannt weswegen ich 
mir die symmetrische Versorgung gespart habe. Als Präzisionsverstärker 
würde ich den TLC2652AC von TI verwenden da er den Spezifikationen des 
MAX4239 in Sachen Offset und Biasstrom am nächsten kommt allerdings bis 
16V betrieben werden kann. Wie die Kapazitäten beim TLC2652AC 
dimensioniert werden habe ich allerdings noch nicht rausgefunden :-/ Wie 
lupin vorgeschlagen hat würde ich gerne bei überschreiten eines 
Spannungsabfalls von 20 mV am Shunt über einen PMOS die 
Shunt-Widerstände kurzschließen. Der PMOS wird dabei über einen 
Komparator gesteuert. Oder würde sich hier vlt. ein Schmitt-Trigger eher 
anbieten? Als OPV für den Komparator hätte ich einen OP90 verwendet weil 
der hier noch rumfliegt. Gibt es Empfehlungen für den PMOS? Würde mich 
über Verbesserungsvorschläge zur Schaltung freuen evtl. ist es ja auch 
totaler Mist ;-) Und sorry für die vielen Schalter, hab bei eagle auf 
die Schnelle keinen Slide Switch mit 3 Stellungen gefunden.

Gruß, Simon

von Gerd E. (robberknight)


Lesenswert?

Hier noch ein anderer Lösungsansatz:
http://www.dorkbotpdx.org/blog/paul/measuring_microamps_milliamps_at_3_mhz_bandwidth

Der nimmt einen kleinen Shunt und einen ziemlich stark verstärkenden und 
dennoch schnellen Opamp.

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.