Forum: Mikrocontroller und Digitale Elektronik Power Profiling mit Saleae Logic Pro


von Richard W. (richardw)


Lesenswert?

Hallo,

ich habe den wiederkehrenden Anwendungsfall dass ich den Stromverbrauch 
von SOCs im laufenden Betrieb beobachten will, zum einen um 
Betriebszustände zu erkennen, zum anderen aber um den tatsächlichen 
Energieverbrauch einigermaßen abschätzen zu können. Bei letzterem geht 
es weniger um einen genauen tatsächlichen Wert als vielmehr um relative 
Veränderungen in bestimmten Szenarien bei Änderungen am Code.

Ich hatte in der Vergangenheit mit dem N6705 gearbeitet wenn es genau 
werden musste, sowie mit dem Nordic Power Profiler Kit und dem Silabs 
EFM32 Starter Kit. Die letzten beiden haben jwewils  einen Power 
Profiler an Board und rudimentäre Logic Analyzer Fähigkeiten.

Mein Problem ist dass alle diese Systeme unflexibel sind da ich meine 
Auswertelogik um deren Software herumstricken muss. Was ich aber 
eigentlich möchte: den Energieverbrauch gleich mit dem Saleae beobachten 
und dort in Software auswerten. Dort sitzt auch die Triggerlogik.

Ich benötige den Messbereich 1µA bis 100mA, allerdings nicht durchgängig 
mit der gleichen Auflösung. Da der Saleae nur 12bit auflöst, wäre es 
toll wenn ich irgend eine Lösung als analoges Frontend hätte, die eine 
Spannung proportional zum Logarithmus des Stromverbrauchs liefert und 
dabei am besten noch einstellbar ist. Die Kurve kann ich dann in 
Software wieder zurück wandeln. Von einer Logarithmisierung vor dem ADC 
erhoffe ich mir eine hohe Auflösung bei kleinen Strömen ohne 
Bereichsumschaltungen.

Für die Erkennung von Betriebszuständen würde es sogar schon reichen, 
wenn ich verschiedene Schwellwerte programmieren könnte die dann in 
verschiedene, gut unterscheidbare analoge Spannungen umgesetzt würden 
sodass ich die mit dem Saleae erkennen kann.

Kennt jemand für diesen Anwendungsfall einigermaßen fertige Lösungen? Es 
darf auch etwas kosten.

: Bearbeitet durch User
von Alexander S. (alesi)


Lesenswert?


: Bearbeitet durch User
von Richard W. (richardw)


Lesenswert?

Alexander S. schrieb:
> ... einigermaßen fertige Lösungen?
>
> 
https://www.femto.de/spannungsverstaerkung/dc-bis-100-mhz-logarithmischer-spannungsverstaerker-hlva-100/
>
> "Es darf auch etwas kosten." wird auch erfüllt. :-)

Danke für die Info. Ja, das sieht nach einem kleinem Goldbarren aus, da 
werde ich schon mal DFG-Förderung beantragen. Da muss aber trotzdem noch 
mindestens ein Shunt dran und ob das Teil wirklich High Side messen 
kann? Ich glaube, für meinen Zweck wird das nicht das Richtige sein. 
Aber trotzdem danke.

von Harald A. (embedded)


Lesenswert?

Wenn ich das richtig verstehe möchtest Du den Strom synchron messen. Der 
Schaltplan von dem Nordic Profiler ist ja öffentlich. Der macht das über 
4 umschaltbare Shunts. Wenn Du 2 digitale + 1 analogen Kanal am Saleae 
opfern kannst könnte man die Info ja abgreifen und synchron in den Log 
einfließen lassen. Die Profiler-SW lässt Du nebenbei ganz normal laufen.
Zugegeben, keine fertige Lösung aber immerhin denkbar.

von Rainer W. (rawi)


Lesenswert?

Richard W. schrieb:
> Ich benötige den Messbereich 1µA bis 100mA, allerdings nicht durchgängig
> mit der gleichen Auflösung.

