Konstantstrom-Senkenschaltung zur Simulation der Batterielast, Mikroampere-Stromaufnahme

Ich muss eine Konstantstrom-Senkenschaltung erstellen, damit ich die Stromentnahme aus einer Batterie simulieren und das Batterieverhalten analysieren kann. Ich werde eine Batterie mit 3,1 V und 12 mAh Kapazität testen. Ich muss Strom in verschiedenen Mustern ziehen (dh wiederholte Zyklen von 15 Minuten 1,5 Mikroampere, dann 5 Sekunden 7 mA, 30 Minuten 1,0 Mikroampere, dann 3 Sekunden 10 mA usw.).

Die Batteriespannung bleibt bei 3,1 V, wenn ein Mikroampere-Strom gezogen wird, aber die Spannung fällt ab, wenn 7 mA gezogen werden. Dieser Spannungsabfall ist das, was ich analysieren muss. Daher brauche ich eine Schaltung, die sicherstellt, dass unabhängig davon, auf was die Batteriespannung abfällt, ein konstanter Strom gezogen wird (der erwartete Abfall liegt zwischen 2,4 V und 1,8 V nach wiederholten Zyklen).

Dies ist, was ich online finden kann (Bild des Schemas unten): http://www.ti.com/lit/an/slaa868/slaa868.pdf

Es fällt mir jedoch schwer, geeignete Teile zu finden und geeignete Widerstandsströme einzustellen, um den Stromsenkenbereich von 1,5 uA bis 7 mA zu erreichen. Kann mir jemand die richtige Richtung zu geeigneten MOSFETs und Operationsverstärkern weisen, die ich hier verwenden sollte? Die Schaltung muss sehr präzise sein, ich kann nicht glauben, dass ich 1,5 uA zeichne, sondern tatsächlich 30 uA oder 30 uA zeichne.

Ich plane auch, die Batteriespannung zu messen, während ich verschiedene Tests mit einem Arduino durchführe und den DAC mit einem Arduino steuere. Ich habe diesen DAC gefunden, der mit Arduino ziemlich einfach zu verwenden sein sollte: https://cdn-shop.adafruit.com/datasheets/mcp4725.pdf . 2,7-5,5 V max. Ausgang.

Geben Sie hier die Bildbeschreibung ein

Ihr Dynamikbereich ist ziemlich groß. Haben Sie darüber nachgedacht, zwei Opamp-Mosfet-Setups zu verwenden, eines für den Mikroverstärker- und eines für den Milliampere-Bereich?
@anrieff Ja, ich denke, das könnte der Weg sein, den ich gehen muss. Ich denke, ich könnte einfach zwei der oben genannten Schaltungen parallel schalten, ja? Ich weiß immer noch nicht, auf welche Werte ich die Widerstände einstellen und welche FETs ich verwenden soll, wenn ich diese Konfiguration mache. Ich bin Elektronik-Anfänger, von Beruf Software-Ingenieur

Antworten (3)

BEARBEITEN : Nach dem hervorragenden Vorschlag von @dunaden habe ich die folgende Schaltung aktualisiert, um Low-Side-MOSFETs zu verwenden.

Ich schlage die folgende Schaltung vor (sorry, dass ich die integrierte Funktion zum Zeichnen von Schaltplänen von CircuitLab nicht verwendet habe, ich habe LTspice verwendet, um sie zu simulieren, und bin zu faul, sie hier neu zu zeichnen):

Vorgeschlagene Schaltung

High-Level-Beschreibung der Schaltung

Diese Schaltung ist eine erdfreie Stromquelle mit zwei unterschiedlichen Bereichen. Da 7 mA/1,5 µA = 4667 sind, überschreitet es den 12-Bit-Bereich Ihres DAC von 2 12 = 4096, also habe ich es in zwei ungefähr gleiche Bereiche aufgeteilt (zumindest so viel, wie die E24-Reihe von Widerstandswerten zulassen würde).

V1 ist Ihre Batterie und V2 ist Ihr DAC, um den gewünschten Strom einzustellen. V3 und V4 sind digitale Signale von Ihrem Mikrocontroller, die den gewünschten Strombereich auswählen: Wenn V3 (das Signal zum Gate von M1) hoch und V4 (das Signal zum Gate von M2) niedrig ist, wird der Niedrigstrombereich ausgewählt; wenn V3 niedrig und V4 hoch ist, wird der Hochstrombereich ausgewählt.

