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
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
@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
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
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 :)
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...
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...
das ding hat er oben schon erwähnt...
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? :-)
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. ;)
> 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
Durch eine negative Speisung kann man einen Transimpedanz Verstaerker verwenden, der immer GND am Messterminal haelt. Dh man misst ohne Burden Verlust.
> 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
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.
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.
> 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
Hier nochmal zwei weitere Bilder in anderen Messbereichen ohne Kondensator. Zeigt auch wieder Uebertragung mit nRF51822.
Hm..wollte gerade nur ein Bild annehmen...
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
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)
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.
@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
Was ist mit der Kondensatorlösung? Hier wurde sie scheinbar erfolgreich eingesetzt: Beitrag "Re: Mittleren Stromverbrauch messen"
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.
@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
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.
@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
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.
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
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.
@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
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
@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
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
@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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.