Stellt sich sofort die Frage: Was brauchst du denn?
Bei SoC ist es oft so, dass man einerseits im Sleep messen möchte, d.h. 
vielleicht ein Messbereich 1µA ... 100µA und dann im Betrieb vielleicht 
1mA bis 100mA. Dann wäre man mit zwei Shunts und zwei Analogkanälen 
dabei, müsste keine Messbereiche umschalten und muss nur in Kauf nehmen, 
dass nur einer der beiden Kanäle brauchbare Daten liefert.
Welche Bandbreite braucht du für deine Messung und wie groß dürfte ein 
Spannungsabfall am Shunt sein?

von Richard W. (richardw)


Lesenswert?

Harald A. schrieb:
> Wenn ich das richtig verstehe möchtest Du den Strom synchron messen. Der
> Schaltplan von dem Nordic Profiler ist ja öffentlich. Der macht das über
> 4 umschaltbare Shunts. Wenn Du 2 digitale + 1 analogen Kanal am Saleae
> opfern kannst könnte man die Info ja abgreifen und synchron in den Log
> einfließen lassen. Die Profiler-SW lässt Du nebenbei ganz normal laufen.

Gute Idee. Die notwendigen Signale  haben Testpunkte, das wäre einen 
Versuch Wert.

von Richard W. (richardw)


Lesenswert?

Rainer W. schrieb:
> Stellt sich sofort die Frage: Was brauchst du denn?
> Bei SoC ist es oft so, dass man einerseits im Sleep messen möchte, d.h.
> vielleicht ein Messbereich 1µA ... 100µA und dann im Betrieb vielleicht
> 1mA bis 100mA. Dann wäre man mit zwei Shunts und zwei Analogkanälen
> dabei, müsste keine Messbereiche umschalten und muss nur in Kauf nehmen,
> dass nur einer der beiden Kanäle brauchbare Daten liefert.
> Welche Bandbreite braucht du für deine Messung und wie groß dürfte ein
> Spannungsabfall am Shunt sein?

Der maximale Spannungsabfall sollte in der Region 150mV bei 100mA 
liegen, gerne aber weniger. Bei 1.8V Versorgungsspannung ist nicht viel 
Luft. Konkret benötige ich das gerade für ein Low Power RF SoC. Vor 
allem möchte ich die Länge bestimmter Betriebszustände beobachten, 
besonders Wake Up, Hochfahren des HF Teils, PLL Kalibrierung usw. Das 
lässt sich ganz gut am Stromverbrauch sehen.

Wenn die Genauigkeit ausreicht, wäre die Ermittlung des 
Energieverbrauchs in bestimmten Intervallen schön. Aber das ginge auch 
indirekt über die sichere Erkennung und Zeitmessung der Betriebszustände 
und Messtabellen.

von Rainer W. (rawi)


Lesenswert?

Richard W. schrieb:
> Der maximale Spannungsabfall sollte in der Region 150mV bei 100mA
> liegen, gerne aber weniger. Bei 1.8V Versorgungsspannung ist nicht viel
> Luft.

Speise deine Schaltung über einen LDO mit niedrigem Eigenverbrauch und 
setze die Strommessung in dessen Eingang. Der Spannungsabfall überm 
Shunt kann dir dann in weiten Grenzen egal sein.

von Richard W. (richardw)


Lesenswert?

Rainer W. schrieb:
> Richard W. schrieb:
>> Der maximale Spannungsabfall sollte in der Region 150mV bei 100mA
>> liegen, gerne aber weniger. Bei 1.8V Versorgungsspannung ist nicht viel
>> Luft.
>
> Speise deine Schaltung über einen LDO mit niedrigem Eigenverbrauch und
> setze die Strommessung in dessen Eingang. Der Spannungsabfall überm
> Shunt kann dir dann in weiten Grenzen egal sein.

Interessant. An sowas dachte ich auch schon. Der MCP1711 sieht dafür ja 
ganz passend aus, der hat idem niedrigsten Eigenverbrauch den ich auf 
die Schnelle finden konnte. Aber ich war mir nicht sicher ob das 
wirklich so machbar ist.

von Cartman E. (cartmaneric)


Lesenswert?

Rainer W. schrieb:

> ... Dann wäre man mit zwei Shunts und zwei Analogkanälen
> dabei, müsste keine Messbereiche umschalten und muss nur in Kauf nehmen,
> dass nur einer der beiden Kanäle brauchbare Daten liefert.