Wie die Schaltung funktioniert

So funktioniert die Schaltung: Sie geben eine Spannung über den DAC an den nicht invertierenden Eingang des Operationsverstärkers ein, und durch die Aktion des Operationsverstärkers wird diese Spannung in den invertierenden Eingang repliziert (negative Rückkopplung stellt sicher, dass der Operationsverstärker die Spannung ausgibt, die er benötigt die Basis des BJT, um diese Bedingung zu erfüllen). Diese Spannung wird entweder an R1 oder R2 angelegt, je nachdem, welcher Bereich ausgewählt ist, gemäß den digitalen Signalen, die an die MOSFETs angelegt werden, wie oben erläutert.

Für den Hochstrombereich muss R2 so gewählt werden, dass 1 V am Eingang mindestens die maximal geforderten 7 mA erzeugt; also 1 V/7 mA = 143 Ω, aber ich habe es auf 120 Ω abgerundet, um sicherzustellen, dass 7 mA tatsächlich erreichbar sind. R1 hingegen ist so gewählt, dass 1 V etwa 100 µA Strom erzeugt, also 1 V/100 µA = 10 kΩ. Für das erforderliche Minimum von 1,5 µA müssten Sie mit dem DAC 10 kΩ x 1,5 µA = 15 mV am Eingang anlegen. Selbst wenn die Versorgungsspannung des DAC 5 V beträgt, sollte er genügend Headroom haben, um ein ziemlich genaues 15-mV-Signal zu erzeugen.

Sie fragen sich vielleicht, warum ich vom DAC einen maximalen Ausgang von 1 V annehme, obwohl ich von einer 5-V-Versorgung ausgeht. Es stellt sich heraus, dass Ihre Batterie mit dem Kollektor des BJT verbunden ist, während die DAC-Spannung am Emitter des BJT repliziert wird. Das Problem ist, dass BJTs eine Mindestspannung VCE (sat) benötigen, um ordnungsgemäß zu funktionieren. Für eine Gartensorte 2N2222 mit einem Kollektorstrom von 150 mA gibt eines der Datenblätter, die ich gesehen habe, VCE (sat) = 0,3 V an. Da sich Ihre Batterie bis auf 1,8 V entladen kann, sollten Sie etwa 1,8 - 0,3 = 1,5 nicht überschreiten V am Emitter, obwohl ich etwas Headroom gegeben habe, indem ich die DAC-Spannung auf 1 V begrenzt habe - in der Praxis können Sie die Schaltung wahrscheinlich auf 1,5 V abstimmen, aber das muss in der Praxis überprüft werden. Sobald Sie das getan haben, können Sie die Widerstände neu berechnen.

Sie haben einen gewissen Spielraum bei der Wahl von R1; Vielleicht möchten Sie einen etwas höheren Wert wählen, damit Sie nicht so eine niedrige Spannung benötigen, um die minimale Ausgabe von 1,5 µA zu erhalten, beispielsweise weil Sie Angst vor DAC-Fehlern haben. Beachten Sie jedoch, dass eine Erhöhung von R1 bedeutet, dass Sie niedrigere Spannungen benötigen, um den unteren Bereich des Hochstrombereichs zu erreichen, also ist dies ein Kompromiss. Wenn Sie nun beispielsweise nur Ströme im Bereich von 1,5 µA bis 10 µA oder im Bereich von 1 mA bis 7 mA benötigen und sich der Bereich von 10 µA bis 1 mA nicht interessiert, können Sie bedenkenlos niedrigere Werte verwenden für R1 - in diesem Beispiel würde ich 100 kΩ wählen, sodass 1 V vom DAC 10 µA ergibt.

Programmierung der Firmware