Die Shunts wird man umschalten müssen. ☺ Und dann reicht auch
ein Analogkanal. Ich benutze für derartige Messungen ein STM8L-
Discovery-Kit. Das hat alles Nötige an Bo(a)rd. ☺
Kann allerdings erstmal nur 3,3 V Targets bedienen, und braucht
evtl. Unterstützung bei der Umschaltung vom Messobjekt, in Form
von Statussignalen.
Die Firmware von ST wird man anpassen müssen.

Dem kann man natürlich auch einen LDO nachschalten, und dessen
Eigenverbrauch auch herauskalibrieren.

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Cartman E. schrieb:
> Die Shunts wird man umschalten müssen.

Warum?

Eine Diode parallel zum uA-Shunt könnte den Spannungsabfall begrenzen.

von Richard W. (richardw)


Lesenswert?

Rainer W. schrieb:
> Cartman E. schrieb:
>> Die Shunts wird man umschalten müssen.
>
> Warum?
>
> Eine Diode parallel zum uA-Shunt könnte den Spannungsabfall begrenzen.

Der Nordic Kit macht die Umschaltung automatisch im Analogteil und 
liefert der MCU nur das Signal welcher Shunt genutzt wurde. Eigentlich 
clever.

Den Gedanken, eine Diode als logarithmischen Shunt zu verwenden und für 
den uA-Bereich einen Widerstand parallel zu schalten hatte ich auch mal. 
Die krumme Kennlinie hätte man in Software gerade biegen können. Aber 
ich habe dafür keine Beispiele im Netz finden können, und nahm an dass 
dies vielleicht ein Irrweg wäre.

: Bearbeitet durch User
von N. M. (mani)


Lesenswert?

Der Sache mit der hohen Burden Voltage hat sich vor Jahren auch Mal der 
EEVBlock mit dem uCurrent Modul angenommen.
Ein Nachteil mit diesem Gerät für dein Szenario ist, dass man den 
Messbereich händisch umschalten muss.
Allerdings gibt es auch einen Ableger der das automatisch macht (Current 
Ranger).
Da hättest du dann allerdings das Problem dass du der Ausgangsspannung 
nicht ansiehst in was für einem Messbereich du dich gerade befindest.
Wenn man aber 2 Pins frei hätte, könnte man die Information rausgeben 
und auch einfach aufzeichnen/verrechnen.

P.S: das OLED ist optional (Pins SDA/SCK wären damit frei) und die 
Firmware ist auf GitHub. Man müsste also nur noch die Pins abhängig vom 
Messbereich setzen (oder die bereits vorhandenen Pins die für die 
Umschaltung verwendet werden nach außen fädeln).

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Richard W. schrieb:
> Den Gedanken, eine Diode als logarithmischen Shunt zu verwenden und für
> den uA-Bereich einen Widerstand parallel zu schalten hatte ich auch mal.
> Die krumme Kennlinie hätte man in Software gerade biegen können. Aber
> ich habe dafür keine Beispiele im Netz finden können, und nahm an dass
> dies vielleicht ein Irrweg wäre.

Gab's schon analog bei Hagen Jakubaschk. ;-)

Ich habe sowas als Strommesser in einem HV-Netzteil: ein kleines 
Indikatorinstrument (wie sie früher in Kassettenrecordern benutzt worden 
sind als Aussteuerungsanzeige), man kann Werte zwischen 1 und 100 mA 
halbwegs abschätzen damit.

Aber ja, den Nordic PPK mit seinen umschaltbaren Shunts anzuzapfen, wäre 
wohl heutzutage auch meine Vorzugs-Variante.

: Bearbeitet durch Moderator
von Rainer W. (rawi)


Lesenswert?

Richard W. schrieb:
> Den Gedanken, eine Diode als logarithmischen Shunt zu verwenden und für
> den uA-Bereich einen Widerstand parallel zu schalten hatte ich auch mal.

Falls man mag, braucht man sich um die logarithmische Kennlinie gar 
nicht zu kümmern. Mit einer 1N4148 wäre der Strom durch die Diode bis zu 
einer Spannung am Shunt von 100 mV gut unter 1µA und damit meist nicht 
störend. Darüber kann man dann den Spannungsabfall am zweien Shunt 
nutzen. Keine Umschalterei, keine Rechnerei, keinen Ärger durch die 
Kennlinienverschiebung auf Grund der Temperatur, einfach zwei Kanäle, 
die man wahlweise auswertet.

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.