Sehen Sie sich in Ihrer Arduino-Firmware den Strom an, den Sie ziehen müssen. Wenn es im Bereich von 1,5 µA bis 100 µA liegt, programmieren Sie einen digitalen Pin, um ein logisches High an das Gate von M1 und ein logisches Low an das Gate von M2 auszugeben, und berechnen Sie dann die DAC-Spannung VDAC als Funktion des gewünschten Stroms I , da VDAC(I) = 10 kΩ x I. Wenn der gewünschte Ausgangsstrom im Bereich von 100 µA bis 7 mA liegt, geben Sie ein logisches Low an das Gate von M1 und ein logisches High an das Gate von M2 aus und verwenden Sie stattdessen eine andere Gleichung: VDAC (I) = 120 Ω x I.

MOSFET-Auswahl

Achten Sie nicht zu sehr auf die Auswahl der MOSFET-Modelle in der Abbildung, da ich nur etwas zufällig aus der LTspice-Bibliothek ausgewählt habe. Ich empfehle Ihnen jedoch, ein Gate-Teil auf Logikebene zu wählen, um eine einfache Schnittstelle mit dem Arduino zu gewährleisten. Theoretisch sollten Sie einen mit niedrigem Rds(on) wählen, aber in der Praxis werden Sie wahrscheinlich 1%-Widerstände für R1 und R2 verwenden, sodass selbst ein etwas hoher Rds(on) von 1,2 Ω nur einen Fehler einführen würde so hoch wie Ihre Widerstandstoleranzen sowieso. Wenn Sie mehr Präzision benötigen, entscheiden Sie sich vielleicht für 0,1% Widerstände, und dann würde ich versuchen, M2 so zu wählen, dass sein Rds(on) unter 10 mΩ liegt, sodass er im Vergleich zum 0,12-Ω-Fehler in R2 vernachlässigbar ist – M1 nicht. t wirklich wichtig, weil R1 hoch ist.

Auswahl des Operationsverstärkers

Ich werde nun einige Beobachtungen zur Wahl des Operationsverstärkers machen. Unter der Annahme, dass Sie sich an meine ursprüngliche Auswahl der Werte halten, ist die Emitterspannung des BJT im Fall des Ziehens von 1,5 µA derselbe 15-mV-Ausgang des DAC, und dies ist dieselbe Spannung, die von den Eingängen des Operationsverstärkers gesehen wird. Im weiteren Verlauf ist die Basisspannung des BJT etwa 0,6 V höher als die Emitterspannung, sodass der Operationsverstärker etwa 0,6 V ausgeben muss. Allzweck-Operationsverstärker wie der 741 haben Probleme, sowohl wenn der Eingang zu nahe an Masse liegt, als auch nicht in der Lage sind, eine Spannung auszugeben, die so nahe an Masse liegt. Daher benötigen Sie einen sogenannten Rail-to-Rail-Eingangs-/Ausgangs-Operationsverstärker.

Wenn Sie möchten, dass dies eine Präzisionsschaltung ist, müssen andere Überlegungen angestellt werden. Zunächst müssen Sie die sogenannte Offset-Spannung des Operationsverstärkers berücksichtigen. Ein idealer Operationsverstärker hätte gleiche Spannungen zwischen den invertierenden und nicht invertierenden Eingängen, aber ein echter Operationsverstärker hat einen Offset zwischen ihnen. Bei Allzweck-Operationsverstärkern ist ein typischer Wert 1 mV und ein maximaler Wert kann 5 mV betragen. Beachten Sie, dass dies 7–33 % der Spannung von 15 mV ist, die für den 1,5-µA-Fall angelegt wird. Ich gehe davon aus, dass Sie mit einem Fehler von 1 % zufrieden sind, also benötigen Sie eine Offset-Spannung von weniger als 150 µV - dies ist wahrscheinlich die restriktivste Spezifikation aller hier besprochenen. Wenn Sie also mit einem größeren Fehler leben können, Sie haben eine größere Auswahl an Operationsverstärkern. Ein weiteres Problem, auf das Sie achten sollten, ist der Eingangsvorspannungsstrom: 10 nA in 10 kΩ ergibt einen Fehler von 100 µV. Daher wäre ein FET-Eingangs-Operationsverstärker hier willkommen (diese sind ziemlich leicht zu finden, und ihre Eingangsruheströme liegen im pA-Bereich, es sei denn, sie arbeiten bei sehr hohen Temperaturen.) Bitte stellen Sie ein Minimum von 80 dB CMRR sicher, damit Ihr Ein Spannungsbereich von 1 V entspricht aufgrund der endlichen Gleichtaktunterdrückung einem Fehler von weniger als 100 µV. Und schließlich müssen Sie auf eine hohe Open-Loop-Spannungsverstärkung achten: Auch hier würden nur 80 dB Open-Loop-Verstärkung einen Fehler von 100 µV bei 1 V Eingang erzeugen.

Empfohlener Operationsverstärker

Alles in allem ist hier eine Empfehlung: Der TLV07 ist ziemlich kostengünstig (< 1 $ pro Stück bei Digi-Key), typisch 50 µV und maximal 100 µV Offset-Spannung, typisch 40 pA Eingangsvorstrom bei Umgebungstemperatur, typisch 120 dB CMRR, mindestens 110 dB Open-Loop-Spannungsverstärkung, Rail-to-Rail-Ausgang, und obwohl es nicht als Rail-to-Rail-Eingang eingestuft ist, geht es über die negative Schiene hinaus, die hier, wie oben erläutert, aufgrund von Spannungen das Hauptproblem darstellt So niedrig wie 15 mV an den Eingängen (Sie müssen es 2 V über der maximalen DAC-Spannung liefern, aber das sollte kein Problem sein; versorgen Sie es einfach mit den gleichen 5 V wie das Arduino und Sie sind fertig.)

Betreiben Sie nichts aus der Batterie!

Eine sehr wichtige Überlegung: Versorgen Sie nichts anderes aus der Batterie - den Arduino, den DAC, den Operationsverstärker oder irgendetwas anderes. Wenn Sie dies tun, werden die Ruheströme dieser Komponenten sicherlich viel höher sein als Ihr Zielminimum von 1,5 µA, und die Stromaufnahme aus der Batterie wäre deutlich höher als 1,5 µA, wahrscheinlich im mA-Bereich oder sogar mehr. Schließen Sie die Batterie nur an den Kollektor des BJT an.

Ich habe nicht genug Ansehen, um die Antwort von Swineone oder direkt auf die Frage zu kommentieren, aber ich stimme zu, dass seine Methode solide ist und die Berechnungen korrekt sind. Diese Methode könnte der von Anrieff vorgeschlagenen Parallelisierung von 2 Ihrer gegebenen Schaltungen vorgezogen werden, da sie nur einen einzigen Operationsverstärker und einen einzigen DAC mit relativ wenig zusätzlicher Komplikation erfordert.

Das einzige, was ich vorschlagen würde, im Design zu bearbeiten, ist, dass ich keinen Grund sehe, warum die FETs zur Auswahl des Strombereichs nicht auf der niedrigen Seite der Strommesswiderstände liegen können. Dies würde Komplikationen beseitigen, wenn die FETs in den linearen Modus gehen, wenn der Spannungsabfall über den Erfassungswiderständen für höher ausgewählte Ströme ansteigt.

Sie können alternativ Widerstände, FET-Vgs und Strombereiche auswählen, die dies vermeiden, wenn es einen Grund gibt, die gezeigte Konfiguration beizubehalten. Aber ich denke, dieser Schweinehund hat einfach vergessen, dies in einer ansonsten sehr detaillierten und sehr nützlichen Antwort zu berücksichtigen.

Sie haben Recht, dass mir dies entgangen ist, und das Verschieben der MOSFETs auf die niedrige Seite ist in der Tat eine dringend empfohlene Änderung der ursprünglichen Schaltung, insbesondere angesichts der Verwendung von Spannungssignalen mit Logikpegel an Vgs. Da ich in meiner Simulation 12 V an Vgs angelegt habe, habe ich diesen Effekt nicht bemerkt.
Meine Antwort wurde bearbeitet, um die vorgeschlagene Änderung zu verwenden.
Tut mir leid, dass ich gegen den Standard verstoßen habe, war mir nicht sicher, wie ich sonst dazu beitragen könnte - ich werde mich bemühen, sicherzustellen, dass es nicht wieder vorkommt.

Ein Beispiel für eine praktische Schaltung finden Sie im schematischen und begleitenden Blogbeitrag hier: http://www.arachnidlabs.com/blog/2013/02/05/introducing-re-load/


Quelle: http://www.arachnidlabs.com/blog/2013/02/05/introducing-re-load/